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的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
原文地址:https://www.cnblogs.com/Xiaoyan-Li/p/14945230.html