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切换

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

相关推荐
西柚小萌新2 小时前
【深入浅出PyTorch】--上采样+下采样
人工智能·pytorch·python
虚拟指尖4 小时前
Ubuntu编译安装COLMAP【实测编译成功】
linux·运维·ubuntu
dlraba8027 小时前
PyTorch 模型部署实战:用 Flask 搭图像分类 API
pytorch·分类·flask
周之鸥8 小时前
从零部署 Astro 静态网站到云服务器(含 HTTPS 一键配置)
运维·服务器·ubuntu·http·https·astro
ulimate_9 小时前
树莓派:树莓派能安装CUDA吗
树莓派·cuda
西柚小萌新9 小时前
【深入浅出PyTorch】--6.2.PyTorch进阶训练技巧2
人工智能·pytorch·python
Kaydeon10 小时前
【AIGC】50倍加速!NVIDIA蒸馏算法rCM:分数正则化连续时间一致性模型的大规模扩散蒸馏
人工智能·pytorch·python·深度学习·计算机视觉·aigc
zhy2956311 小时前
【DNN】基础环境搭建
人工智能·tensorrt·cuda·开发环境·cudnn
中草药z12 小时前
【Docker】零基础上手:原理+Ubuntu/Windows GUI 安装 + 镜像源 / 目录优化
运维·ubuntu·docker·容器·gui·安装·cgroups
mortimer12 小时前
从 Python+venv+pip 迁移到 uv 全过程 及 处理 torch + cuda 的跨平台指南
pytorch·python·macos