我使用 2080Ti,以下是我所做的:
1:我从头开始安装了一个干净的xubuntu 20.04。
2:我注意到默认驱动程序是 xorg 驱动程序,因此我从
软件和更新 > 附加驱动程序 > 使用来自 nvidia-driver-470 的 NVIDIA 驱动程序元包(专有,已测试)
,安装成功了,从命令中看到了漂亮的表格输出nvidia -smi
。
3:然后我意识到我还需要CUDA 11.3,所以我只是根据CUDA官方网站执行了以下命令:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-3-local_11.3.0-465.19.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
从此以后,一切都崩溃了,因为重启后我的显示分辨率变成了 800*600。而且 nvidia -smi 不再输出那个漂亮的表格。错误消息是一条两行警告,我忘了保存。
4:我意识到在安装 CUDA 之前我没有清除 nvidia,因为 CUDA 包含了 nvidia 驱动程序。所以我做了以下操作:
sudo apt-get --purge -y remove '*nvidia*'
sudo apt-get --purge -y remove '*cuda*'
sudo apt-get update
sudo apt-get upgrade
sudo apt autoremove -y
重启后,输出为nvidia -smi
:
nvidia: command not found
5:看起来清除成功了,然后我再次执行了步骤3。但没有用。
6:然后我再次执行了 purge 步骤4,然后尝试使用 ppa 而不是 dpkg 再次安装 CUDA:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda
不工作。无论nvidia -smi
或nvcc -V
。显示command not found
。
7:然后我重启的时候,看到安全加载选项变成了ubuntu linux 5.14 -oem
,以前是 generic,现在是 oem。不知道这个变化具体是什么时候发生的。我意识到可能是 linux 加载镜像损坏了。我用老一点的 5.10 generic 来加载,然后 step4-step6 安装 CUDA。结果:不行。
8:然后我再次清除(步骤 4),并将 Linux 从 20.04 升级到 20.10。然后再次清除安装内容。但不起作用。
我确实没有办法了。所以我的问题是:
1:如果我重新安装 xubuntu 20.04,并使用步骤 3 进行干净的 CUDA 安装,这样可以吗?我想是的。
2:如果重装系统,是使用ppa(步骤6)安装CUDA还是使用dpkg(步骤3)安装CUDA,哪个好?考虑到dpkg方法可以限制版本为11.3,不用担心不必要的更新。不过听说可以用命令sudo apt-mark hold <package-name>
阻止更新,没试过。
3:我真的不想重装系统,如何在现有条件下让CUDA和驱动运行起来?
4:进一步思考,由于 CUDA 只是 HPC 的东西,并且对我来说只与开发有关,我是否应该只在我的计算机上安装 nvidia-driver,并将 CUDA 安装到 docker 中并让它在那里运行?如果在真实机器上没有安装 CUDA,它可以工作吗?
5:进一步思考,加载菜单怎么会变成linux 5.14-oem?nvidia对内核做了什么不可逆转的事情?
多谢!