1. 前期准备
1.1 从NVIDIA官网下载相应驱动
官网网址:https://www.nvidia.com/Download/index.aspx?lang=en-us
1.2 卸载Ubuntu自带的驱动程序
首先卸载Ubuntu自带的Nvidia驱动:
sudo apt purge nvidia*
这里可能显示卸载失败,可能是你的显卡正在被使用,可以尝试将显示器接到主板的接口,使用核显输出,然后重启一下,重新执行卸载。
1.3 禁用自带的nouveau nvidia驱动
sudo vi /etc/modprobe.d/blacklist.conf
ps:这里需要使用vim进行编辑,如果没有安装的先安装一下:sudo apt install vim
在blacklist.conf文件中最后添加如下内容,然后保存退出:
blacklist nouveau
options nouveau modeset=0
PS:Vim先按i
进入编辑模式,修改完成后按ESC
,再输入:wq
执行保存退出。
然后更新刚才的配置:
sudo update-initramfs -u
重启电脑:
sudo reboot
验证是否完成禁用(没有输出则表示成功):
lsmod | grep nouveau
2. 安装显卡驱动
2.1 停止lightdm桌面服务
输入下面的代码关闭GUI界面(ubuntu server版本跳过):
警告:请先用其他设备找到本教程,接下来将进入DoS界面进行操作!!
sudo service lightdm stop
如果提示没有lightdm,使用下面命令安装,安装界面里选择lightdm
:
sudo apt install -y lightdm
PS:如果你和我一样也有核显,那么需要将显示器的线插到主板上,让核显工作,这样才能显示DOS界面。
2.2 安装驱动
首先查看你有没有安装gcc:
gcc --version
如果没有安装,则输入下面命令安装:
sudo apt install gcc & make
然后cd到你下载的显卡驱动的目录,进行授权并执行安装(这里的软件名改为你自己下载的):
sudo chmod a+x NVIDIA-Linux-x86_64-535.98.run
sudo ./NVIDIA-Linux-x86_64-535.98.run -no-x-check -no-nouveau-check -no-opengl-files
PS:对于长指令,可以输入前半部分然后单击Tab
自动补齐。
- 参数说明:
-no-x-check: 安装时关闭X服务;
-no-nouveau-check: 安装时禁用nouveau;
-no-opengl-files: 只安装驱动文件,不安装OpenGL文件。
安装过程中下面步骤按照下图选择,其它默认。
- 安装说明:
(1)"The distribution-provided pre-install script failed!…",继续
(2)"Unable to find a suitable destination to install 32-bit compatibility libraries…",继续
(3)"Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that…",选择"Yes",切记!!!
2.3 验证安装及取消更新
安装完成以后执行nvidia-smi
,如果显示如下内容则表示安装成功:
然后使用sudo service lightdm start
重新开启GUI,或者直接重启也可以。
进入GUI后记得在Software & Updates (软件和更新)中关闭系统的自动更新,否则会把你的驱动也一起更新了:
2.4 后续管理
查看显卡型号:
nvidia-smi -L
查看显卡驱动版本:
cat /proc/driver/nvidia/version
卸载驱动:
sudo /usr/bin/nvidia-uninstall
3. 安装CUDA
3.1 下载及安装
首先使用 nvidia-smi
查看显卡驱动支持的CUDA版本,如下图所示,我的最高支持12.2版本
进入NVIDIA的官方下载地址:https://developer.nvidia.com/cuda-toolkit-archive,选择CUDA Toolkit 12.2.0 ,跳转到下载,选择你的系统版本,最后选择runfile文件:
按照网站中提供的指令进行下载和安装,安装过程中选项如下图所示:
- 选择Continue:
- 输入accept,然后回车:
- 这里注意,我们只安装CUDA Toolkit 12.2,其他都不要选中(因为之前已经安装好驱动了),否则会出错:
等待安装,安装过程中不会有任何输出,不是卡住了,稍等片刻就行。
3.2 激活环境
然后输入 vim .bashrc
,在文件末尾输入下方内容(注意版本号要和你所安装的一致,我的是12.2):
export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
然后输入source ~/.bashrc
更新变量,使其生效,输入nvcc -V
验证是否安装成功:
3.3 后续管理
卸载CUDA:
cd /usr/local/cuda-10.2/bin
sudo cuda-uninstaller
4. 安装cuDNN
首先还是下载,官方网址:https://developer.nvidia.com/rdp/cudnn-download,需要注册一个账号。选择和你的CUDA以及系统对应的版本下载deb文件即可。
然后参照NVIDIA官方教程进行即可(1.3.2):https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
注意: 不是无脑复制粘贴,需要修改你自己的CUDA和cuDNN的版本号,看仔细进行!
接着参照NVIDIA官方教程进行测试即可(1.4),其中可能会报错:
test.c:1:10: fatal error: FreeImage.h: 没有那个文件或目录
1 | #include "FreeImage.h"
| ^~~~~~~~~~~~~
输入sudo apt-get install libfreeimage3 libfreeimage-dev
重新执行即可。最后提示 Test passed!
则安装成功!
整个过程参考(包含部分报错):
(base) fang@fang-Linux-4090:~/下载$ sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.4.25_1.0-1_amd64.deb
[sudo] fang 的密码:
正在选中未选择的软件包 cudnn-local-repo-ubuntu2204-8.9.4.25。
(正在读取数据库 ... 系统当前共安装有 202943 个文件和目录。)
准备解压 cudnn-local-repo-ubuntu2204-8.9.4.25_1.0-1_amd64.deb ...
正在解压 cudnn-local-repo-ubuntu2204-8.9.4.25 (1.0-1) ...
正在设置 cudnn-local-repo-ubuntu2204-8.9.4.25 (1.0-1) ...
The public cudnn-local-repo-ubuntu2204-8.9.4.25 GPG key does not appear to be installed.
To install the key, run this command:
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.4.25/cudnn-local-3C3A81D3-keyring.gpg /usr/share/keyrings/
(base) fang@fang-Linux-4090:~/下载$ sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.4.25/cudnn-local-3C3A81D3-keyring.gpg /usr/share/keyrings/
(base) fang@fang-Linux-4090:~/下载$ sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
(base) fang@fang-Linux-4090:~/下载$ sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.4.25/cudnn-local-3C3A81D3-keyring.gpg /usr/share/keyrings/
(base) fang@fang-Linux-4090:~/下载$ sudo apt-get update
获取:1 file:/var/cuda-repo-ubuntu2204-12-1-local InRelease [1,572 B]
获取:1 file:/var/cuda-repo-ubuntu2204-12-1-local InRelease [1,572 B]
获取:2 file:/var/cuda-repo-ubuntu2204-12-2-local InRelease [1,572 B]
获取:3 file:/var/cudnn-local-repo-ubuntu2204-8.9.4.25 InRelease [1,572 B]
获取:2 file:/var/cuda-repo-ubuntu2204-12-2-local InRelease [1,572 B]
获取:3 file:/var/cudnn-local-repo-ubuntu2204-8.9.4.25 InRelease [1,572 B]
错误:2 file:/var/cuda-repo-ubuntu2204-12-2-local InRelease
由于没有公钥,无法验证下列签名: NO_PUBKEY DB37F1BE216F19BD
获取:4 file:/var/cudnn-local-repo-ubuntu2204-8.9.4.25 Packages [949 B]
获取:5 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
命中:6 http://cn.archive.ubuntu.com/ubuntu jammy InRelease
获取:7 http://cn.archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
获取:8 http://security.ubuntu.com/ubuntu jammy-security/main amd64 DEP-11 Metadata [42.8 kB]
获取:9 http://cn.archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
获取:10 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 DEP-11 Metadata [39.9 kB]
获取:11 http://cn.archive.ubuntu.com/ubuntu jammy-updates/main amd64 DEP-11 Metadata [101 kB]
获取:12 http://cn.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 DEP-11 Metadata [278 kB]
获取:13 http://cn.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 DEP-11 Metadata [940 B]
获取:14 http://cn.archive.ubuntu.com/ubuntu jammy-backports/main amd64 DEP-11 Metadata [4,912 B]
获取:15 http://cn.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 DEP-11 Metadata [15.5 kB]
已下载 820 kB,耗时 3秒 (246 kB/s)
正在读取软件包列表... 完成
W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:file:/var/cuda-repo-ubuntu2204-12-2-local InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY DB37F1BE216F19BD
W: 无法下载 file:/var/cuda-repo-ubuntu2204-12-2-local/InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY DB37F1BE216F19BD
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
(base) fang@fang-Linux-4090:~/下载$ sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.4.25_1.0-1_amd64.deb
(正在读取数据库 ... 系统当前共安装有 202959 个文件和目录。)
准备解压 cudnn-local-repo-ubuntu2204-8.9.4.25_1.0-1_amd64.deb ...
正在解压 cudnn-local-repo-ubuntu2204-8.9.4.25 (1.0-1) 并覆盖 (1.0-1) ...
正在设置 cudnn-local-repo-ubuntu2204-8.9.4.25 (1.0-1) ...
(base) fang@fang-Linux-4090:~/下载$ sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.4.25/cudnn-local-3C3A81D3-keyring.gpg /usr/share/keyrings/
(base) fang@fang-Linux-4090:~/下载$ sudo apt-get update
获取:1 file:/var/cuda-repo-ubuntu2204-12-1-local InRelease [1,572 B]
获取:2 file:/var/cuda-repo-ubuntu2204-12-2-local InRelease [1,572 B]
获取:3 file:/var/cudnn-local-repo-ubuntu2204-8.9.4.25 InRelease [1,572 B]
获取:1 file:/var/cuda-repo-ubuntu2204-12-1-local InRelease [1,572 B]
获取:2 file:/var/cuda-repo-ubuntu2204-12-2-local InRelease [1,572 B]
获取:3 file:/var/cudnn-local-repo-ubuntu2204-8.9.4.25 InRelease [1,572 B]
错误:2 file:/var/cuda-repo-ubuntu2204-12-2-local InRelease
由于没有公钥,无法验证下列签名: NO_PUBKEY DB37F1BE216F19BD
命中:4 http://cn.archive.ubuntu.com/ubuntu jammy InRelease
命中:5 http://security.ubuntu.com/ubuntu jammy-security InRelease
命中:6 http://cn.archive.ubuntu.com/ubuntu jammy-updates InRelease
命中:7 http://cn.archive.ubuntu.com/ubuntu jammy-backports InRelease
正在读取软件包列表... 完成
W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:file:/var/cuda-repo-ubuntu2204-12-2-local InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY DB37F1BE216F19BD
W: 无法下载 file:/var/cuda-repo-ubuntu2204-12-2-local/InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY DB37F1BE216F19BD
W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
(base) fang@fang-Linux-4090:~/下载$ sudo apt-get install libcudnn8=8.9.4.25_1.0-1+cuda12.2
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
没有可用的软件包 libcudnn8,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
E: 未找到“libcudnn8”的“8.9.4.25_1.0-1+cuda12.2”版本
(base) fang@fang-Linux-4090:~/下载$ sudo apt-get install libcudnn8=8.9.4.25-1+cuda12.2
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列【新】软件包将被安装:
libcudnn8
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 5 个软件包未被升级。
需要下载 0 B/455 MB 的归档。
解压缩后会消耗 1,142 MB 的额外空间。
获取:1 file:/var/cudnn-local-repo-ubuntu2204-8.9.4.25 libcudnn8 8.9.4.25-1+cuda12.2 [455 MB]
正在选中未选择的软件包 libcudnn8。
(正在读取数据库 ... 系统当前共安装有 202959 个文件和目录。)
准备解压 .../libcudnn8_8.9.4.25-1+cuda12.2_amd64.deb ...
正在解压 libcudnn8 (8.9.4.25-1+cuda12.2) ...
正在设置 libcudnn8 (8.9.4.25-1+cuda12.2) ...
(base) fang@fang-Linux-4090:~/下载$ cp -r /usr/src/cudnn_samples_v8/ /home/user/
cp: 对 '/usr/src/cudnn_samples_v8/' 调用 stat 失败: 没有那个文件或目录
(base) fang@fang-Linux-4090:~/下载$ cp -r /usr/src/cudnn_samples_v8/ ./
cp: 对 '/usr/src/cudnn_samples_v8/' 调用 stat 失败: 没有那个文件或目录
(base) fang@fang-Linux-4090:~/下载$ cd /usr/src/
(base) fang@fang-Linux-4090:/usr/src$ ls
linux-headers-5.19.0-32-generic linux-hwe-5.19-headers-5.19.0-32 nvidia-535.98
linux-headers-6.2.0-26-generic linux-hwe-6.2-headers-6.2.0-26
(base) fang@fang-Linux-4090:/usr/src$ sudo apt-get install libcudnn8-dev=8.9.4.25-1+cuda12.2
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列【新】软件包将被安装:
libcudnn8-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 5 个软件包未被升级。
需要下载 0 B/448 MB 的归档。
解压缩后会消耗 1,325 MB 的额外空间。
获取:1 file:/var/cudnn-local-repo-ubuntu2204-8.9.4.25 libcudnn8-dev 8.9.4.25-1+cuda12.2 [448 MB]
正在选中未选择的软件包 libcudnn8-dev。
(正在读取数据库 ... 系统当前共安装有 202976 个文件和目录。)
准备解压 .../libcudnn8-dev_8.9.4.25-1+cuda12.2_amd64.deb ...
正在解压 libcudnn8-dev (8.9.4.25-1+cuda12.2) ...
正在设置 libcudnn8-dev (8.9.4.25-1+cuda12.2) ...
update-alternatives: 使用 /usr/include/x86_64-linux-gnu/cudnn_v8.h 来在自动模式中提供 /usr/include/cudnn.h (libcudnn)
(base) fang@fang-Linux-4090:/usr/src$ sudo apt-get install libcudnn8-samples=8.9.4.25-1+cuda12.2
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列【新】软件包将被安装:
libcudnn8-samples
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 5 个软件包未被升级。
需要下载 0 B/1,663 kB 的归档。
解压缩后会消耗 2,169 kB 的额外空间。
获取:1 file:/var/cudnn-local-repo-ubuntu2204-8.9.4.25 libcudnn8-samples 8.9.4.25-1+cuda12.2 [1,663 kB]
正在选中未选择的软件包 libcudnn8-samples。
(正在读取数据库 ... 系统当前共安装有 203009 个文件和目录。)
准备解压 .../libcudnn8-samples_8.9.4.25-1+cuda12.2_amd64.deb ...
正在解压 libcudnn8-samples (8.9.4.25-1+cuda12.2) ...
正在设置 libcudnn8-samples (8.9.4.25-1+cuda12.2) ...
(base) fang@fang-Linux-4090:/usr/src$ $cp -r /usr/src/cudnn_samples_v8/ ./
-r:未找到命令
(base) fang@fang-Linux-4090:/usr/src$ cp -r /usr/src/cudnn_samples_v8/ ./
cp: '/usr/src/cudnn_samples_v8/' 与 './cudnn_samples_v8' 为同一文件
(base) fang@fang-Linux-4090:/usr/src$ cd
(base) fang@fang-Linux-4090:~$ cp -r /usr/src/cudnn_samples_v8/ ./
(base) fang@fang-Linux-4090:~$ cd ./cudnn_samples_v8/mnistCUDNN
(base) fang@fang-Linux-4090:~/cudnn_samples_v8/mnistCUDNN$ make clean && make
rm -rf *o
rm -rf mnistCUDNN
CUDA_VERSION is 12020
Linking agains cublasLt = true
CUDA VERSION: 12020
TARGET ARCH: x86_64
HOST_ARCH: x86_64
TARGET OS: linux
SMS: 50 53 60 61 62 70 72 75 80 86 87 90
test.c:1:10: fatal error: FreeImage.h: 没有那个文件或目录
1 | #include "FreeImage.h"
| ^~~~~~~~~~~~~
compilation terminated.
>>> WARNING - FreeImage is not set up correctly. Please ensure FreeImage is set up correctly. <<<
[@] /usr/local/cuda/bin/nvcc -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -ccbin g++ -m64 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_87,code=sm_87 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_90,code=compute_90 -o fp16_dev.o -c fp16_dev.cu
[@] g++ -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -o fp16_emu.o -c fp16_emu.cpp
[@] g++ -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -o mnistCUDNN.o -c mnistCUDNN.cpp
[@] /usr/local/cuda/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_87,code=sm_87 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_90,code=compute_90 -o mnistCUDNN fp16_dev.o fp16_emu.o mnistCUDNN.o -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64 -lcublasLt -LFreeImage/lib/linux/x86_64 -LFreeImage/lib/linux -lcudart -lcublas -lcudnn -lfreeimage -lstdc++ -lm
(base) fang@fang-Linux-4090:~/cudnn_samples_v8/mnistCUDNN$ $ ./mnistCUDNN
$:未找到命令
(base) fang@fang-Linux-4090:~/cudnn_samples_v8/mnistCUDNN$ ./mnistCUDNN
bash: ./mnistCUDNN: 没有那个文件或目录
(base) fang@fang-Linux-4090:~/cudnn_samples_v8/mnistCUDNN$ make clean && make
rm -rf *o
rm -rf mnistCUDNN
CUDA_VERSION is 12020
Linking agains cublasLt = true
CUDA VERSION: 12020
TARGET ARCH: x86_64
HOST_ARCH: x86_64
TARGET OS: linux
SMS: 50 53 60 61 62 70 72 75 80 86 87 90
test.c:1:10: fatal error: FreeImage.h: 没有那个文件或目录
1 | #include "FreeImage.h"
| ^~~~~~~~~~~~~
compilation terminated.
>>> WARNING - FreeImage is not set up correctly. Please ensure FreeImage is set up correctly. <<<
[@] /usr/local/cuda/bin/nvcc -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -ccbin g++ -m64 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_87,code=sm_87 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_90,code=compute_90 -o fp16_dev.o -c fp16_dev.cu
[@] g++ -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -o fp16_emu.o -c fp16_emu.cpp
[@] g++ -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -o mnistCUDNN.o -c mnistCUDNN.cpp
[@] /usr/local/cuda/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_87,code=sm_87 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_90,code=compute_90 -o mnistCUDNN fp16_dev.o fp16_emu.o mnistCUDNN.o -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64 -lcublasLt -LFreeImage/lib/linux/x86_64 -LFreeImage/lib/linux -lcudart -lcublas -lcudnn -lfreeimage -lstdc++ -lm
(base) fang@fang-Linux-4090:~/cudnn_samples_v8/mnistCUDNN$ sudo apt-get install libfreeimage3 libfreeimage-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
将会同时安装下列软件:
libraw20
下列【新】软件包将被安装:
libfreeimage-dev libfreeimage3 libraw20
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 5 个软件包未被升级。
需要下载 1,005 kB 的归档。
解压缩后会消耗 4,776 kB 的额外空间。
您希望继续执行吗? [Y/n]
获取:1 http://cn.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libraw20 amd64 0.20.2-2ubuntu2.22.04.1 [342 kB]
获取:2 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 libfreeimage3 amd64 3.18.0+ds2-6ubuntu5 [293 kB]
获取:3 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd64 libfreeimage-dev amd64 3.18.0+ds2-6ubuntu5 [370 kB]
已下载 1,005 kB,耗时 3秒 (365 kB/s)
正在选中未选择的软件包 libraw20:amd64。
(正在读取数据库 ... 系统当前共安装有 203075 个文件和目录。)
准备解压 .../libraw20_0.20.2-2ubuntu2.22.04.1_amd64.deb ...
正在解压 libraw20:amd64 (0.20.2-2ubuntu2.22.04.1) ...
正在选中未选择的软件包 libfreeimage3:amd64。
准备解压 .../libfreeimage3_3.18.0+ds2-6ubuntu5_amd64.deb ...
正在解压 libfreeimage3:amd64 (3.18.0+ds2-6ubuntu5) ...
正在选中未选择的软件包 libfreeimage-dev。
准备解压 .../libfreeimage-dev_3.18.0+ds2-6ubuntu5_amd64.deb ...
正在解压 libfreeimage-dev (3.18.0+ds2-6ubuntu5) ...
正在设置 libraw20:amd64 (0.20.2-2ubuntu2.22.04.1) ...
正在设置 libfreeimage3:amd64 (3.18.0+ds2-6ubuntu5) ...
正在设置 libfreeimage-dev (3.18.0+ds2-6ubuntu5) ...
正在处理用于 libc-bin (2.35-0ubuntu3.1) 的触发器 ...
(base) fang@fang-Linux-4090:~/cudnn_samples_v8/mnistCUDNN$ make clean && make
rm -rf *o
rm -rf mnistCUDNN
CUDA_VERSION is 12020
Linking agains cublasLt = true
CUDA VERSION: 12020
TARGET ARCH: x86_64
HOST_ARCH: x86_64
TARGET OS: linux
SMS: 50 53 60 61 62 70 72 75 80 86 87 90
/usr/local/cuda/bin/nvcc -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -ccbin g++ -m64 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_87,code=sm_87 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_90,code=compute_90 -o fp16_dev.o -c fp16_dev.cu
g++ -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -o fp16_emu.o -c fp16_emu.cpp
g++ -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -o mnistCUDNN.o -c mnistCUDNN.cpp
/usr/local/cuda/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_62,code=sm_62 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_72,code=sm_72 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86 -gencode arch=compute_87,code=sm_87 -gencode arch=compute_90,code=sm_90 -gencode arch=compute_90,code=compute_90 -o mnistCUDNN fp16_dev.o fp16_emu.o mnistCUDNN.o -I/usr/local/cuda/include -I/usr/local/cuda/include -IFreeImage/include -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib64 -lcublasLt -LFreeImage/lib/linux/x86_64 -LFreeImage/lib/linux -lcudart -lcublas -lcudnn -lfreeimage -lstdc++ -lm
(base) fang@fang-Linux-4090:~/cudnn_samples_v8/mnistCUDNN$ ./mnistCUDNN
Executing: mnistCUDNN
cudnnGetVersion() : 8904 , CUDNN_VERSION from cudnn.h : 8904 (8.9.4)
Host compiler version : GCC 11.4.0
There are 1 CUDA capable devices on your machine :
device 0 : sms 128 Capabilities 8.9, SmClock 2550.0 Mhz, MemSize (Mb) 24211, MemClock 10501.0 Mhz, Ecc=0, boardGroupID=0
Using device 0
卸载cuDNN方法:sudo rm -rf /usr/local/cuda-8.0
5. Reference
驱动,CUDA,cuDNN等之间的区别:https://zhuanlan.zhihu.com/p/91334380
驱动管理命令:https://zhuanlan.zhihu.com/p/243256494
安装教程1:https://www.cnblogs.com/DeepRS/p/15812370.html
安装教程2:https://blog.csdn.net/qq_49323609/article/details/130310522