CUDA Toolkit 安装:runfile 与 conda-forge

需要编译 CUDA 程序或扩展时,通常需要包含 nvcc、头文件和开发库的 CUDA Toolkit。这篇笔记以 CUDA 11.8 的 Linux runfile 为例,并保留原来的 cudatoolkit-dev 安装方式。

使用 NVIDIA runfile

从 NVIDIA 官方地址下载安装包:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run \
  -O cuda_11.8_installer.run

只安装 Toolkit,可以执行:

sudo bash cuda_11.8_installer.run --silent --toolkit

--toolkit 指定安装 Toolkit,不会同时安装 runfile 中附带的驱动。安装参数及系统要求见 CUDA 11.8 Linux 安装文档。

指定临时目录

如果 /tmp 空间不足、不可写,或挂载选项不满足安装器要求,可以通过 --tmpdir 指定其他目录:

mkdir -p "$HOME/.cache/cuda-installer"

sudo bash cuda_11.8_installer.run \
  --silent \
  --toolkit \
  --tmpdir="$HOME/.cache/cuda-installer"

也可以使用其他有足够空间的目录。若选择 $XDG_RUNTIME_DIR,先确认该变量已设置,且对应目录的容量足够。

无 root 权限安装

只安装到用户可写目录时,可以省略 sudo,并通过 --toolkitpath 指定路径:

mkdir -p "$HOME/CUDA/cuda-11.8" "$HOME/.cache/cuda-installer"

bash cuda_11.8_installer.run \
  --silent \
  --toolkit \
  --toolkitpath="$HOME/CUDA/cuda-11.8" \
  --tmpdir="$HOME/.cache/cuda-installer"

安装后,将对应路径加入当前 shell 环境:

export PATH="$HOME/CUDA/cuda-11.8/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/CUDA/cuda-11.8/lib64${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

nvcc --version

原命令中的 --override 会跳过部分安装检查,并不是无 root 安装的必要参数;确认检查失败的原因后,再决定是否使用它。

使用 conda-forge 的 cudatoolkit-dev

原笔记使用下面的命令,在 Conda 环境中安装开发工具,并单独指定临时目录:

mkdir -p "$HOME/.cache/cuda-installer"
TMPDIR="$HOME/.cache/cuda-installer" conda install -c conda-forge cudatoolkit-dev

cudatoolkit-dev 会通过安装后脚本下载并安装 Toolkit,不能将它与仅提供运行库的包混为一谈。它的可用版本也不一定与上面的 CUDA 11.8 runfile 相同,可先用 conda search -c conda-forge cudatoolkit-dev 查询。

该包的维护仓库现已归档,这一节保留的是旧环境的安装记录;新环境的安装方式应按所需 CUDA 版本查阅 NVIDIA 文档。

本文采用 CC BY-NC-SA 4.0 协议