当我在MATLAB中的Parallel Computing Toolbox中使用双GPU(一个intel,一个Nvidia GT 650M,安装了nvidia驱动程序和bumblebee)运行64位archlinux时gpuDevice()
。
我收到以下错误:
Error using gpuDevice (line 26)
An unexpected error occurred during CUDA execution. The CUDA error was:
CUDA_ERROR_INVALID_DEVICE
我没有'得到关于错误的任何谷歌结果。可能是什么原因?
我试图通过CUDA工作获得一个mex,它崩溃了:
[NVBLAS] Cannot open default config file 'nvblas.conf'
Segmentation fault
我觉得这两件事可能有关系。
答案 0 :(得分:1)
D = gpuDevice或D = gpuDevice(),如果尚未选择任何设备,则选择默认的GPU设备并返回表示该设备的对象。如果已经选择了GPU设备,则返回表示该设备的对象而不清除它。
CUDA_ERROR_INVALID_DEVICE - 这表示用户提供的设备序号与有效的CUDA设备不对应。
因此我的猜测是你通过调用该函数选择错误的GPU。尝试调查该调用的返回值以查看选择了哪个GPU,或者只是用gpuDevice(1)或gpuDevice(2)替换调用,看看哪个将起作用。
对于第二个问题,它已经被问及并在NVIDIA forum上回答:
您需要将环境变量“NVBLAS_CONFIG_FILE”设置为指向nvblas.conf文件。有关如何创建conf文件的说明,请参阅CUDA 6 RC工具包附带的NVBLAS文档的第9页
很抱歉没有根据您的问题发表评论,请求更多信息,但我没有足够的声誉发表评论。