转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net] 网上没一个系统的全流程教程,算了还是自己来吧。
目录
完全卸载旧版(可选)
安装NVIDIA驱动
CUDA Toolkit与驱动版本的对应关系表
安装CUDA Toolkit
报错cannot find -lcudart/cannot find -lcusparse的修复
SSH一段时间自动断开报Destination Host Unreachable
完全卸载旧版(可选)
代码语言:javascript复制# 卸载CUDA Toolkit:
# 这里的“11.6”改成你需要卸载的版本
sudo /usr/local/cuda-11.6/bin/cuda-uninstaller
sudo apt-get --purge remove "*cublas*" "cuda*"
# 卸载NVIDIA驱动
sudo apt-get --purge remove "*nvidia*"
# 删除无用包
sudo apt autoremove
安装NVIDIA驱动
代码语言:javascript复制sudo apt-get install build-essential gcc-multilib dkms
代码语言:javascript复制ubuntu-drivers devices
选一个安装版本,如果不懂,无脑选“recommended”的那个(但我选了510的):
代码语言:javascript复制sudo apt install nvidia-driver-510 -y
装完一定需要重启,不然可能会报错的:
代码语言:javascript复制sudo reboot
这时候驱动就可以用了:
代码语言:javascript复制nvidia-smi
特别注意上面的“CUDA Version:11.6”!!后面装CUDA Toolkit的版本需要跟他一直,不然运行CUDA程序,就可能会报CUDA API错误等等。。。
CUDA Toolkit与驱动版本的对应关系表
CUDA Toolkit | Toolkit Driver Version | |
---|---|---|
Linux x86_64 Driver Version | Windows x86_64 Driver Version | |
CUDA 11.8 GA | >=520.61.05 | >=522.06 |
CUDA 11.7 Update 1 | >=515.48.07 | >=516.31 |
CUDA 11.7 GA | >=515.43.04 | >=516.01 |
CUDA 11.6 Update 2 | >=510.47.03 | >=511.65 |
CUDA 11.6 Update 1 | >=510.47.03 | >=511.65 |
CUDA 11.6 GA | >=510.39.01 | >=511.23 |
CUDA 11.5 Update 2 | >=495.29.05 | >=496.13 |
CUDA 11.5 Update 1 | >=495.29.05 | >=496.13 |
CUDA 11.5 GA | >=495.29.05 | >=496.04 |
CUDA 11.4 Update 4 | >=470.82.01 | >=472.50 |
CUDA 11.4 Update 3 | >=470.82.01 | >=472.50 |
CUDA 11.4 Update 2 | >=470.57.02 | >=471.41 |
CUDA 11.4 Update 1 | >=470.57.02 | >=471.41 |
CUDA 11.4.0 GA | >=470.42.01 | >=471.11 |
CUDA 11.3.1 Update 1 | >=465.19.01 | >=465.89 |
CUDA 11.3.0 GA | >=465.19.01 | >=465.89 |
CUDA 11.2.2 Update 2 | >=460.32.03 | >=461.33 |
CUDA 11.2.1 Update 1 | >=460.32.03 | >=461.09 |
CUDA 11.2.0 GA | >=460.27.03 | >=460.82 |
CUDA 11.1.1 Update 1 | >=455.32 | >=456.81 |
CUDA 11.1 GA | >=455.23 | >=456.38 |
CUDA 11.0.3 Update 1 | >= 450.51.06 | >= 451.82 |
CUDA 11.0.2 GA | >= 450.51.05 | >= 451.48 |
CUDA 11.0.1 RC | >= 450.36.06 | >= 451.22 |
CUDA 10.2.89 | >= 440.33 | >= 441.22 |
CUDA 10.1 (10.1.105 general release, and updates) | >= 418.39 | >= 418.96 |
CUDA 10.0.130 | >= 410.48 | >= 411.31 |
CUDA 9.2 (9.2.148 Update 1) | >= 396.37 | >= 398.26 |
CUDA 9.2 (9.2.88) | >= 396.26 | >= 397.44 |
CUDA 9.1 (9.1.85) | >= 390.46 | >= 391.29 |
CUDA 9.0 (9.0.76) | >= 384.81 | >= 385.54 |
CUDA 8.0 (8.0.61 GA2) | >= 375.26 | >= 376.51 |
CUDA 8.0 (8.0.44) | >= 367.48 | >= 369.30 |
CUDA 7.5 (7.5.16) | >= 352.31 | >= 353.66 |
CUDA 7.0 (7.0.28) | >= 346.46 | >= 347.62 |
安装CUDA Toolkit
去官网找到你需要的版本:
CUDA Toolkit Archive | NVIDIA Developer
我这选个11.6.0就行了
选一下,下面有命令行,复制过来运行就行。
不同版本不同选项下生成的命令都不一样。建议用这个runfile方式吧。(2G ,下载较慢)
代码语言:javascript复制wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
sudo sh cuda_11.6.0_510.39.01_linux.run
由于前面已经装了驱动,这里需要取消驱动的安装:
装完后会提示要添加路径,如果不加,命令就执行不了:
如果你是自己用,就加在自己的环境变量中:
代码语言:javascript复制sudo vim ~/.bashrc
在最后添加:
代码语言:javascript复制export PATH=/usr/local/cuda-11.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH
然后更新:
代码语言:javascript复制source ~/.bashrc
sudo ldconfig
好了,可以用了:
代码语言:javascript复制nvcc --version
如果是大家一起用,那就添加到公共环境变量里,比如:
代码语言:javascript复制sudo vim /etc/bash.bashrc
添加的内容和执行的命令,跟上面是一样的,不多写了。
报错cannot find -lcudart/cannot find -lcusparse的修复
有时装完上述内容,在编译时会出现报错,如:
是因为库找不到,调整一下就行。
代码语言:javascript复制sudo ln -s /usr/local/cuda/lib64 /usr/local/lib64
动态库的搜索路径先后顺序:
- 编译目标代码时指定的动态库搜索路径;
- 环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
- 配置文件/etc/ld.so.conf中指定的动态库搜索路径;
- 默认的动态库搜索路径/lib;
- 默认的动态库搜索路径/usr/lib。
SSH一段时间自动断开报Destination Host Unreachable
报错长这样:
经过一系列测试,发现不管干啥,固定20~30分钟后就会出现这个问题。第一反应就是系统是不是自动进入睡眠状态了,就跟Windows一样。(确实是的)
看一下是不是有自动睡眠:
代码语言:javascript复制systemctl status sleep.target
可以发现loaded。说明自动sleep是启用了。
关闭自动休眠:
代码语言:javascript复制sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
可以再看一下:
代码语言:javascript复制systemctl status sleep.target
可以发现masked。说明自动sleep是关闭了。