··

多版本 CUDA Toolkit 安装与切换

前言

在配环境过程中,我们时常会遇到CUDA版本不匹配的情况,此时我们就需要一个多版本CUDA安装与切换到方案。我在此提供一种非Root用户的配置方案,配置完成后,只需执行如下命令即可切换到指定版本(以11.8为例):

Terminal window
$ . ./switch_cuda.sh 11.8

配置多版本CUDA

你可以在这里找到 CUDA Toolkit 11.7 的安装包(选择.run文件)。

想安装老版本的CUDA Toolkit?

如果你想安装老版本的CUDA Toolkit,我建议优先安置以下几个版本:

因为pytorch官方有提供这几个版本的whl文件,后续可以通过pip直接安装torch而不需要本地编译。

我们使用wget将run文件下载到本地以后,先通过 chmod +x ./<xxxxx>.run 修改权限,然后直接运行 ./<xxxxx>.run 即可。

我们先输入 accept 同意用户许可,然后按需选择是否要安装驱动。

Options 中,我们可以指定安装路径。在此处,我们将其安装到 ~/cuda/cuda-11.7 下。其他版本也将其安装到~/cuda/cuda-<version>下。

完成配置后,选择 Install 即可完成安装。

环境变量以及脚本

环境变量

我们先通过 vim ~/.bashrc 打开bash配置文件。 在其中添加以下几行:

# >>> CUDA version >>>
export CUDA_VERSION=11.7
export PATH=$HOME/cuda/cuda-${CUDA_VERSION}/bin:$PATH
export LD_LIBRARY_PATH=$HOME/cuda/cuda-${CUDA_VERSION}/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/data/chenzirui/cuda/cuda-${CUDA_VERSION}/
# <<< CUDA version <<<

然后执行 source ~/.bashrc 即可。

切换脚本

Warning

只有将各版本CUDA按格式安装到 ~/cuda/cuda-<version> 下才能使用此脚本。

将以下代码保存到 ~/switch_cuda.sh 下即可:

#!/bin/bash
# 用法: ./switch_cuda.sh 11.2 或 ./switch_cuda.sh 10.2
CUDA_VERSION=$1
if [ -z "$CUDA_VERSION" ]; then
echo "Please specify CUDA version, e.g. ./switch_cuda.sh 11.2"
exit 1
fi
export PATH=$HOME/cuda/cuda-${CUDA_VERSION}/bin:$PATH
export LD_LIBRARY_PATH=$HOME/cuda/cuda-${CUDA_VERSION}/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=$HOME/cuda/cuda-${CUDA_VERSION}
echo "Switched to CUDA ${CUDA_VERSION}"

这样即可使用 . ~/switch_cuda.sh 11.7 进行切换。

至此,你已经完成了所有配置。