如何选购腾讯云GPU实例?如何优雅地安装驱动等底层开发工具库?这些问题给深度学习等领域研究/开发人员带来了不少困惑。本篇教程将从实践出发,给出基于腾讯云GPU实例的Best Practice,彻底解决以上问题。
0x00 环境&目标
我们选择腾讯云目前的主流机型GPU计算机型GN7,其中搭载一颗Tesla T4 GPU。本教程采用的具体规格为GN7.5XLARGE80。这款机型有着不错的综合性能,20核心 80G内存,比较适合常规的深度神经网络训练等各种应用场景。而且,它还是全球市面上同级别GPU机型中(T4)性价比最高的产品。
选购传送门,按量计费的机型做实验更灵活哦~
本教程中的实例机型:GN7(推荐)、GN10X等GPU机型均可以。
推荐选择的系统镜像:Ubuntu 18.04 (注意无需勾选“后台自动安装GPU驱动”)
其他信息:北京五区,1M公网带宽,系统盘大小100G。根据实际情况选择即可。
创建实例完成后,控制台面板可以查看实例信息:
我们将安装目前(2020年4月)最新的CUDA Toolkit 10.2版本、CUDNN 7.6.5版本。
让我们这就开始吧!
0x01 CUDA Driver/Toolkit 安装
官网网络Deb包安装
我们去Nvidia官网下载最新的CUDA Toolkit 10.2
https://developer.nvidia.com/cuda-downloads
根据我们的环境选择安装下载方式,这里我们选择网络安装deb包的方式,如图:
然后按照下面的提示执行命令即可
代码语言:txt复制wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda
可以看到其实就是在系统中安装了nvidia的官方apt仓库源,并执行了apt install cuda,很方便。只有最后一步的安装过程稍微耗时一些,需要5分钟左右,而且这一步有可能中间因为网络等原因中断,重试1~2次即可。
注意:此处需要重启服务器。
那么究竟安装了什么,以及如何验证安装成功呢?
验证GPU驱动安装 —— 设备信息查看
Nvidia GPU驱动是支持CUDA编程的内核模块。通过上述方法安装的驱动是以动态内核模块(DKMS)的形式安装的,这种内核模块不在内核source tree中,但是可以在每次内核更新升级时自动地进行重新编译,生成新的initramfs,并后续随着系统启动动态加载。总之就是,驱动只需安装一次,非常方便。
重启后登录,我们来验证驱动模块已动态加载
可以看到,nouveau等社区驱动已经不会被加载,而是加载了nvidia的官方驱动。
驱动对应的四个内核模块在这个目录下:/lib/modules/4.15.0-88-generic/updates/dkms/ 。
nvidia-smi
命令查看GPU设备状态,如驱动版本(440.64.00)、CUDA版本(10.2)、型号(Tesla T4)、显存(15109MiB)以及温度功耗等各种信息,如图:
验证CUDA Toolkit安装 —— 示例代码编译
CUDA Toolkit,即开发工具包,其中包括构建命令、头文件、动态库、文档、代码示例等等,安装在/usr/local/cuda目录。
注意:使用CUDA Toolkit,必须要设置系统的PATH,以找到nvcc等命令。
全局PATH可以很多地方设置,以/etc/profile.d修改为例 :
代码语言:txt复制echo 'export PATH=/usr/local/cuda/bin:$PATH' | sudo tee /etc/profile.d/cuda.sh
source /etc/profile
官方代码示例编译运行
代码语言:txt复制cp -r /usr/local/cuda/samples/ cuda_samples
cd cuda_samples
make -j16 -k
官方示例170个左右,注意不是都能编译(所以加了-k 选项),编译完大致也就小几分钟而已。
然后我们运行示例了,简单的如deviceQuery、bandwidthTest、simpleCUBLAS、simpleCUFFT等等。
0x02 CUDNN 安装
官网下载安装
目前最新稳定版本是 7.6.5。
地址:https://developer.nvidia.com/rdp/cudnn-download, 这里不同于下载CUDA Toolkit,多了个登录步骤以及协议的勾选项。
Ubuntu 18.04下,需要三个下载包,分别是运行时库、开发库以及代码示例。
本地下载后,上传(scp/rsync)到GPU服务器上执行dpkg
安装即可。
sudo dpkg -i libcudnn7*.deb
验证CUDNN安装 —— 示例编译运行
cudnn代码示例在/usr/src/cudnn_samples_v7下,包含conv_sample 、mnistCUDNN 、multiHeadAttention、RNN四个。
代码语言:txt复制cp -r /usr/src/cudnn_samples_v7 .
cd cudnn_samples_v7/RNN
make
如RNN示例执行:
看着如此高的Gflops,不禁感慨计算设备发展之飞速。相信教程到此,你也有点小心动,赶快来体验GPU云服务器GN7系列的速度与激情吧!
未完待续,敬请期待~
0x03 参考资料
- Nvidia Developer
- 腾讯云NvidiaGPU系列实例