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

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核下的驱动

# 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 文件:

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压缩包格式)

在这里插入图片描述

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

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为具体的版本号,如本文实际执行命令为:

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版本信息,代码如下:

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))

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

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

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

最近更新

  1. TCP协议是安全的吗?

    2023-12-10 11:34:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-10 11:34:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-10 11:34:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-10 11:34:03       18 阅读

热门阅读

  1. vue全屏事件与关闭全屏事件

    2023-12-10 11:34:03       37 阅读
  2. Kubernetes - 一键卸载 Kubernetes-Dashboard

    2023-12-10 11:34:03       37 阅读
  3. 恒虚警处理及其他功能的Matlab实现

    2023-12-10 11:34:03       35 阅读
  4. Android--Jetpack--LiveData源码分析

    2023-12-10 11:34:03       38 阅读
  5. 安全扫描五项简介

    2023-12-10 11:34:03       33 阅读
  6. 【原创】录剪视频的折腾之路

    2023-12-10 11:34:03       27 阅读
  7. DevOps - Spug 自动化运维平台

    2023-12-10 11:34:03       36 阅读
  8. Liunx的LVM与磁盘配额

    2023-12-10 11:34:03       40 阅读
  9. Python中函数详解

    2023-12-10 11:34:03       30 阅读