【发布时间】:2017-04-17 00:51:39
【问题描述】:
虽然我已经安装了 pycuda 并且可以正常使用,但它开始(没有做某事)不起作用。所以,我尝试再次安装,但是当我在做的时候
python configure.py --cuda-root=/usr/local/cuda/bin
它给了我标题中的错误。
nvcc文件在上述目录中。
【问题讨论】:
标签: pycuda
虽然我已经安装了 pycuda 并且可以正常使用,但它开始(没有做某事)不起作用。所以,我尝试再次安装,但是当我在做的时候
python configure.py --cuda-root=/usr/local/cuda/bin
它给了我标题中的错误。
nvcc文件在上述目录中。
【问题讨论】:
标签: pycuda
pycuda 没有找到 nvcc。您是否尝试将 /usr/local/cuda/bin 添加到您的 env PATH 变量中?我就是这样设置的。
编辑:
据我所知,configure.py 没有调用 nvcc 编译器,它只是创建了 makefile。我认为当您运行调用 setup.py 的 sudo -c "make install" 时会发生此问题。
有几件事可以尝试。确保您设置了 CUDA_ROOT:
echo $CUDA_ROOT
如果为空,则设置为:
export CUDA_ROOT=/usr/local/cuda/bin
尝试再次运行 make 命令。现在用 -E 来保存你的环境:
sudo -E sh -c "make install"
【讨论】:
我在 Slackware64 13.37 上遇到了同样的问题。
安装命令su -c "make install" 切换到root (0bv10u5Ly),因此CUDA_ROOT 应该在root 的配置文件中设置。 CUDA_ROOT 不是环境变量,它由 setup.py 使用。将 /usr/local/cuda/bin 添加到 PATH 并定义 CUDA_ROOT=/usr/local/cuda/bin 然后尝试再次安装。
这是一种快速而肮脏的方法,但如果上述方法都没有像我一样适合你,那么下面肯定会奏效。 (:
删除
nvcc_path = search_on_path(["nvcc", "nvcc.exe"])
if nvcc_path is None:
print("*** CUDA_ROOT not set, and nvcc not in path. Giving up.")
sys.exit(1)
设置
cuda_root_default = "/usr/local/cuda/bin"
在 setup.py 文件中。然后试试su -c "make install"。
【讨论】:
在我的情况下,我必须设置CUDA_ROOT=/usr/local/cuda,因为使用/usr/local/cuda/bin 路径,它无法找到包含文件夹并且失败并出现错误没有找到cuda.h。
【讨论】: