问题描述:
使用nvcc -V可以识别cuda版本
但是使用setup.py进行编译会报错“:/usr/local/cuda-11.1:/usr/local/cuda/bin/nvcc: not found”
解决办法
存在多个版本的cuda版本
使用 nano ~/.bashrc,, nano ~/.bashrc
修改了几次环境变量也没成功(可能需要重启生效),
在usr/local/路径下包含cuda,cuda11.1,cuda11.7
最后一次直接在命令行输入
export CUDA_HOME=/usr/local/cuda之后可以成功编译
原因:
应该是并没有成功的切换cuda版本,导致编译无法找到正确nvcc可以参考以下办法进行版本的切换
配置cuda11.1环境变量,配置其他环境亦可
nano ~/.bashrc
之后
export CUDA_HOMA=/usr/local/cuda/cuda-11.1:$CUDA_HOME
export PATH=/usr/local/cuda/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/cuda/local/cuda-11.1/lib64:$LD_LIBRARY_PATH
保存并退出后,更新环境变量:
source ~/.bashrc
2:编写脚本进行快速转变,可以很好生效
创建脚本
sudo nano /usr/local/bin/switch_cuda_11.1.sh
填写脚本内容
#!/bin/bash
export PATH=/usr/local/cuda-11.1/bin${
PATH:+:${
PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${
LD_LIBRARY_PATH:+:${
LD_LIBRARY_PATH}}
echo "Switched to CUDA 11.1"
保存并退出,赋予执行权限:
sudo chmod +x /usr/local/bin/switch_cuda_11.1.sh
可以重复设置多个脚本文件,在使用指定cuda版本时
source /usr/local/bin/switch_cuda_11.1.sh
之后使用,验证
nvcc - V