0 序言
一段时间后,总会遇到同样的配置环境问题,又要重新搜索解决方案。这里为自己做一个总结。
General
0. cuda, g++, 版本更换
老版本cuda下载连接:
https://developer.nvidia.com/cuda-toolkit-archive
gedit ~/.bashrc
source ~/.bashrc
在bashrc中加入以下:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
并通过软链接的方式更换cuda版本
sudo rm -rf /usr/local/cuda #删除之前生成的软链接
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda #生成新的软链接
gcc版本切换可以用类似思路,或:
安装命令
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y gcc-7 g++-7
这个文件夹先显示gcc已经安装的版本
ls /usr/bin/gcc*
gcc版本切换
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10 --slave /usr/bin/g++ g++ /usr/bin/g++-7
# 10,20这些表示的是优先级,可根据需要选定,优先级高的即为默认的。
然后执行
sudo update-alternatives --config gcc
选择优先级,最后使用
gcc -V
查看
a 更换完仍无效
安装了新版本cuda后要先重启;仍然不行:
20221104
which nvcc
返回
/usr/bin/nvcc
还正常,打开nvcc这个脚本,发现
exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc
和软链接的位置不同,改为
exec /usr/local/cuda/bin/nvcc "$@"
后,可正常切换cuda版本
1. subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1.
对于ninja的问题,一些solution将[‘ninja’,‘-v’]改成[‘ninja’,‘–v’] 或者[‘ninja’,‘–version’]是不能解决问题的。本质在于没有统一cuda、pytorch的版本。
20221102出现:pytorch版本:1.8.2+CU101;NVCC 版本cuda10.2
tiny-cuda-nn
1.FileNotFoundError: [Errno 2] No such file or directory: ‘:/usr/local/cuda:/usr/local/cuda-10.1/bin/nvcc’
命名有这个directory, which nvcc 路径是一样的。但是在tiny-cuda-nn torch extension部分编译不通过。
solution:https://github.com/NVIDIA/apex/issues/368