更换gcc版本
sudo apt install gcc-10
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc
安装NVIDIA驱动
禁用图形界面
sudo systemctl set-default multi-user.target
sudo reboot
开机后按 ctrl + alt + f1进入命令行
安装Driver
参考这篇文章
https://www.cnblogs.com/chua-n/p/13208398.html
卸载驱动:
sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove "*nvidia*"
在 https://www.nvidia.cn/Download/index.aspx?lang=cn 下载对应的驱动
安装包装包即可。
接着就可以用nvidia-smi查看显卡
可以看到我已经安装好了驱动Driver-470
这个cuda-version值得是我能够使用的cuda最高版本,11.4可以用,那么11.1也可以用。
安装CUDA
卸载原来的cuda:
sudo apt autoremove cuda
sudo apt --purge remove "*cublas*" "cuda*"
下载cuda11.1(run版本,而不是deb版本),和对应的cudnn
安装cuda11.1需要满足:
- gcc >=9.3.0
- 有root权限
注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
sudo bash cudaXXX.run之后会有两次交互的选择:
1)填accept表示接受协议
2)自选安装组件,我们一定要取消安装Driver,因为Driver不允许降级,如果不取消安装Driver会导致安装失败。
报错:
Executing NVIDIA-Linux-x86_64-455.23.05.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd 2>&1
[INFO]: Finished with code: 256
安装完成之后要配置环境
此时/usr/local/有两个cuda文件夹,一个是cuda一个是cuda-11.1,cuda就是cuda-11.1的硬链接。
添加环境变量
export PATH=/usr/local/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH
安装CUDNN
选择 cudnn library for linux
下载压缩文件后,解压缩得到一个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*
接着安装deb包,
下载
用 sudo dpkg -i xxx.deb
进行安装:
安装顺序: libcudnn8_8 libcudnn8-dev libcudnn8-samples
,这是上面三个deb文件的前缀。
安装之后进行测试:
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
再一次执行:
make clean && make
./mnistCUDNN
输出test passed!代表可以正常使用cudnn
装pytorch
执行:
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia
测试:
import torch
torch.cuda.is_available()
输出True,表示有gpu
结束
恢复图形界面
sudo systemctl set-default graphical.target
sudo reboot
结语:
按照这样方式即可搭建cuda环境。