如何修复 CUDA 暂停后中断的问题?

如何修复 CUDA 暂停后中断的问题?

正如标题所述,每次我将笔记本电脑从挂起状态唤醒时,CUDA 都会中断,根本无法工作。我必须重新启动系统才能恢复。因此,要在挂起后恢复,我必须运行“sudo rmmod nvidia_uvm”,然后运行“sudo modprobe nvidia_uvm”,当然这有效,但正如您所想象的那样,这很快就会过时。那么我如何永久恢复它?如果有任何区别,我有一台 PRIME 笔记本电脑,我的 Nvidia GPU 始终选择 (940MX) 和 440 驱动程序。

答案1

看起来nvidia_uvm模块在暂停方面工作得不太好。如果重新加载模块,则可以再次使用 CUDA:

sudo rmmod nvidia_uvm
sudo modprobe nvidia_uvm

不幸的是,当 CUDA 应用程序处于活动状态时,此功能不起作用。

我已经提交了一个错误报告:https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-460/+bug/1921477

答案2

我在 ubuntu 上遇到了同样的问题。最近切换到 Archlinux。按照这个提示在 wiki 上,它已经修复了我 gtx1650 笔记本电脑上的这个问题。

这样就可以激活新的电源管理工具。请参阅nvidia 文档

我的步骤:

  1. /etc/modprobe.d/nvidia-power-management.conf用 进行创建options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/tmp
  2. 更新initramfs。在 Ubuntu 上,通过update-initramfs -u
  3. systemctl enable nvidia-suspend.service。我认为你必须先在 Ubuntu 上手动安装 systemd 服务文件。请参阅此邮政
  4. 重启

答案3

这个问题与我提出的一个问题密切相关未找到 GPU 错误

nvidia-driver-550cuda-12.4cccplex 的解决方案兼容。但无需在最新驱动程序中启用暂停服务。

您需要复制并粘贴到文件中的内容/etc/modprobe.d/nvidia-power-management.conf

options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_TemporaryFilePath=/tmp

如果你尝试启用暂停和恢复服务,你会发现它被屏蔽了,不要取消屏蔽,否则将被删除。正如我所料,该服务仅在暂停和恢复时使用。

相关内容