最近在配置手势3d重建的环境,碰到了比较多的问题,在这里记录一下cuda的问题,目前网上没有新版本的安装教学,所以我就搞一下,希望能帮助大家。
首先是确定ubuntu20.04有没有对应的显卡,我是直接重装了一遍系统,发现显卡已经有了。
检测显卡使用命令:
nvidia-smi
会出现
Mon Sep 26 20:38:53 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.65.01 Driver Version: 515.65.01 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A |
| N/A 54C P8 3W / N/A | 9MiB / 4096MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1052 G /usr/lib/xorg/Xorg 4MiB |
| 0 N/A N/A 1700 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------+
出现就代表已经成功安装显卡驱动了,于是准备装cuda,版本要和上面的第一行的cuda version一致,我这里是11.7,所以我要安装cuda 11.7. cuda官网网址为:CUDA Toolkit Archive | NVIDIA Developer
选择对应版本,我这里直接选11.7了,之后选择如下图:
按照官网提示的输入到终端中,提示在下面很显眼,最好不要直接复制我的:
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run
第一行输入到终端中后会进行下载,之后就是等待,下载好后运行第二行。
这里选择continue,之后可能会报错没有gcc,如果报错直接安装gcc和g++就好。
sudo apt-get install gcc
sudo apt-get install g++
之后就继续,输入accept。
之后就继续,把第一个选择驱动,给他回车取消,因为我们已经有驱动了。
然后就直接install。等待片刻后,会安装完成,然后在.bashrc里配置环境变量。
sudo gedit ~/.bashrc
在打开文件的最后一行加上:
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
ok,cuda配置结束,正常的测试是用sample里的脚本来测试的,可能是最新版的cuda,没有sample,就假设它装好了。使用nvcc -V测试以下有没有cuda。
nvcc -V
有这个显示就代表成了。
然后安装cudnn,这个要是跑深度学习必须装,不要不装!
去官网下载:https://developer.nvidia.com/rdp/cudnn-download
这里需要注册nvidia账号,没有的注册下。
之后选择新版本的,也就是第一个链接,末尾是11.几,因为我们cuda下载的是11.7,需要进行匹配。
之后我们的版本选择Local Installer for Ubuntu20.04 x86_64 (Deb),因为我的电脑是x86架构的,如果是书梅派或者tx2之类的就选别的:
下载好之后进行一个安装。
进入你下载的路径,在这里对这个进行安装。
sudo dpkg -i cudnn-local-repo-${OS}-8.x.x.x_1.0-1_amd64.deb
使用sudo dpkg -i +deb的命令来,我们需要把自己的版本输入进去,把里面的.x.x.x改了,我就改成了8.5.0.96, 然后前面的{os}改成ubuntu对应的版本2004.我这里最后改为了:
sudo dpkg -i cudnn-local-repo-ubuntu2004-8.5.0.96_1.0-1_amd64.deb
之后下一步,根据上面运行后的提示,把最后一句话复制下,输入终端。类似于下面这一句话。
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
然后就是继续装,把里面的xxx换成上面提到的,把后面的X.Y换成自己的cuda版本,我这里是cuda11.7,所以我就改成了11.7:
sudo apt-get update
sudo apt-get install libcudnn8=8.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn8-dev=8.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn8-samples=8.x.x.x-1+cudaX.Y
之后就装好了,测试一下有没有成功。
输入一下命令:
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN
这里可能会报错,如果是g++报错那就是没有g++,装。
sudo apt-get install g++
我还报错了头文件的问题,
这里安装这个头文件
sudo apt-get install libfreeimage3 libfreeimage-dev
之后再次make,注意make是编译命令,具体就不讲了。
等待一段时间和成功,可以进行下一步。
如果最后出现如下语句:Test passed!,那就是成功了!