GPU驱动安装
安装正确合适的GPU驱动至关重要,关系着是否能正常使用GPU显示或者是加速运算等工作。各型号GPU皆可从NVIDIA 官方网站下载到适合的GPU驱动版本。通过选择GPU型号、操作系统,即可找到适合自己系统的GPU驱动。如果下载的是源码文件则需要编译安装,不过现在官方提供的Linux显卡驱动多是以.run为后缀的,这种直接在命令行中运行 bash driveName.run 运行即可安装。
下载驱动
我的GPU型号是Quadro RTX 8000, 2020年底英伟达刚出新款GPU,在英伟达官网查到对应的驱动为NVIDIA-Linux-x86_64-460.32.03.run,大小140M,我是直接从官网网页下载的,下载网速很慢,下载的驱动已经上传百度云了,有用到可以自取。
GPU查询网址: https://www.nvidia.com/download/index.aspx?lang=en-us
nouveau驱动屏蔽
Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,也没能得到NVIDIA的认可与支持,但大多linux系统都集成了该驱动,安装NVIDIA官方私有驱动的时候Nouveau成为了阻碍,一般会报下面错误。
“ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver……”
不干掉Nouveau安装时总是报错,所以安装GPU驱动之前先要干掉Nouveau。
使用命令 lsmod |grep nouveau
,查看是否在使用nouveau驱动,输出如下:
nouveau 1949696 0
mxm_wmi 16384 1 nouveau
wmi 32768 2 mxm_wmi,nouveau
video 49152 1 nouveau
ttm 106496 2 drm_vram_helper,nouveau
drm_kms_helper 184320 4 ast,nouveau
i2c_algo_bit 16384 3 igb,ast,nouveau
drm 491520 6 drm_kms_helper,drm_vram_helper,ast,ttm,nouveau
使用如下命令,屏蔽nouveau驱动,并重启机器。
sudo -s
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist-nouveau.conf
update-initramfs -u
reboot
重启机器后,再次使用lsmod |grep nouveau
命令查看,确认nouveau驱动已被屏蔽。
被动式散热和主动式散热区别
其实每个服务器都自带了那么一点点GPU,用来显示图形桌面,大概几十M。如果我们安装了GPU,桌面显示要不要使用GPU显存,对于Windows版本来说,没有显示问题,Linux版本会显示问题,尤其安装了ubuntu桌面版的服务器。
GPU卡可单纯作为运算或同时也可以作为显示,若您选择可做为显示的卡片,您将可以依照自己的需求进行选择是否要使用该GPU卡或使用主板的显示芯片做为显示。当然目前中高阶的主板都有内置显示芯片,若单纯做为AI开发或并行运算的系统,那么建议您仅使用主板的内置显示,因为显示会占用到GPU内存的资源,也就会减少计算时可用的GPU内存容量。但若您是绘图(如OpenGL或DirectX)相关的开发者,那还是建议您直接使用GPU卡进行显示。
若使用Tesla或是Quadro的被动散热版本(Quadro RTX 6000和Quadro RTX 8000 Passive),那您只能使用该GPU卡进行运算,无法做为显示。 一般刀架服务器都是内置风扇,散热模式为被动模式(passive mode), 是不可显示桌面的。所以即使刀架服务器安装了ubuntu桌面版,后续也使用不了桌面显示,只能退化为终端显示。这是坑,如果接受不了终端显示,最好选择塔式服务器。塔式服务器散热模式为主动散热,可以使用GPU显示。
安装步骤
我的服务器是刀架服务器Quadro RTX 8000 Passive,只能选择不使用GPU显示,驱动安装步骤如下
- 官网下载GPU驱动安装文件(扩展名为run)
- 进入文本模式:init 3
- 关闭显示接口:sudo service lightdm stop (于ubuntu)
- 安装驱动:bash NVIDIA-Linux-x86_64-460.32.03.run --no-opengl-files #no-opengl-files不使用GPU显示
- 依照指令安装驱动
- 确认安装是否完成:nvidia-smi
- 重启并进入桌面:sudo reboot
若遇下面报错
ERROR: You do not appear to have libc header files installed on your system. Pleaseinstall your distribution's libc development package
安装下面两个工具
apt-get install libc-dev libc6-dev
安装完成截图
安装完成后验证
参考:https://zhuanlan.zhihu.com/p/166484317
Cuda Toolkit安装
版本选择
GPU驱动本身的CUDA版本(CUDA User Mode Driver)不可低于使用的CUDA Toolkit(CUDA Runtime)的版本,也就是说如果使用CUDA Toolkit 10.0进行AI开发,则GPU的驱动自带的CUDA版本不可低于10.0。至于要如何得知使用的驱动自带的CUDA版本?NVIDIA官网提供一个列表(Linux系统使用),CUDA与各版本之间比对:https://blog.csdn.net/q_xiami123/article/details/114394519。若不想这么麻烦,不论驱动或是CUDA Toolkit都下载最新版即可解决适配问题
下载安装包
CUDA Toolkit下载地址:https://developer.nvidia.com/zh-cn/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=2004&target_type=runfilelocal
选择匹配操作系统的版本,安装程序类型推荐选择runfile(local)
选完获得下载的版本和下载方式 cuda_11.1.0_455.23.05_linux.run, 下载大小:3.4g
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run
安装步骤
若选择使用主板显示模式安装GPU驱动,在安装CUDA Toolkit时也同样须注意。由于CUDA Toolkit内置GPU驱动程序,使用–no-opengl-files进行安装的用户,需要取消Driver驱动的安装。
安装CUDA
sudo bash cuda_11.1.0_455.23.05_linux.run
同意用户声明:accept
取消安装驱动Driver选项,其它默认,然后选择Install,按照指示安装即完成,如下图设置
安装成功界面
配置环境变量
vim ~/.bashrc
# cuda 11.1
export PATH="/usr/local/cuda-11.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH"
source ~/.bashrc
CUDA安装成功测试
使用nvcc -V
命令测试环境变量是否配置成功,成功则输出如下内容
这里为了方便后期安装其他cuda版本,采用手动建立软链接,命令如下:
sudo ln -s /usr/local/cuda-11.1 /usr/local/cuda
CUDA安装参考文章
https://zhuanlan.zhihu.com/p/333362435
https://zhuanlan.zhihu.com/p/166484317
RTX6000和8000测试性能比对:https://zhuanlan.zhihu.com/p/164942336
CUDA与各版本之间比对:https://blog.csdn.net/q_xiami123/article/details/114394519
cuDNN安装
下载安装包
需要到官网注册并下载对应版本,提前准备邮箱。微信登录也行。
我使用的版本是最新的8.0.5,下载过程可参考下图。下载过程非常慢, 大小有1.4G, 可以去取我下载好的版本。
链接:https://pan.baidu.com/s/1NrzX7xrnvN3wA60SVzNWXw
提取码:wfj5
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享
注册完之后安装包下载地址
https://developer.nvidia.com/rdp/cudnn-download
选择Runtime Library
安装
下载下来的是cudnn-11.1-linux-x64-v8.0.5.39.solitairetheme8
文件,上传到服务器之后,可以先转为tgz的压缩文件
cp cudnn-11.1-linux-x64-v8.0.5.39.solitairetheme8 cudnn-11.1-linux-x64-v8.0.5.39.tgz
随后进行解压
tar -zxvf cudnn-11.1-linux-x64-v8.0.5.39.tgz
接下来把cudnn的文件复制到CUDA目录:
sudo cp cuda/lib64/* /usr/local/cuda/lib64/
sudo cp cuda/include/* /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
最后验证cudnn是否配置好并输出版本号:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
配置正常输出如下:
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)#endif /* CUDNN_VERSION_H */
配置TensoRT
下载安装包
打开下载地址:https://developer.nvidia.com/tensorrt
登陆Nvidia账号,同样的可能会让填一份问卷,提交之后点击立即下载。这里选择版本为"TensorRT 7.2.2 for Ubuntu 18.04 and CUDA 11.1 TAR package", 软件大小差不多1G,如果不想下载,可以去我百度网盘取。
安装
解压并配置:
tar -zxvf TensorRT-7.2.2.3.Ubuntu-18.04.x86_64-gnu.cuda-11.1.cudnn8.0.tar.gz
sudo mv TensorRT-7.2.2.3 /usr/local/TensorRT-7.2.2.3
sudo ln -s /usr/local/TensorRT-7.2.2.3 /usr/local/tensorrt
然后配置环境变量,打开:
sudo vim ~/.bashrc
在文件末尾添加:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/tensorrt/lib
然后更新环境变量:
source ~/.bashrc