我的机器上有两张NVidia卡,两者都支持CUDA.当我运行示例脚本开始使用PyCUDA时:
http://documen.tician.de/pycuda/我收到错误
nvcc fatal : Value 'sm_30' is not defined for option 'gpu-architecture'
我的计算GPU是计算能力3.0,因此sm_30应该是nvcc编译器的正确选项.我的图形GPU只有CC 1.2,所以我想也许这就是问题所在.我已经安装了Linux的CUDA 5.0版本,没有错误,以及所有编译器组件和python组件.
有没有办法告诉PyCUDA明确使用哪个GPU?
最佳答案 根据您安装的特定GPU,nvcc不会抱怨.它将针对您告诉它编译的任何GPU类型进行编译.问题是,如果还指定了–gpu-code选项,则指定sm_30不是–gpu-architecture的有效选项.
你应该为–gpu-architecture传递compute_30,为-gpu-code传递sm_30
还要确保您使用的是正确的nvcc,并且不会无意中使用某些旧版本的CUDA工具包.
一旦你解决了编译问题,就会有一个环境变量CUDA_DEVICE,pycuda会观察它来选择一个特定的已安装的GPU.
从here开始:
CUDA_DEVICE=2 python my-script.py
顺便说一下someone else有你的问题.
你确定没有PyCUDA使用的旧版CUDA工具包吗?