原系统为cuda10.2,跑模型时,系统一直提示cuda错误,虽然也能运行,但还是感到别扭。查看了ividia网站,最新驱动是470,那就先下个460试试看。
谁知下载安装cuda_11.2.0_460.27.04_linux.run后,直接就出错,安装中断,查看var/local/下cudainstall的log文件:Finished with code: 256 , [ERROR]: Install of driver component failed。
查看显卡信息ividia-smi。NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest nvidia driver is installed and running.
出现该状况原因为曾经安装成功过显卡驱动或ubuntu20系统,由于重启等原因导致显卡驱动掉了,多个显卡驱动冲突,需要重装显卡。
查找CUDA安装方法,先用最简单的一种试,即采用 Ubuntu 软件源中的 CUDA Tools 软件包,
但安装的 CUDA Toolkit 版本往往不是最新版本。查询目前可安装的 CUDA Toolkit 版本的命令:
apt search nvidia-cuda-toolkit
再安装
sudo apt install nvidia-cuda-toolkit
提示安装的为CUDA10.2,估计先前就是采用这种方式安装,但错误仍未消除。只好把显卡驱动之类的全卸载,安装470的驱动。
查看电脑驱动
ubuntu-drivers devices
cat /var/log/dpkg.log | grep nvidia
及ividia显卡驱动
sudo dpkg --list | grep nvidia-
lspci|grep NVIDIA
删除旧的NVIDIA驱动
sudo apt-get remove --purge nvidia-* 或 sudo apt-get purge nvidia-*
sudo apt autoremove cuda
# 若上一步删不干净,接着使用:
sudo apt --purge remove "*cublas*" "cuda*"
更新源
sudo apt-get update 从服务器获取全部可用的、最新的软件包列表,并缓存到本地电脑。
sudo apt-get upgrade sudo apt-get dist-upgrade
安装显卡驱动
屏蔽开源驱动Nouveau
sudo gedit /etc/modprobe.d/blacklist.conf
最后一行加上:blacklist nouveau 在终端输入:sudo update-initramfs -u,使修改生效
重启终端 lsmod | grep nouveau # 没有输出,意味着禁用nouveau成功
使用标准Ubuntu仓库进行自动化安装
如果安装推荐版本:sudo ubuntu-drivers autoinstall
自定义安装版本:sudo apt install nvidia-470
使用PPA仓库进行自动化安装
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update sudo apt-get upgrade --fix-missing
#使用以下命令可以查询到电脑支持的驱动版本
sudo apt-cache search nvidia | grep -oE "nvidia-[0-9]{1,3}"
使用官方的NVIDIA驱动进行手动安装
安装完成后确认 sudo apt-get install build-essential
安装CUDA(显卡驱动)
wget https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/cuda_11.4.1_470.57.02_linux.run
sudo sh cuda_11.4.1_470.57.02_linux.run
*表示选择,可选择安装显卡驱动。
install 后,sudo gedit ~/.bashrc
# 在文件末尾添加:
# CUDA Soft Link
export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
nvidia-smi 正常
测试 CUDA Toolkit 。 通过编译自带 Samples并执行, 以验证是否安装成功。具体命令如下所示:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
删除旧版本cuda:cd /usr/local/cuda-11.2/bin/ sudo ./cuda-uninstaller
安装cudnn
卸载Cudnn
tgz安装的按下面方法卸载
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
deb安装的按下面方法卸载
sudo rm -rf /usr/include/cudnn.h
sudo rm -rf /usr/lib/x86_64-linux-gnu/libcudnn*
cudnn安装
Tar 压缩文件
tar -xzvf cudnn-11.4-linux-x64-v8.2.2.26.tgz
复制到/usr/local/cuda里.
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
更改权限
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
Debian 文件
sudo dpkg -i libcudnn7_7.0.3.11-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-devel_7.0.3.11-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.0.3.11-1+cuda9.0_amd64.deb
查看版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2