CUDA,NVIDIA Driver 之间的版本对应关系表格
安装 nvidia-460
首先查看显卡支持的驱动版本
ubuntu-driver devices
输出结果如下,可以看出推荐的驱动是 nvidia-driver-460。
== /sys/devices/pci0000:3a/0000:3a:00.0/0000:3b:00.0 ==
modalias : pci:v000010DEd00001B06sv00001043sd000085E5bc03sc00i00
vendor : NVIDIA Corporation
model : GP102 [GeForce GTX 1080 Ti]
driver : nvidia-driver-450 - distro non-free
driver : nvidia-driver-435 - distro non-free
driver : nvidia-driver-390 - distro non-free
driver : nvidia-driver-460 - distro non-free recommended
driver : nvidia-driver-418-server - distro non-free
driver : nvidia-driver-460-server - distro non-free
driver : nvidia-driver-450-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
在 软件和更新 中选择 附加驱动,然后选择推荐的驱动,点击 应用更改
更改完成后重启,然后查看
nvidia-smi
然后很重要的一步,在 软件和更新 中选择 更新,把所有选项都改为如下。这是为了避免内核更新,一旦内核更新,nvidia 驱动就无法使用!
安装 cuda-11.2
官网 下载 cuda 11.2.0
wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run
sudo sh cuda_11.2.0_460.27.04_linux.run
选择 continue,输入 accept,然后按如下选择
┌──────────────────────────────────────────────────────────────────────────────┐
│ CUDA Installer │
│ + [ ] Driver │
│ + [X] CUDA Toolkit 11.2 │
│ [ ] CUDA Samples 11.2 │
│ [ ] CUDA Demo Suite 11.2 │
│ [ ] CUDA Documentation 11.2 │
│ Options │
│ Install │
│ │
│ Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options │
└──────────────────────────────────────────────────────────────────────────────┘
安装完成后,/usr/local/ 路径下有 cuda 和 cuda-11.2,注意 cuda 是软链接,指向 cuda-11.2
cd /usr/local/
file cuda
添加环境变量
sudo vim ~/.bashrc
文件末尾添加如下。
# cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
重新加载 .bashrc 文件
source ~/.bashrc
测试
nvcc -V
安装 cuDnn
登陆 官网。选择 cuda 11.2 支持的版本。下载的话注册,可以用 qq 号注册。
下载到本地后
tar zxf cudnn-11.2-linux-x64-v8.1.0.77.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/include/cudnn_version.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
验证安装是否成功
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
显示
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#endif /* CUDNN_VERSION_H */