之前向公司申请购买了一块英伟达Geforce RTX 2060,但是有时候同时有多个训练思路想要试验,一块GPU的效率就比较低了。但是再买一块的成本过高,所以经过考量,决定租云服务器来训练模型。

对比华为云和阿里云,华为云之前的m60系列都显示已经售罄,该系列的收费相对便宜,但是已经租不到了,剩下的都是p100的,或者更高的配置,而阿里云上最便宜的是搭载英伟达tesla p4的GPU服务器,8.68元/时。

云平台服务器gpu调用 gpu云服务器租用_云平台服务器gpu调用

下面就基于这款服务器来介绍GPU服务器租赁过程和深度学习环境安装过程。(说明:由于该款服务器并没有使用本地存储,只会使用云盘,所以停机后,只会针对云盘收费。这是有别于抢占式实例的地方,抢占式实例即使不用本地磁盘,停机后也继续收费的,除非释放掉当前服务器)

选好服务器后,接下来选择镜像,也就是操作系统,我选择的是ubuntu16.04 64位,因为18.04不支持自动安装GPU驱动,结果因为版本比较低的问题,不得不重新卸载CUDA和GPU驱动,然后再安装更高的版本。

不过,如果你也选择了自动安装,也不用担心,因为只要卸载重装高版本的CUDA和驱动就可以了,下面是卸载脚本:

  • 卸载CUDA
--依次执行下面3个命令sudo apt-get remove cudasudo apt-get autocleansudo apt-get remove cuda*--切换到/usr/local目录cd /usr/local/--删除cuda目录,因为该目录是指向cuda-9.1目录的软链接sudo rm -rf cuda--删除cuda-9.1目录sudo rm -r cuda-9.1--使用命令查找系统中还存在cuda-9.1的地方,依次删除列出的文件sudo find / -name cuda-9*--再次执行下面3个命令sudo apt-get remove cudasudo apt-get autocleansudo apt-get remove cuda*--现在可以装cuda其他版本了。
  • 卸载GPU驱动
sudo apt-get --purge remove nvidia-*

接下来选择存储,我选择的是高效云盘,40GB,因为对我来说够用了。后面就是配置网络、帐号等,根据自己的需要配就行了。

之后,服务器会自动创建实例,如果你选择了自动安装CUDA,那么可以通过top命令查看到apt-get等命令在运行,大概15分钟后,CUDA和GPU驱动就会装好了,但是并不会安装CUDNN。

到了这一步后,我开始尝试部署程序,并运行,但是显然,向我上面说的那样,报错了,原因是CUDA的版本和tensorflow版本不兼容。于是按照上面的方法卸载了CUDA,开始下载10.0的CUDA,因为我用的tensorflow1.13.0,该tensorflow版本只支持CUDA10.0。

所以,需要下载对应的CUDA,步骤如下:

  • 下载CUDA
地址:https://developer.nvidia.com/cuda-downloads
  • 执行安装
sudo sh cuda_10.0.130_410.48_linux.run  --no-opengl-libs (据说不加--no-opengl-libs这个选项会进入循环登录,所以还是加上吧)接下来很重要的地方是在提示是否安装显卡驱动时,一定选择 no(之前安装过对应显卡版本的驱动)其他各项提示选择是,并默认安装路径即可。提示有 y 的输入 y,没有则按 enter 键。安装完毕。
  • 声明环境变量
--打开文件vim ~/.bashrc--尾部加入如下内容:export PATH=/usr/local/cuda-10.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH--保存退出,并输入下面指令使环境变量立刻生效:source ~/.bashrc
  • 验证CUDA是否安装成功(需要确保安装了g++ ,可以用g++ --version来判断是否安装,如果没有可以执行 sudo apt-get install g++ 来安装)
cd /usr/local/cuda/samples/1_Utilities/deviceQuerysudo make./deviceQuery最后输出提示通过即可。

在验证环节,我遇到了fail的提示,原因是因为GPU的驱动版本过低,要410以上的才可以,于是我按照本问开头介绍的方法卸载了GPU驱动,然后开始安装对应的版本:

  • 下载GPU驱动

访问官网地址: 

https://www.nvidia.cn/Download/index.aspx?lang=cn 

云平台服务器gpu调用 gpu云服务器租用_华为h22h05服务器装系统_02

点击搜索,进入下载页面,下载即可。

  • 安装驱动
--赋执行权限sudo chmod +x NVIDIA-Linux-x86_64-410.104.run--关闭x window界面sudo service lightdm stop--安装,指定不安装OpenGL文件sudo ./NVIDIA-Linux-x86_64-410.104.run  --no-opengl-files
  • 测试是否安装成功
nvidia-smi如能看到GPU信息,则安装成功。
  • 开启x window界面
sudo service lightdm start
  • 重启系统
sudo reboot

此时,再次验证CUDA是否安装成功,结果会提示通过。接下来需要安装CUDNN,版本选择支持CUDA10.0的,这里我选的是7.4.2.24:

  • 下载

官网地址:https://developer.nvidia.com/cudnn  需要注册后才能下载。我下载的是deb文件,总共有三个

云平台服务器gpu调用 gpu云服务器租用_云平台服务器gpu调用_03

  • 安装指南
2.3.2. Installing from a Debian File1. Navigate to your  directory containing cuDNN Debian file.2. Install the runtime library, for example:sudo dpkg -i libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb3. Install the developer library, for example:sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb4. Install the code samples and the cuDNN Library User Guide, for example:sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb2.4. VerifyingTo verify that cuDNN is installed and is running properly, compile the mnistCUDNN sample located in the /usr/src/cudnn_samples_v7 directory in the debian file.1. Copy the cuDNN sample to a writable path.$cp -r /usr/src/cudnn_samples_v7/ $HOME2. Go to the writable path.$ cd  $HOME/cudnn_samples_v7/mnistCUDNN3. Compile the mnistCUDNN sample.$make clean && make4. Run the mnistCUDNN sample.$ ./mnistCUDNNIf cuDNN is properly installed and running on your Linux system, you will see a message similar to the following:Test passed!

以上内容来自官方的安装指南:

https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installlinux-deb

因为还是很容易看懂的,所以就没翻译了。

到此GPU相关的环境就安装完成了,但是在命令行输入python,会发现,用的版本是python2,输入python3会发现,用的是python3.5。由于现在一般都是用Anaconda3,所以我又安装了Anaconda3。

关于Anaconda3在阿里云GPU服务器上的安装过程,会在下一篇文章《ubuntu16.04安装Anaconda3》里介绍。

另外补充一点,阿里云GPU服务器停机后,再想开机时,有时候会出现库存不足的提示,需要换服务器所在区,如果事先没有做快照,就要重新装环境了,所以建议做每日快照。而且租阿里云GPU并不便宜,所以如果你要经常做深度学习训练,还是建议购买显卡自己搭建本地环境。

ok,本篇就这么多内容啦~,感谢阅读O(∩_∩)O,88~

为您推荐

用深度学习做命名实体识别(一):文本数据标注

文本标注工具brat简介

手把手教你用深度学习做物体检测(三):模型训练

手把手教你用深度学习做物体检测(二):数据标注

手把手教你用深度学习做物体检测(一): 快速感受物体检测的酷炫

ubuntu16.04安装Anaconda3

Unbuntu下持续观察NvidiaGPU的状态

名句分享