Ubuntu安装cuda和以及cuda使用中的bug汇总
参考链接Ubuntu16.04安装CUDA10.2 + Nvidia驱动 + cuDNN 7.6.5.32 (2021.3更新)_Keyu_logs-CSDN博客_ubuntu16.04安装cuda10.2
以Ubuntu16.04,cuda10.2,cudnn7.6.5为例,列出安装方法以及遇到的问题。
删除原有cuda(可选)
以cuda 10.0为例,卸载Cuda
cd /usr/local/cuda-10.0/bin/ sudo ./uninstall_cuda_10.0.pl
如果driver版本也不符合要求,可以卸载nvidia driver
sudo /usr/bin/nvidia-uninstall
安装cuda
- 去官网下载CUDA,选Ubuntu16.04对应的runfile(local)文件:
- CUDA Toolkit Archive | NVIDIA Developer
- 注意选择正确的cuda版本
- 找到自己下载的CUDA的run文件名字,如cuda_10.2.89_440.33.01_linux.run
sudo sh ./cuda_10.2.89_440.33.01_linux.run
- 配置环境文件
sudo gedit ~/.bashrc
-
- 在末尾加上以下内容
export PATH=/usr/local/cuda-10.2/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
-
- 应用配置
source ~/.bashrc
注意:如果使用nvcc时提示command not found,并提示使用 : sudo apt-get install nvidia-cuda-toolkit 来使用nvcc。千万不要使用这个命令安装(会安装不符合要求的版本),添加路径到。bashrc即可。如果不小心安装了,需要卸载重装,卸载方式如下。
dpkg -l | grep nvidia
搜索nvidia-xxx.xx版本或nvidia-driver-xxx.xx版本(注意不要不小心卸载了nvidia-docker),然后键入
sudo apt purge nvidia-xxx.xx
CUDA使用过程bug
使用torch.utils.cpp_extension编译自己的代码后,在运行自己的代码时出现RuntimeError: CUDA error: no kernel image is available for execution on the device
原因:是nvidia arch和显卡型号不匹配,具体匹配结构参考Nvidia arch 型号对照_lb1244206405的博客-CSDN博客
解决方案:编译时添加对应arch即可,如需要SM52 or SM_52, compute_52 (对应TORCH_CUDA_ARCH_LIST中的“5.2”)
TORCH_CUDA_ARCH_LIST="5.2 6.0 6.1 7.0" pip install -v -e . #或 TORCH_CUDA_ARCH_LIST="5.2 6.0 6.1 7.0" python setup.py install