CUDA SDK示例在多GPU系统中抛出各种错误

8
我有一台运行Ubuntu Precise的Dell Precision Rack,配备了两个Tesla C2075和一个Quadro 600作为显示设备。最近我在我的台式电脑上完成了一些测试,现在尝试将结果移植到工作站上。
由于没有安装CUDA,我按照这个指南进行了安装,并根据这些建议调整了SDK Makefiles。
现在我面临的问题是,没有一个示例(我测试了10个不同的示例)能够运行。以下是我遇到的错误:
[deviceQuery] starting...

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 10
-> invalid device ordinal
[deviceQuery] test results...
FAILED

> exiting in 3 seconds: 3...2...1...done!

[MonteCarloMultiGPU] starting...

CUDA error at MonteCarloMultiGPU.cpp:235 code=23510 (cudaErrorInvalidDevice) "cudaGetDeviceCount(&GPU_N)"MonteCarloMultiGPU
==================
Parallelization method  = threaded
Problem scaling         = weak
Number of GPUs          = 0
Total number of options = 0
Number of paths         = 262144
main(): generating input data...
main(): starting 0 host threads...
Floating point exception (core dumped)

[reduction] starting...

reduction.cpp(124) : cudaSafeCallNoSync() Runtime API error 10 : invalid device ordinal.

[simplePrintf] starting...

simplePrintf.cu(193) : CUDA Runtime API error 10: invalid device ordinal.

正如您所看到的,大多数错误都指向cudaGetDeviceCount调用存在问题,它返回错误代码10。根据手册,问题是:

cudaErrorInvalidDevice: This indicates that the device ordinal supplied by the user does not correspond to a valid CUDA device.

不幸的是,我能找到的唯一解决方案建议检查设备的电源插头。我已经检查过了,没有问题。重新启动工作站也没有帮助。

如果需要更多配置细节,请留言!


1
这个问题不适合在StackOverflow上讨论。我建议您检查是否有/dev/nvidia*设备文件。如果没有,请阅读Linux入门指南中关于手动创建它们的说明。 - talonmies
@talonmies 在我的开发环境中有 nvidia0nvidiactl。应该有多少个文件? - pdresselhaus
1
你的系统应该有一个GPU,所以需要三个。 - talonmies
1个回答

2

由于对我的原始问题的评论,我能够找到解决方案。我按照这个指南学习如何正确设置rc.local(不要忘记为您的脚本chmod权限)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接