Ubuntu22.04 LTS + CUDA12.3 + CUDNN8.9.7 + PyTorch2.1.1

简介

本文记录Ubuntu22.04长期支持版系统下的CUDA驱动和cuDNN神经网络加速库的安装,并安装PyTorch2.1.1来测试是否安装成功。

安装Ubuntu系统

  1. 如果是旧的不支持UEFI启动的主板,请参考本人博客U盘系统盘制作与系统安装(详细图解)
  2. 如果是新的支持UEFI启动的主板,请参考本人博客UEFI下Windows10和Ubuntu22.04双系统安装图解

安装CUDA

CUDA的安装方式有多种:deb在线、deb离线、run在线、run离线等等,具体可参见CUDA手册。本文采用deb离线方式,访问CUDA下载首页,根据操作系统、处理器等信息选择安装文件。

选择完成后页面给出安装命令脚本,可以看到上述deb文件仅仅安装了CUDA运行时环境(base installer),还需要安装对应的NVIDIA显示驱动(Driver installer)。

本文下载的文件为 cuda-repo-ubuntu2204-12-3-local_12.3.1-545.23.08-1_amd64.deb ,根据提示下载后执行如下命令安装Base Installer

bash 复制代码
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo dpkg -i cuda-repo-ubuntu2204-12-3-local_12.3.1-545.23.08-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3

安装完成后根据需要选择安装legacy 还是open核下的驱动

bash 复制代码
# To install the legacy kernel module flavor:
sudo apt-get install -y cuda-drivers

# To install the open kernel module flavor:
sudo apt-get install -y nvidia-kernel-open-545
sudo apt-get install -y cuda-drivers-545

最后需要添加环境变量到~/.bashrc 文件:

bash 复制代码
export CUDA_HOME=/usr/local/cuda-12.3
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

安装CUDNN

CUDNN首页下载安装包,有tar压缩包文件格式,也有deb格式,根据操作系统类型版本和CUDA版本选择相应的安装包,如本文选择下图中所示安装文件(tar压缩包格式)

下载完成后执行如下命令安装,具体参见官方安装指南

bash 复制代码
tar -xvf cudnn-linux-$arch-8.x.x.x_cudaX.Y-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

注意修改上述命令中的文件名,并替换x.x.xX.Y为具体的版本号,如本文实际执行命令为:

bash 复制代码
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

安装PyTorch

访问PyTorch首页,根据环境选择安装方式,输入提示命令安装即可,如下图所示

如果想使用离线安装方式,可以先从这里下载所需要的PyTorch安装文件,如 torch-2.1.1%2Bcu121-cp311-cp311-linux_x86_64.whl 表示适合于CUDA12.1,Python3.11、Linux系统、x86_64处理器架构环境下的安装文件。下载完成后,执行pip install torch-xxx.whl即可。

下面利用PyTorch来获取硬件及安装的PyTorch版本信息,代码如下:

python 复制代码
import torch as th

print("Torch Version: ", th.__version__)
print("CUDA Version: ", th.version.cuda)
print("CUDNN Version: ", th.backends.cudnn.version())
print("CUDA available?: ", th.cuda.is_available())
print("CUDA device count: ", th.cuda.device_count())

for gpuid in range(th.cuda.device_count()):
    print("GPU ID: %d, name: %s, capability: %s" % (gpuid, th.cuda.get_device_name(gpuid), th.cuda.get_device_capability(gpuid)))
    print(th.cuda.get_device_properties(gpuid))

执行后输出如下类似信息:

bash 复制代码
Torch Version:  2.1.1+cu121
CUDA Version:  12.1
CUDNN Version:  8907
CUDA available?:  True
CUDA device count:  2
GPU ID: 0, name: NVIDIA GeForce GTX 1080 Ti, capability: (6, 1)
_CudaDeviceProperties(name='NVIDIA GeForce GTX 1080 Ti', major=6, minor=1, total_memory=11172MB, multi_processor_count=28)
GPU ID: 1, name: NVIDIA GeForce GTX 1080, capability: (6, 1)
_CudaDeviceProperties(name='NVIDIA GeForce GTX 1080', major=6, minor=1, total_memory=8110MB, multi_processor_count=20)

附录

多版本CUDA切换

可以参考本人博客计算机使用技巧

相关推荐
Tipriest_32 分钟前
离线进行apt安装的过程(在只能本地传输的ubuntu主机上使用apt安装)
linux·运维·ubuntu·apt·install·deb
QMCY_jason39 分钟前
Ubuntu 1804 编译ffmpeg qsv MediaSDK libva 遇到的问题记录
linux·ubuntu·ffmpeg
九章云极AladdinEdu10 小时前
GitHub新手生存指南:AI项目版本控制与协作实战
人工智能·pytorch·opencv·机器学习·github·gpu算力
站住前面的二哈11 小时前
Cartographer安装测试与模块开发(三)--Cartographer在Gazebo仿真环境下的建图以及建图与定位阶段问题(实车也可参考)
学习·ubuntu
Vesan,11 小时前
【Linux/Ubuntu】VIM指令大全
linux·ubuntu·vim
z are14 小时前
PyTorch 模型开发全栈指南:从定义、修改到保存的完整闭环
人工智能·pytorch·python
饭来_17 小时前
Ubuntu 环境下创建并启动一个 MediaMTX 的 systemd 服务
ubuntu
点云SLAM18 小时前
Pytorch中cuda相关操作详见和代码示例
人工智能·pytorch·python·深度学习·3d·cuda·多gpu训练
努力一点94820 小时前
linux系统底层逻辑 开机顺序 ubuntu22.04系统
linux·运维·服务器·ubuntu·ai·gpu算力
Tipriest_1 天前
ubuntu 多网络路由优先级问题
网络·ubuntu·路由·多网络