CUDA Toolkit (+cuDNN)
NVIDIA 显卡驱动、CUDA、PyTorch 和 Python 的版本兼容性要求
PyTorch | CUDA | cuDNN | Python |
---|---|---|---|
2.7 | 11.8, 12.6, 12.8 | ~ 9.7.1.26 | >=3.9, <=3.13 |
2.6 | 11.8, 12.4, 12.6 | ~ 9.5.1.17 | |
2.5 | 11.8, 12.1, 12.4 | None | |
2.4 | ~ 9.1.0.70 | >=3.8, <=3.12 | |
2.3 | 11.8, 12.1 | ~ 8.7.0.84 | |
2.2 | |||
2.1 | >= 3.8, <=3.11 | ||
2.0 | 11.7, 11.8 | ~ 8.5.0.96 | |
1.13 | 11.6, 11.7 | ~ 8.3.2.44 | >= 3.7, <=3.10 |
1.12 | 11.3, 11.6 |
详见:CUDA Toolkit Major Component Versions 和 Releasing PyTorch | Release Compatibility Matrix
安装 CUDA Toolkit 1#
选择合适的 CUDA 版本
选择 CUDA Toolkit 版本时,需要根据实际开发环境和版本兼容性要求进行选择,多个 CUDA 版本之间可以通过配置环境变量并存。
是否需要为 PyTorch 安装特定 CUDA?
在虚拟环境下,使用包管理器(conda
或 pip
)安装 PyTorch 时,会自动安装所依赖版本的 CUDA 和
cuDNN(作为 Python 软件包,如 cudatoolkit
),并与系统环境变量定义的 CUDA 和 cuDNN 版本相隔离,PyTorch
会优先调用虚拟环境中的 CUDA 和 cuDNN。因此,不需要在系统环境下为 PyTorch 安装特定版本的 CUDA 和 cuDNN。
首先,删除过时的 GPG 密钥
安装 NVIDIA CUDA 密钥环,以获取最新软件源
wget https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
根据实际版本和架构,$distro/$arch
需要替换为以下字段:
ubuntu2004/x86_64
ubuntu2004/sbsa
ubuntu2004/arm64
ubuntu2204/x86_64
ubuntu2204/sbsa
ubuntu2204/arm64
ubuntu2404/x86_64
ubuntu2404/sbsa
ubuntu2404/arm64
详见:https://developer.download.nvidia.com/compute/cuda/repos/
使用 APT 命令,选择一个合适的 CUDA Toolkit 版本进行安装
可用的 CUDA Toolkit 版本 ${cuda-toolkit}
cuda-toolkit-11-8
cuda-toolkit-12-0
cuda-toolkit-12-1
cuda-toolkit-12-2
cuda-toolkit-12-3
cuda-toolkit-12-4
cuda-toolkit-12-5
cuda-toolkit-12-6
cuda-toolkit-12-8
建议使用 Tab 键自动补全,或执行 apt search cuda-toolkit
命令,搜索当前可用的 CUDA Toolkit 版本
目前兼容性最佳的版本为:CUDA Toolkit 11.8
访问 CUDA Toolkit Archive 官网,根据实际开发需求,选择一个合适的版本
目前兼容性最佳的版本为:CUDA Toolkit 11.8
选择目标平台的操作系统、架构、发行版和安装类型
务必选择 deb (local)
或 runfile (local)
方式安装
安装类型务必选择 deb (local)
或 runfile (local)
,使用 deb (network)
将会在线安装最新版!
注意选择是否安装 NVIDIA 显卡驱动
本地安装程序将附带 NVIDIA 显卡驱动且默认勾选,如果直接安装将会覆盖当前驱动版本
图中,以 CUDA Toolkit 11.8 为例
依照所选 Installer Type(安装类型)的安装命令进行安装
图中,以 CUDA Toolkit 11.8、runfile (local)
为例
以 runfile (local)
安装类型为例,运行安装程序,使用方向键选择 Continue
继续安装
在下方输入 accept
并回车确认,接受 EULA 协议
务必取消勾选 Driver
项,否则会重新安装显卡驱动,然后选择 install
开始安装
安装完成后,留意 CUDA Toolkit 的安装路径 PATH
和 LD_LIBRARY_PATH
图中,安装路径为 /usr/local/cuda-11.8/
编辑 .bashrc
文件,配置环境变量
将 CUDA 的路径 PATH
和 LD_LIBRARY_PATH
写入 .bashrc
文件
需要将
cuda-x.x
替换为实际安装的版本,例如cuda-11.8
export PATH=/usr/local/cuda-x.x/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-x.x/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存更改后,使用下列命令使配置立即生效:
安装完成后,查看 CUDA 版本以验证安装
建议重启系统以重新加载图形界面
卸载 CUDA Toolkit#
- 移除 CUDA Toolkit
sudo apt --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
"*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"
- 清理缓存及无用的相关依赖
安装 cuDNN 2#
cuDNN(CUDA Deep Neural Network Library)
NVIDIA CUDA 深度神经网络库(cuDNN)是由 NVIDIA 推出的专为深度学习设计的 GPU 加速库,专注于优化深度神经网络的核心计算操作。 它通过高度优化的卷积、池化、归一化和激活函数等算法,显著提升了训练和推理任务的效率,并与主流深度学习框架(如 TensorFlow、PyTorch)无缝集成,使开发者无需手动编写底层代码即可充分利用 GPU 性能,广泛应用于学术和工业领域的高性能计算场景。
更新至 cuDNN 9
2024年2月,cuDNN 9.0.0 发布,主要引入了对动态形状推理的优化支持,显著提升了可变输入尺寸场景(如自然语言处理)的计算效率,同时新增了针对 Ampere 架构 GPU(如A100)的细粒度 Tensor Core 加速功能,优化了卷积、池化和归一化等核心操作的性能,并扩展了 API 以支持更灵活的模型设计。
为了获得最佳性能,建议安装最新的 cuDNN 9 及与之兼容的 CUDA 11/12 最新版本 ! (1)
- cuDNN 9 可以与之前的 7/8 版本共存,安装新版本不会自动删除较旧的版本
安装 cuDNN 依赖项 zlib(数据压缩软件库)
默认安装最新版本
网络安装将默认安装最新版的 cuDNN,如需安装特定版本,建议使用软件包本地安装
如果在之前安装 CUDA Toolkit 时已添加密钥环,可以跳过此步骤
安装 NVIDIA CUDA 密钥环,以获取最新软件源
wget https://developer.download.nvidia.com/compute/cuda/repos/$distro/$arch/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
根据实际版本和架构,$distro/$arch
需要替换为以下字段:
ubuntu2004/x86_64
ubuntu2004/sbsa
ubuntu2004/arm64
ubuntu2204/x86_64
ubuntu2204/sbsa
ubuntu2204/arm64
ubuntu2404/x86_64
ubuntu2404/sbsa
ubuntu2404/arm64
详见:https://developer.download.nvidia.com/compute/cuda/repos/
安装适用于 CUDA 版本的 cuDNN:
- 对于 CUDA 11:
- 对于 CUDA 12:
访问 cuDNN Archive 官网,选择一个合适的版本
选择目标平台的操作系统、架构、发行版,其中,安装类型选择 deb (local)
图中,以 cuDNN 9.7.1 为例
依照所选 Installer Type(安装类型)的安装命令进行安装
图中,以 cuDNN 9.7.1 为例
验证 cuDNN#
安装 cuDNN 示例
编译 mnistCUDNN
示例
运行 mnistCUDNN
示例
如果运行结果提示 Test passed!
,则说明已正确安装 cuDNN