上回我在虚拟机中装的 Ubuntu,并安装 Nvidia 驱动,输入命令 ubuntu-drivers devices
,可以看到无推荐安装的驱动,如下所示:
最后使用 sudo apt install nvidia-driver-510
安装,后来安装 cuda 后,用 nvcc -V
检查,也证明确实安装成功了:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
后来经过种种资料和事实证明:虚拟机中不支持安装Nvidia驱动,于是我装了 Windows + Ubuntu 双系统,并在 Ubuntu 系统中进行实验,终于成功,希望大家避坑
可以看到,出现了很多推荐的驱动,这才正常:
同意安装推荐版本(510),在终端输入如下命令,即可自动安装
sudo ubuntu-drivers autoinstall
安装成功,如图所示:NVIDIA-SMI 510.47.03
安装教训:
sudo /usr/local/cuda-11.6/bin/cuda-uninstaller
sudo rm -rf /usr/local/cuda-11.6/
输入命令进行安装:
wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run
sudo sh cuda_11.5.0_495.29.05_linux.run
打开文件,配置环境变量,然后用nvcc -V
查看 cuda 信息,证明 cuda 安装成功
gedit ~/.bashrc
export PATH=/usr/local/cuda-11.5/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
cuDNN 是对 CUDA 的补充,需要 Nvidia 账号和密码,注册登录即可下载,本节中我找到 CUDA11.5 对应版本的 cuDNN进行安装,参考了一篇不错的博客: Ubuntu 20.04安装CUDA 11.0、cuDNN 8.0.5、PyTorch 1.7.0
tar zxvf cudnn-11.5-linux-x64-v8.3.0.98.tgz -C ./
解压后多了一个 cuda 目录
cuda目录下面有include和lib64两个子目录,将这两个目录下面的所有文件拷贝到CUDA 11.6的安装路径对应的目录下面即可,作为对cuda的补充
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
完成后,删除.tgz
文件和cuda
文件夹,已经没用了
更改usr/local/cuda/
下的include
和lib64
文件夹的权限,否则会出问题
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
附:常用的修改权限的指令
sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
注意:这三个包的安装顺序不要乱
sudo dpkg -i libcudnn8_8.3.0.98-1+cuda11.5_amd64.deb
sudo dpkg -i libcudnn8-dev_8.3.0.98-1+cuda11.5_amd64.deb
sudo dpkg -i libcudnn8-samples_8.3.0.98-1+cuda11.5_amd64.deb
安装第一个Deb包时候,弹出根目录空间剩余0,记得当时设置了25.5G,确实太小,于是我扩容了根目录后,重新进行安装三个包:
cp -r /usr/src/cudnn_samples_v8/ ~
cd ~/cudnn_samples_v8/mnistCUDNN/
make clean && make
./mnistCUDNN
报以下编译错误 fatal error: FreeImage.h
sudo apt-get install libfreeimage3 libfreeimage-dev
无用,即使sudo apt-get update
后再试这条命令:
操作如下
1. 找到sources.list文件,用文本编辑器打开
2. 文件全选,替换为如下代码(我的系统是ubuntu 20.04,所以用focal,大家可以用lsb_release -a
查看并相应替换代码中所有的focal,然后整体再替换sources.list)
deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
3. 之后sudo apt-get update
一下,执行sudo apt-get install libfreeimage3 libfreeimage-dev
,不报任何错,至此,我们再验证cuDNN是否安装成功
4. 执行make clean && make
,不报错,再次验证编译错误 fatal error: FreeImage.h
已解决
5. 执行./mnistCUDNN
,最后显示Test Passed!
,激动到哭
换源,首先打开文件:
gedit ~/.condarc
将下面代码进行替换:
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
show_channel_urls: true
source ~/.bashrc
打开官网:
执行命令:conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
,输入yes,等待安装完成
python3
import torch
import torchvision
print(torch.cuda.is_available())
输出True,代表环境配置成功
我们安装的Cuda版本是11.5,可以进入如下目录,打开version.json
文件查看
但是在终端输入nvidia-smi
命令,看到的cuda版本是11.6,如下图所示。不要慌,这是因为上边的11.6版本只是当前驱动推荐的Cuda版本,并不代表已安装的
欢迎评论区纠错和讨论!希望自己走的弯路,能让大家避开,更多疑问联系我,QQ:743337163