CUDA 错误后重置 GPU 和驱动程序

问题描述 投票:0回答:6

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

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

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

windows cuda gpu
6个回答
37
投票

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

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

sudo rmmod nvidia_uvm
sudo modprobe nvidia_uvm

18
投票

编辑:

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

重置 GPU
nvidia-smi -r

nvidia-smi --gpu-reset

这是此开关的

man
输出:

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

否则...


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

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


6
投票

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


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
,那么就不存在错误(因此,不会出现随机彩色像素)。


0
投票
  1. 从“设备管理器”中的“显示适配器”选项卡下,找到驱动程序
  2. 禁用它
  3. 按 win + ctrl +shift + B (显示器会闪烁)
  4. 启用驱动程序

就这样吧。


0
投票
  1. ps -ef
  2. 找到类似
    root     4066644       1 99 08:56 ?        04:32:25 /opt/conda/bin/python /data/
  3. 的东西
  4. kill -9 4066644
© www.soinside.com 2019 - 2024. All rights reserved.