最近,团队里希望能够在神经网络上和深度学习上做些实验,想做些概念证明工作。
因此,我需要搭建一台能给我 GPU 计算能力的计算机。我决定了在谷歌的云平台上搭建一台。以下是考虑的因数,
在谷歌上注册新用户都能够获取到300美金的代金券
现在谷歌上有的 GPUs 类型有两款 (Nvidia K80/P100)
我可以在服务器上安装 CUDA 和 cnDNN
注册新用户
首先,注册新的谷歌帐号。
接着,注册谷歌云平台帐号。
备注
- 谷歌云平台免费实用期为12月,价值300美金代金券
- 在注册谷歌云品台时会用到信用卡。即使是免费注册也需要有效的信用卡号
设置预算预警
我建议在添加任何新的功能前,先吧预算预警设好,应为毕竟我们只有300美金的余额。可以跟着以下步骤,进行设置。
登入到 “结算 > 预算和提醒” 点击 “创建新预算”。
创建新预算时,切记把预算金额设置为 $300。
设置 GPU 硬件
谷歌上的免费帐号权限只有最基本的配额。GPU 其实不在这基本的配额上。我们需要向平台申请修改配额。
不过免费帐号是不能申请 GPU 的。我们首先必须做的是从免费版升级到付费版。
升级的步骤如以下,
登入到 “IAM 和管理 > 配额”。右上角附近点击 “升级帐号”。升级后才能申请添加 GPU 的配额。
成功升级后,在列表里的下啦框里,选择适当的指标后应该可在亚洲服务器上找到有关的 GPU。
在写这篇文章时的,只有东亚1 (Asia-East1) 有所需要的 GPU。
唯一美中不足的一点是,在提交配额升级的过程时我们需要付一批35美金的激活费。考虑到价格,我的 GPU 选了一架 Nvidia 的 K80 GPU.
备注
- 一般申请流程需要 2–3 工作日
- 还有在写文章的时间时,K80 比 P100 的计算费用按月来算差别为 500美金,因为 P100 已经超出我的预算,所以选择了 K80
以上的流程一旦通过,我们可以开始搭建新的实例。因项目的需求,我选择了以下的配置,
实例配置
- 地区:asia-east1-a
- 机器类型:1 x vCPU
- 内存:3.75GB
- GPU:1 x K80
- OS: Ubuntu 16.04
- Cloud API 访问权限范围:允许所有 Cloud API 的全面访问权限
实例搭建好之后,你可以通过几种方式登入到实例上做一系列的操作。最普遍的方式应该有,
- 直接从游览器上打开
- 用 ssh 客户段
- 用谷歌的
gcloud
命令
我选这了用第三种方式。gcloud
命令。
本地机上安装 gcloud 程序
因为我的本地机上的系统是 macOS,以下的内容将针对我所经验过的步骤。如果需要用其他的系统可以参考以下链接,
- Creating Instance with Custom Machine
- Redhat CentOS Quickstart
- Debian Ubuntu Quickstart
- Windows Quickstart
在你的本地 macOS 上,确保你已经有 python 2.7,如果需要的,可以用 vitualenv 或 conda 安装 python。
登入到 macOS Quickstart 下载针对您的 macOS 系统的 gcloud
安装包。然后运行安装脚本 ./google-cloud-sdk/install.sh
。
如果您遇到如以下的问题/报错,
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 262: ordinal not in range(128)
您可以直接把程序的命令脚本文件连接到您的 rc 文件里,例如 ~/.bashrc
, 记得保存后运行 source ~/.bashrc/
。以下的命令,可以把自己的参数替换掉。
$ echo 'export PATH=/where-you-unzipped/google-cloud-sdk/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc
运行 gcloud init
把初始化的流程走完,问题回答完。
流程走完后,登入到实例的命令如以下,记得把需要的参数改为自己的参数。
$ gcloud compute --project 'your-project' ssh --zone 'your-zone' 'your-instance-name'
Done! You should now have access to GCP instance.
If you want to start using your GPUs, look at the steps I took to install CUDA and cuDNN.