我开始使用 CUDA 进行编程,但面临一个很难解决的问题:一段时间后系统出现错误:
NVRM:位于 0000:03:00.0 的 GPU 已从总线上脱落
并且需要关闭计算机才能再次检测 nVidia 卡。
起初我以为是我的代码出了问题:如果我运行同一个可执行文件 1000 次,前 200 次迭代可以正常输出相同的输出,但随后系统出现上述错误,并且所有剩余迭代都出现错误。然后我从 cuda 中取出 matrixMul 示例,对其进行编译,并运行 1000 次。第 200 次迭代左右发生了相同的错误!。这让我想到了驱动程序问题。
因此,不幸的是没有任何成功,我使用以下方法测试了相同的程序:
- 几个驱动程序,一些旧的(谷歌搜索结果表明可以解决问题),最新的长寿命,最新的实验,测试版等。
- 带有上述驱动程序的 Cuda 5 和 Cuda 4.2
- 我启动时只显示文本,没有
- 我完全删除了 xorgserver
- 已启用持久模式。
- 论坛中和谷歌搜索后提出了几种解决方案。
先前的方法均无效。
请记住这个非常简单的测试:我编译了 matrixMul 示例(使用 jusf make)并运行可执行文件 1000 次。我也在我的 macbook pro 上测试了这一点,一切顺利(当然,SO、卡等不同)。我现在一无所知。
我还没有测试过:
- 另一个内核版本。
- 另一个 Linux 发行版(绝望的解决方案)。
这是我的系统信息:
- Ubuntu 12.04.2
- CUDA 5
- 当前驱动程序版本:313.30(直接从 nvidia 下载)
- Ubuntu 内核:3.2。
- g++ 版本:4.6
- nVidia 显卡:Quadro 4000 (GF 100)
如果您有任何建议,请告诉我。提前致谢。