配置环境的坑坑洼洼

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

你可能感兴趣的:(杂谈,cmake)