Ubuntu18 重新安装Nvidia T4 Driver

配好了Rstudio使用OpenGL图形系统,突然想起测试一下OpenGL使用Nvidia GPU不是更快么?搜了一下,原来mesa是使用CPU的,要用Nvidia的OpenGL Driver才行。敲了一行命令:

# nvidia-smi

发觉Nvidia T4的驱动竟然不行了,查阅腾讯云的Nvidia驱动安装教程,知道驱动是在特定版本的内核上编译的,那么应该是昨天更新系统软件包时哪个命令把内核也更新了。查看内核版本:

root@VM-0-14-ubuntu:~# uname -r
4.15.0-196-generic

查看原来映像的内核:

root@VM-0-14-ubuntu:~# dpkg -l | grep -i linux-headers
ii  linux-headers-4.15.0-180               4.15.0-180.189                                         all          Header files related to Linux kernel version 4.15.0
ii  linux-headers-4.15.0-180-generic       4.15.0-180.189                                         amd64        Linux kernel headers for version 4.15.0 on 64 bit x86 SMP

从4.15.0-180更新到4.15.0-196了,重新编译安装Nvidia T4的驱动即可。
1、下载驱动程序安装包。tesla 460.106.00驱动下载网址
2、安装包给予执行权限

# chmod +x NVIDIA-Linux-x86_64-460.106.00.run

3、执行安装。

# sudo sh NVIDIA-Linux-x86_64-460.106.00.run --ui=none --disable-nouveau --no-install-libglvnd --dkms -s

出错,查看log,提示有正在运行的X Window服务器,kill掉Xvfb,删除它在/tmp下的lock文件。这里知道了T4是数据中心用的定制产品,该命令编译的驱动程序是AI专用,no display,不驱动显示,取消了测试GPU跑OpenGL的打算,修复驱动就好了。
再执行,还是出错,按提示看

root@VM-0-14-ubuntu:~# vi /var/lib/dkms/nvidia/460.106.00/build/make.log

是没有安装该版本内核的headers。
参考该帖子安装内核头文件。

root@VM-0-14-ubuntu:~# apt search linux-headers-$(uname -r)
root@VM-0-14-ubuntu:~# apt install linux-headers-$(uname -r)
root@VM-0-14-ubuntu:~# dpkg -l | grep -i linux-headers
ii  linux-headers-4.15.0-180               4.15.0-180.189                                         all          Header files related to Linux kernel version 4.15.0
ii  linux-headers-4.15.0-180-generic       4.15.0-180.189                                         amd64        Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
ii  linux-headers-4.15.0-196               4.15.0-196.207                                         all          Header files related to Linux kernel version 4.15.0
ii  linux-headers-4.15.0-196-generic       4.15.0-196.207                                         amd64        Linux kernel headers for version 4.15.0 on 64 bit x86 SMP

再执行,还是出错,这次是提示编译器版本不对,原来是用gcc 7.5编译的,现在前面设置了默认编译器是gcc 11,参考该帖子,暂时把默认编译器改回7.5:

# update-alternatives --config gcc
# update-alternatives --config g++

再执行驱动安装程序,顺利装完。

root@VM-0-14-ubuntu:~# nvidia-smi
Sun Nov 13 09:08:43 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.106.00   Driver Version: 460.106.00   CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:00:08.0 Off |                    0 |
| N/A   47C    P0    27W /  70W |  14670MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A     26758      C   ...onda3/envs/gpu/bin/python    14667MiB |
+-----------------------------------------------------------------------------+

编译器的版本改回去。

# update-alternatives --config gcc
# update-alternatives --config g++

搞定,重启系统。记录一下,下次踩坑了方便修复,否则重装系统工程就大了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容