21

有时,我的 CUDA 程序中的错误会导致桌面图形中断(在 Windows 中)。通常,屏幕仍然具有一定的可读性,但是当图形发生变化时,例如拖动窗口时,会出现大量半随机彩色像素和小块。

我曾尝试通过更改桌面分辨率来重置 GPU 和驱动程序,但这无济于事。我发现的唯一解决方法是重新启动计算机。

是否有程序或一些技巧可以让驱动程序和 GPU 在不重新启动的情况下重置?

背景:

我有 1.0、1.1、1.3 和 2.0 卡,但我现在只有 1.1 和 2.0 卡。我在 1.0 和 1.1 上看到过这个问题。我很确定我在 1.3 上看到过。我不确定2.0。内存保护是否在 1.3 左右添加了一段时间?我几乎可以肯定这不是由于硬件不稳定,因为问题似乎是由我的代码中的错误触发的,并且在修复错误后消失了。运行完代码后,卡已经稳定了。我在我的 1.1 卡上看到这个问题后写了这个问题,但在我修复了一个错误后它就消失了,现在我没有任何代码可以重现它。也许我应该尝试写入 1.1 卡上的随机位置,看看是否有任何事情发生......

4

5 回答 5

19

因为在 unix 上有时会出现同样的问题,谷歌将我转发到这个线程,我希望这对其他人有帮助..

在 ubuntu 上卸载和重新加载 nvidia 内核模块为我解决了这个问题:

sudo rmmod nvidia_uvm
sudo modprobe nvidia_uvm
于 2019-09-05T10:38:36.833 回答
15

编辑:

如果您在 Linux 上使用 Tesla 硬件并且可以运行 nvidia-smi,那么您可以使用重置 GPU

nvidia-smi -r

或者

nvidia-smi --gpu-reset

这是man此开关的输出:

重置 GPU 状态。可用于清除双位 ECC 错误或恢复挂起的 GPU。需要 -i 切换到目标特定设备。仅在 Linux 上可用。

除此以外...


真正重置硬件的方法是重新启动。

你所描述的不应该发生。我建议使用不同的硬件进行测试,并让我们知道它是否仍然存在。

于 2012-06-19T02:33:04.633 回答
4

要在 Windows 中重置图形堆栈,请按Win+ Ctrl+ Shift+ B

于 2016-11-21T10:09:37.410 回答
2

我有一个基于 NVDIA GPU SDK 4.2 的 GeForce GTX 260,我遇到了一些问题。有时开发我的程序中有错误。这会导致屏幕显示本文中描述的随机彩色像素。

如此处所述,如果我更改分辨率,它们不会消失。此外,如果我只将颜色深度从 32 位更改为 16 位,随机彩色像素会消失,但回到 32 位(无需重新启动)会使它们再次出现。导致此行为的最后一个错误是使用 __constant__ 内存,但将其作为指针传递:

test<<<grid, threadsPerBlock>>>( cuda_malloc_data, cuda_constant_data );

如果我没有通过cudb_constant_data,那么就没有错误(因此,随机彩色像素不会出现)。

于 2012-09-16T09:52:00.760 回答
0
  1. 从“设备管理器”,在“显示适配器”选项卡下,找到驱动程序
  2. 禁用它
  3. 按 win + ctrl +shift + B (显示器会闪烁)
  4. 启用驱动程序

你去吧。

于 2018-09-13T03:32:58.860 回答