CUDA设备似乎被封锁了

时间:2012-12-30 21:00:52

标签: linux cuda nvidia hpc

我正在运行一个小型CUDA应用程序:QuickSort基准算法(请参阅here)。我的双系统配有NVIDIA 660GTX(设备0)和8600GTS(设备1)。

在Windows 8和Visual Studio下,应用程序在设备0上编译并运行完美。在Linux(Ubuntu 12.04 LTS)下,应用程序使用nvcc和gcc进行编译,但突然停在其轨道上,返回(unspecified launch failure)

我有两个问题:

  1. 发生此错误后,我的GPU无法执行其他一些操作,例如,在执行第一次数据传输时运行SDK示例bandwidhtTest块,但运行deviceQuery继续执行良好。 如何重置我的GPU?我已经尝试了cudaDeviceReset()方法,但没有帮助
  2. 我怎样才能找到linux下出现的问题?有人知道或以前见过这个吗?
  3. 提前感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

  1. 使用nvidia-smi实用程序,如果GPU兼容,您可以重置GPU

  2. 根据我的知识和经验,(unspecified launch failure)通常会裁断分段错误。您是否指定了正确使用的GPU?尝试使用cuda-memcheck来查看是​​否有任何内存超出限制的场景。

答案 1 :(得分:0)

根据我的经验,XID 31总是由访问错误的指针(也就是内存访问冲突)引起的。

我首先要追寻这条道路。使用cuda memcheck运行您的应用程序。像那个cuda-memcheck you_app args to your app一样,看它是否发现任何错误的内存访问。 也可以尝试使用cuda-gdbNsight Eclipse Edition踩踏代码。

答案 2 :(得分:0)

我发现使用

  

cuda-memcheck -b ...

阻止设备锁定。