## <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##
## 将 CUDATOOLKIT 的安装路径添加到系统变量中,使用 nvcc -V 查看是否配置成功 ##
## <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##
# 创建软链接:sudo ln -s /usr/local/cuda-xx.x /usr/local/cuda
# 好处是更改cudatoolkit版本时,只需要修改软链接的指向,不用每次都重新修改.bashrc
export CUDA_HOME=/usr/local/cuda
# 不使用软链接时:只需要将CUDA_HOME设置为cudatoolkit安装的路径
# 确保新添加的环境放在原始环境的最后面,这样source ~/.basrc才能生效
export PATH="$CUDA_HOME/bin:$PATH" # 使用引号确保有特殊含义的字符成为普通字符
export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
## <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##
## <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ##
如果要修改 RunTime cudatoolkit
的版本,只需要修改软链接即可。
sudo ln -s /usr/local/cuda-xx.x /usr/local/cuda
修改 cudatoolkit
版本的脚本文件 change_cuda-ver.sh
。
#!/bin/bash
echo "当前的cuda版本为:"
nvcc -V
## ============================================== ##
## ============================================== ##
echo "正在删除旧的软连接..."
# 如果输出不为空,表示有错误
if [ -n $(rm -rf /usr/local/cuda) ]; then
echo "删除失败,准备切换到root执行权限进行操作!"
# 如果当前字符串为空,表示命令执行成功
if [ -z $(sudo rm -rf /usr/local/cuda) ]; then
echo "删除成功!"
fi
fi
## ============================================== ##
## ============================================== ##
read -p "请输入要设置的cuda版本:" VER
echo "正在创建新的软链接..."
sudo ln -s /usr/local/cuda-${VER} /usr/local/cuda
echo "修改成功!现在的cuda版本如下:"
nvcc -V
运行时采用:
source ./change_cuda-v.sh
运行效果:
这里需要强调下:原以为软链接可以不删除直接覆盖就可以,经过多次运行测试发现有 bug
,所以还是修改成以上,先删除原来的软链接,然后重新创建。本人只是初学,有大神知道的望在评论区不吝赐教,感谢!
关于
source
与bash
运行shell
脚本的详细知识,参考:http://c.biancheng.net/view/739.html
总的来说,在这里帮助我的是:source
可以直接执行 bash
命令,且不需要获取 root
权限,直接使用 ./xxx.sh
不能执行。
注意:如果脚本中某条语句的执行需要用到
root
用户权限,直接执行会报错:rm: cannot remove '/usr/local/cuda': Permission denied
解决方法:在需要更高执行权限的语句前加上sudo
,上面说的不需要root
执行权限的意思是,执行source xxx.sh
时,不需要sudo
。
参考链接:Linux常用shell命令及语法基础