写在前面:因为要做机械臂抓取相关的课题,了解到GRASPNet这个来自上交大佬课题组的开源项目,打算配置环境复现一下,中间在安装NVIDIA显卡驱动和cuda过程中遇到不少问题,所以写个帖子记录以下。大家配置环境前,也需要了解自己要跑的项目所需的pytorch版本。
如有需要:GRASPNet
过程参考帖子:Ubuntu20.04下GraspNet复现流程中的问题;ubuntu配置多版本cuda+cudnn环境,及版本切换方法
目录
一、安装CUDA,CUDNN :
1.检查显卡可支持最高版本CUDA
安装前,首先确定项目所需pytorch版本,检查自己电脑显卡是否支持,然后去NVIDIA官网下载对应版本的CUDA。
CUDA下载:NVIDIA提供多版本CUDA
项目所需的pythorch版本一般项目说明里面,会有写,检查自己显卡支持的最高版本CUDA,可以通过在终端命令行方式查询,输入以下:
nvidia-smi
如果显示以下,表明驱动已经正确安装。我的最高支持版本CUDA是12.8,我就只能选择12.8以下版本CUDA,其实对于大部分项目就已经够用了。
(base) l@JAVIS:~$ nvidia-smi
Sun May 4 15:53:17 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.133.20 Driver Version: 570.133.20 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| 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 RTX 4060 ... Off | 00000000:01:00.0 On | N/A |
| N/A 40C P8 3W / 55W | 462MiB / 8188MiB | 8% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1308 G /usr/lib/xorg/Xorg 234MiB |
| 0 N/A N/A 1495 G /usr/bin/gnome-shell 54MiB |
| 0 N/A N/A 2542 G ...144 --variations-seed-version 145MiB |
+-----------------------------------------------------------------------------------------+
如果没有显示上述界面信息,说明显卡驱动安装有问题,如果你之前没有额外管理过自己的驱动,ubuntu自带的是nouveau
驱动,就会出现如下问题,也很好解决,换用和显卡对应的NVIDIA驱动就行。
2.安装NVIDIA显卡驱动
首先查看nouveau
驱动的启用情况,命令行输入:
lsmod | grep nouveau
如果有输出表示nouveau
驱动正在工作,如果没什么反应则表示已经禁用了nouveau
。
要是有内容输出,说明需要先卸载原始驱动,命令行输入:
sudo gedit /etc/modprobe.d/blacklist.conf
这里调用了gedit编辑器,在稍后弹出的文本文件末尾,复制如下文本,来手动禁用原始驱动:
blacklist nouveau
options nouveau modeset=0
然后命令行输入,应用更改:
sudo update-initramfs -u
可以再次输入开始代码验证,驱动是否被禁用成功,成功查找自己电脑使用NVIDIA版本,通过命令行输入:
ubuntu-drivers devices
显示出来的一列中,末尾带recommended的就是推荐版本,例如我的电脑的推荐版本为nvidia-driver-570 - distro non-free :
(base) l@JAVIS:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 ==
modalias : pci:v000010DEd000028E0sv000017AAsd00003C51bc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-535-server-open - distro non-free
driver : nvidia-driver-570-open - distro non-free
driver : nvidia-driver-570-server-open - distro non-free
driver : nvidia-driver-570 - distro non-free recommended
driver : nvidia-driver-535-server - distro non-free
driver : nvidia-driver-535 - distro non-free
driver : nvidia-driver-535-open - distro non-free
driver : nvidia-driver-570-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
知道对应版本后,采用系统工具来安装,在ubuntu的附加驱动这个应用中,选择这个nvidia-driver-570 - distro non-free版本来应用并重启。
对于小白,不要轻易尝试其他办法来更换显卡驱动,一不小心就容易出问题,我就在更换显卡驱动这一步,让系统的wifi消失了,然后只能重装系统解决问题,如果有大佬知道原因,欢迎评论区交流。
可以再次输入,来验证驱动是否成功安装:
nvidia-smi
3.安装CUDA
完成显卡驱动安装,CUDA基本按照官网的两条命令就能顺利解决。以我的需求为例,我需要安装pytorch版本为1.8,所以选择CUDA版本为11.1。对应版本查询:Select preferences。
CUDA的下载地址,也在官网有提供:CUDA Toolkit Archive | NVIDIA Developer;
然后只需要将下面,两行指令一次输入命令行,注意安装界面中,取消驱动安装!!!因为前面我们已经完成了,驱动安装,等待一段时间,即可完成CUDA11.1安装;
wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run
sudo sh cuda_11.1.1_455.32.00_linux.run
然后配置环境变量,我的理解是使得安装的这个版本CUDA生效:
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
最后测试:
source ~/.bashrc
nvcc -V
显示应该如下:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2020 NVIDIA Corporation
Built on Mon_Oct_12_20:09:46_PDT_2020
Cuda compilation tools, release 11.1, V11.1.105
Build cuda_11.1.TC455_06.29190527_0
3.安装CDNN
操作也比较简单,参见cuDNN Archive | NVIDIA Developer;
选择对应CUDA版本安装,一般是Linux X86_64;
下载后,在文件目录下打开终端,解压:
tar -vxf ./cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
然后复制到指定目录,不是CUDA11.1的话记得改版本名:
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include/* /usr/local/cuda-11.1/include
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.1/lib64
添加权限:
sudo chmod a+r /usr/local/cuda-11.1/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.1/lib64/libcudnn*
最后命令行输入,测试安装:
cat /usr/local/cuda-11.1/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
显示应该类似以下:
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 7
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
/* cannot use constexpr here since this is a C-only file */
3.安装pytorch
基本用anaconda来生成环境,在环境下安装pytorch,所以先安装一个anaconda,这部分也是傻瓜安装,基本不会出错。
下载目录下:(注意文件名替换)
bash Anaconda3-2024.10-1-Linux-x86_64.sh
跟着流程走,一直默认就行。
安装完成后,我们生成一个新的环境,来安装pytorch;
conda create -n newenv python=3.8
激活环境:
conda activate newenv
在环境下,安装pytorch:Previous PyTorch Versions | PyTorch
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
测试:
python
import torch
print(torch.__version__)
print(torch.cuda.is_available())
torch.version.cuda
类似输出,表示成功:(注意是在新环境newenv下)
Python 3.8.20 (default, Oct 3 2024, 15:24:27)
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)
1.8.0+cu111
>>> print(torch.cuda.is_available())
True
>>> torch.version.cuda
'11.1'
到这里就可以开展,深度学习之旅了。