GPU云服务器实战——驱动篇

如何选购腾讯云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。根据实际情况选择即可
GPU云服务器实战——驱动篇

我们将安装目前(2020年4月)最新的CUDA Toolkit 10.2版本、CUDNN 7.6.5版本。

让我们这就开始吧!

0x01 CUDA Driver/Toolkit 安装

GPU云服务器实战——驱动篇

官网网络Deb包安装

我们去Nvidia官网下载最新的CUDA Toolkit 10.2
根据我们的环境选择安装下载方式,这里我们选择网络安装deb包的方式,如图:

GPU云服务器实战——驱动篇

然后按照下面的提示执行命令即可

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,并后续随着系统启动动态加载。总之就是,驱动只需安装一次,非常方便。

重启后登录,我们来验证驱动模块已动态加载

GPU云服务器实战——驱动篇

可以看到,nouveau等社区驱动已经不会被加载,而是加载了nvidia的官方驱动。
驱动对应的四个内核模块在这个目录下:/lib/modules/4.15.0-88-generic/updates/dkms/


nvidia-smi命令查看GPU设备状态,如驱动版本(440.64.00)、CUDA版本(10.2)、型号(Tesla T4)、显存(15109MiB)以及温度功耗等各种信息,如图:

GPU云服务器实战——驱动篇

验证CUDA Toolkit安装 —— 示例代码编译

CUDA Toolkit,即开发工具包,其中包括构建命令、头文件、动态库、文档、代码示例等等,安装在/usr/local/cuda目录。

注意:使用CUDA Toolkit,必须要设置系统的PATH,以找到nvcc等命令。

全局PATH可以很多地方设置,以/etc/profile.d修改为例 :

echo 'export PATH=/usr/local/cuda/bin:$PATH' | sudo tee /etc/profile.d/cuda.sh
source /etc/profile

官方代码示例编译运行

cp -r /usr/local/cuda/samples/ cuda_samples
cd cuda_samples
make -j16 -k

官方示例170个左右,注意不是都能编译(所以加了-k 选项),编译完大致也就小几分钟而已。

然后我们运行示例了,简单的如deviceQuery、bandwidthTest、simpleCUBLAS、simpleCUFFT等等。

GPU云服务器实战——驱动篇

0x02 CUDNN 安装

官网下载安装
目前最新稳定版本是 7.6.5,地址。 这里不同于下载CUDA Toolkit,多了个登录步骤以及协议的勾选项。

Ubuntu 18.04下,需要三个下载包,分别是运行时库、开发库以及代码示例。

GPU云服务器实战——驱动篇

本地下载后,上传(scp/rsync)到GPU服务器上执行dpkg安装即可。

sudo dpkg -i libcudnn7*.deb

验证CUDNN安装 —— 示例编译运行

cudnn代码示例在/usr/src/cudnn_samples_v7下,包含conv_sample 、mnistCUDNN 、multiHeadAttention、RNN四个。

cp -r /usr/src/cudnn_samples_v7 .
cd cudnn_samples_v7/RNN
make

如RNN示例执行:

GPU云服务器实战——驱动篇

看着如此高的Gflops,不禁感慨计算设备发展之飞速。相信教程到此,你也有点小心动,赶快来体验GPU云服务器GN7系列的速度与激情吧!

未完待续,敬请期待~

0x03 参考资料

本文来自腾讯云计算社区,转载请注明出处:https://computeinit.com/archives/2630

发表评论

登录后才能评论
交流群