当我在一个64位archlinux上使用双GPU(一个intel,一个Nvidia GT 650M,安装了Nvidia驱动程序和bumblebee)从MATLAB的并行计算工具箱运行gpuDevice()时。
我得到以下错误:

Error using gpuDevice (line 26)
An unexpected error occurred during CUDA execution. The CUDA error was:
CUDA_ERROR_INVALID_DEVICE

我没有在谷歌上得到任何关于这个错误的结果。原因可能是什么?
我想让一个墨西哥佬和库达一起工作,结果它崩溃了:
[NVBLAS] Cannot open default config file 'nvblas.conf'
Segmentation fault

我觉得这两件事可能有关联。

最佳答案

matlab documentation
D=GPU device或D=gpuDevice(),如果尚未选择设备,则选择默认GPU设备并返回表示该设备的对象。如果已选择GPU设备,则返回一个表示该设备的对象,而不清除该对象。
CUDA documentation
CUDA_ERROR_INVALID_DEVICE-这表示用户提供的设备序号与有效的CUDA设备不对应。
所以我猜你是通过调用那个函数选择了错误的GPU。尝试调查该调用的返回值以查看选择了哪个GPU,或者简单地用gpuDevice(1)或gpuDevice(2)替换该调用并查看哪个将工作。
对于第二个问题,已在NVIDIA forum上提出并回答:
您需要将环境变量“NVBLAS_CONFIG_FILE”设置为指向NVBLAS.conf文件。有关如何创建conf文件的说明,请参阅CUDA 6 RC工具包附带的NVBLAS文档的第9页
很抱歉没有在您的问题下发表评论,请求更多信息,但我还没有足够的声誉发表评论。

09-04 06:20