一、对某用户指定特定版本 cuda
-
查看
/usr/local
下的已有的 cuda 版本xxxxxxx@xx: ls /usr/local/cuda* /usr/local/cuda-10.1: bin cuda-9.2 EULA.txt include libnsight nsight-compute-2019.4.0 nsight-systems-2019.3.7.5 nvvm share targets version.txt cuda-10.1 doc extras lib64 libnvvp nsightee_plugins nvml samples src tools /usr/local/cuda-9.0: bin doc extras include jre lib64 libnsight libnvvp nsightee_plugins nvml nvvm pkgconfig samples share src tools version.txt /usr/local/cuda-9.2: bin cuda-9.0 cuda9.0 doc extras include jre lib64 libnsight libnvvp nsightee_plugins nvml nvvm pkgconfig samples share src tools version.txt
-
在该用户的
~/.bashrc
中添加/修改环境变量,以使用cuda-10.1
为例:export PATH=$PATH:/usr/local/cuda-10.1/bin export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH export LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LIBRARY_PATH
二、多版本 cuda 切换
-
更改用户的
~/.bashrc
中的环境变量,以使用cuda
代替cuda-10.1
:export PATH=$PATH:/usr/local/cuda/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
-
将
/usr/local/cuda
软链到某一个版本的 cuda,以cuda-10.1
为例:sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
-
以上命令运行之后,用户的 cuda 版本就被设定为了 10.1, 如果要更改版本,则必须先删除旧的软链接,然后重新链接
# 如果要修改 `/usr/local/cudaa` 的链接,必须先删除,再重新链接 sudo rm -rf cuda sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
-
来源
三、cuda版本随conda环境自动变化
假设此时服务器上安装了两个CUDA版本,分别为CUDA 8.0(/usr/local/cuda-8.0)和CUDA 9.0(/usr/local/cuda-9.0),并且在本机上配置了一个版本(例如8.0)的环境变量($CUDA_HOME, $LD_LIBRARY_PATH)。没配置更好,这里配置是为了验证切换虚拟环境时指定的CUDA版本是否发生相应的改变。假设虚拟环境的路径为 /home/username/.conda/envs/cuda_test
。
总体方法为设定启动虚拟环境以及退出时需要执行的脚本,为了使虚拟环境启动时环境变量不同于本机环境,退出时又恢复为本机环境。步骤如下:
- 创建启动虚拟环境以及退出时需要执行的脚本
mkdir -p /home/username/.conda/envs/cuda_test/etc/conda/activate.d mkdir -p /home/username/.conda/envs/cuda_test/etc/conda/deactivate.d
- 编辑启动脚本
输入以下内容vim /home/username/.conda/envs/cuda_test/etc/conda/activate.d/activate.sh
ORIGINAL_PATH=$PATH ORIGINAL_CUDA_HOME=$CUDA_HOME ORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH export CUDA_HOME=/usr/local/cuda-9.0 export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
- 添加执行权限
chmod +x /home/username/.conda/envs/cuda_test/etc/conda/activate.d/activate.sh
- 编辑退出脚本 vim
输入以下内容vim /home/username/.conda/envs/cuda_test/etc/conda/deactivate.d/deactivate.sh
export PATH=$ORIGINAL_PATH export CUDA_HOME=$ORIGINAL_CUDA_HOME export LD_LIBRARY_PATH=$ORIGINAL_LD_LIBRARY_PATH unset ORIGINAL_PATH unset ORIGINAL_CUDA_HOME unset ORIGINAL_LD_LIBRARY_PATH
- 添加执行权限
chmod +x /home/username/.conda/envs/cuda_test/etc/conda/deactivate.d/deactivate.sh
- 来源:https://bluesmilery.github.io/blogs/a687003b/#CUDA%E5%AE%89%E8%A3%85