当我从MATLAB中的并行计算工具箱运行gpuDevice()时,在64位archlinux上使用双GPU (一个英特尔,一个Nvidia GT 650米,安装了nvidia驱动程序和大黄蜂)。
我得到以下错误:
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我觉得这两件事可能有关联。
发布于 2014-07-14 13:54:14
来自matlab文档
D= gpuDevice或D= gpuDevice(),如果没有选择任何设备,则选择默认的GPU设备并返回一个表示该设备的对象。如果已经选择了GPU设备,则返回一个表示该设备的对象,而不清除该对象。
来自CUDA文档
CUDA_ERROR_INVALID_DEVICE --这表示用户提供的设备序号与有效的CUDA设备不对应。
因此,我的猜测是,您通过调用该函数选择了错误的GPU。尝试调查该调用的返回值,以查看选择了哪个GPU,或者简单地用gpuDevice(1)或gpuDevice(2)替换调用,并查看哪个调用可以工作。
对于第二个问题,它已经被问到了,也在NVIDIA论坛上得到了回答。
您需要将环境变量“NVBLAS_CONFIG_FILE”设置为指向nvblas.conf文件。关于如何创建conf文件的说明见CUDA 6 RC工具包附带的NVBLAS文档的第9页。
很抱歉没有在你的问题下评论第一,要求更多的信息,但我还没有足够的声誉来发表评论。
https://stackoverflow.com/questions/24737486
复制相似问题