硬件配置
ThinkPad笔记本电脑
显卡 NVIDIA TITAN xxx
内存 128G
CPU 2620V42
电源 1600w2
硬盘 256G2+2T
安装完Ubuntu 20.04 系统并且成功进入桌面之后,会发现屏幕的分辨率很低,这是因为没有安装显卡驱动的缘故。下面是CUDA Driver的安装过程。
安装NVIDIA TITAN Xp显卡驱动
默认安装的显卡驱动不是英伟达的驱动,所以先把旧得驱动删除掉。
sudo apt-get purge nvidia*
添加Graphic Drivers PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
查看合适的驱动版本:
ubuntu-drivers devices
图:可用的nvidia 驱动列表
图中可以看出推荐的是最新的430版本的驱动,安装该驱动:
sudo apt-get install nvidia-driver-470
安装完毕后重启机器:
sudo reboot
重启完毕运行
nvidia-smi
看看生效的显卡驱动:
然后看了网上的众多帖子,然后决定重新安装驱动,基于以前安装过,觉得可能小事一桩,结果啪啪打脸.
第一步,下载对应的驱动版本
在nvidia官网(https://www.nvidia.cn/geforce/drivers/)下载一个自己的显卡驱动.
需要注意的是在自己的tensorflow和pytorch需要的cuda版本和cudnn的版本,并下载对应的显卡驱动的版本.
第二步:禁用nouveau
为啥禁用不是很清楚.反正跟着大佬一波操作就好了.
1.使用下面命令查看nouveau是否禁用
lsmod | grep nouveau
若没有任何输出则说明已经禁用.因为我是重新装,之前禁用过,所以没有任何输出.
若出现下面的结果:
nouveau 1863680 9
video 49152 1 nouveau
ttm 102400 1 nouveau
mxm_wmi 16384 1 nouveau
drm_kms_helper 180224 1 nouveau
drm 479232 12 drm_kms_helper,ttm,nouveau
i2c_algo_bit 16384 2 igb,nouveau
wmi 28672 4 intel_wmi_thunderbolt,wmi_bmof,mxm_wmi,nouveau
说明任然在运行
禁用nouveau
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
检查是否正确,出现如图所示的结果说明正确
更新并重启
sudo update-initramfs -u
sudo reboot
重启后输入下面的命令检查是否禁用成功
lsmod | grep nouveau
若没有任何输出说明禁用 nouveau 驱动成功
第三步.安装显卡驱动
1.检查一下自己的gcc版本
gcc --version
此处最好是用7以上的版本,因为之前安装过gcc5.5在安装的时候总是报错,后面切换回7的版本,安装就很流畅了.
安装不同版本的gcc和将某一个版本作为默认的见下面这篇文章
Ubuntu18.04安装不同版本的GCC,并切换当前的默认GCC版本
2.进入tty的登录界面
使用下面的命令关闭图形界面,
sudo service lightdm stop
然后按住ctrl+alt+F1进入tty界面,输入用户名和密码进行登录
3.进入到放驱动程序的文件夹,我的在Downloads,
cd Downloads
4.给驱动程序赋予执行权限
chmod a+x NVIDIA-Linux-x86_64-440.82.run
5.安装命令
sudo ./NVIDIA-Linux-x86_64-440.82.run -no-x-check -no-nouveau-check -no-opengl-files
禁用opengl才不会出现循环登录的界面
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
6.安装过程依次选择:Continue installation, No,No,Yes,OK
7.退出tty的界面,按Ctrl+alt+F7就能够返回图形界面
第四步.检查安装是否成功
打开终端输入下面的命令:
nvidia-smi
# 查看可安装驱动
root@node01:/home/user# ubuntu-drivers devices
# 先更新一下,不知道有没有用,可不做
root@node01:/home/user# sudo apt-get update
# 自动安装,会安装推荐的最新版本驱动
root@node01:/home/user# sudo ubuntu-drivers autoinstall
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
linux-modules-4.15.0-55-generic
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
nvidia-compute-utils-510-server nvidia-dkms-510-server nvidia-kernel-common-510-server nvidia-kernel-source-510-server nvidia-utils-510-server
建议安装:
nvidia-settings nvidia-prime
下列【新】软件包将被安装:
nvidia-compute-utils-510-server nvidia-dkms-510-server nvidia-driver-510-server nvidia-kernel-common-510-server nvidia-kernel-source-510-server
nvidia-utils-510-server
升级了 0 个软件包,新安装了 6 个软件包,要卸载 0 个软件包,有 200 个软件包未被升级。
需要下载 0 B/50.9 MB 的归档。
解压缩后会消耗 98.3 MB 的额外空间。
正在选中未选择的软件包 nvidia-compute-utils-510-server。
(正在读取数据库 ... 系统当前共安装有 213019 个文件和目录。)
正准备解包 .../0-nvidia-compute-utils-510-server_510.47.03-0ubuntu0.18.04.1_amd64.deb ...
正在解包 nvidia-compute-utils-510-server (510.47.03-0ubuntu0.18.04.1) ...
正在选中未选择的软件包 nvidia-kernel-source-510-server。
正准备解包 .../1-nvidia-kernel-source-510-server_510.47.03-0ubuntu0.18.04.1_amd64.deb ...
正在解包 nvidia-kernel-source-510-server (510.47.03-0ubuntu0.18.04.1) ...
正在选中未选择的软件包 nvidia-kernel-common-510-server。
正准备解包 .../2-nvidia-kernel-common-510-server_510.47.03-0ubuntu0.18.04.1_amd64.deb ...
......
# 查看驱动信息
root@node01:/home/user# nvidia-smi
Fri Mar 25 10:01:50 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03 Driver Version: 510.47.03 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| 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 NVIDIA GeForce ... Off | 00000000:68:00.0 Off | N/A |
| 19% 42C P0 57W / 250W | 0MiB / 11264MiB | 2% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+