开启深度学习之旅—ubuntun20.04下安装cuda,cdnn,pytorch

写在前面:因为要做机械臂抓取相关的课题,了解到GRASPNet这个来自上交大佬课题组的开源项目,打算配置环境复现一下,中间在安装NVIDIA显卡驱动和cuda过程中遇到不少问题,所以写个帖子记录以下。大家配置环境前,也需要了解自己要跑的项目所需的pytorch版本。

如有需要:GRASPNet

过程参考帖子:Ubuntu20.04下GraspNet复现流程中的问题ubuntu配置多版本cuda+cudnn环境,及版本切换方法

目录

一、安装CUDA,CUDNN :

1.检查显卡可支持最高版本CUDA        

2.安装NVIDIA显卡驱动

3.安装pytorch


一、安装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,这部分也是傻瓜安装,基本不会出错。

这里:Download Now | 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'

到这里就可以开展,深度学习之旅了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值