我是一位致力于深度学习模型的初创公司创始人。与过去几周相比, 在整个训练过程中,我经历过频繁的卡顿。系统死机,即使使用 REISUB 通常也无法恢复。我必须手动 关闭计算机。极少数情况下,甚至会在启动后几秒钟冻结(不可重现)。
我需要向客户提供更新的深度学习模型,所以个人压力很大。感谢您的支持..
由于我之前已经成功训练过模型,我预计软件包、ubuntu 版本或 nvidia 驱动程序会出现问题。 (使用 ppa:图形驱动程序)
当问题最初出现时,我尝试了所有可用的 nvidia 驱动程序,但没有成功(例外:我从未设法让 nouveau 驱动程序工作)。 然后我决定从 ubuntu 22.04 LTS 迁移到 23.10。在整个那个阶段, mutter 包(版本 ~46)存在一个普遍的问题,这是我预料到的 有过错。虽然它确实导致我的控制台变慢,但根据解决了咕咕声问题 链接(https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/2059847)并没有解决冻结问题。 然后我筛选了很多帖子和帖子,也没有解决。
GPU: 我使用 Nvidia RTX 3080ti,连接了三个显示器和双启动(Windows 和 Ubuntu)。 目前,我使用 nvidia-driver-535 和 nvidia-firmware-535-535.171.04。
nvidia-smi
提供:
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.171.04 Driver Version: 535.171.04 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3080 Ti Off | 00000000:01:00.0 On | N/A |
| 0% 44C P8 63W / 350W | 316MiB / 12288MiB | 20% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 2070 G /usr/lib/xorg/Xorg 153MiB |
| 0 N/A N/A 2252 G /usr/bin/gnome-shell 155MiB |
+---------------------------------------------------------------------------------------+
/etc/modprobe.d/nvidia-graphics-drivers-kms.conf:
# This file was generated by nvidia-driver-535
# Set value to 0 to disable modesetting
options nvidia-drm modeset=0
操作系统: 乌班图23.10 内核 6.5.0-35-generic
gcc --version
:
13.2.0
深度学习: 我使用 Python 3.11.4、Pytorch 并使用 CUDA 进行训练。整个训练过程中还有足够的 GPU 内存。
记录: 我在培训期间进行了广泛的记录,以尝试查明问题发生的位置。没有 明显的触发。直观上,它最常发生在从 CPU 加载数据、将其推送到 GPU (CUDA) 之间 并且问题出现在整个反向传播的某个地方。
一些帖子建议更新 nvidia-settings (PowerMizer) 以设置“首选最大性能”, 所以我通常在开始培训计划之前使用它。
我已使用“watch -n 1 free -m”搜索(并纠正)了内存泄漏。没有 泄漏,并且当发生冻结时交换区未被使用。我的结论是排除内存问题。
我使用Xorg,wayland被禁用。我从来没有尝试过相反的方式。
正如有人建议的那样,我尝试过使用单个显示器(无 HDMI)。这似乎也不起作用。
dmesg --level=emerg,alert,crit,err
[ 0.150278] x86/cpu: SGX disabled by BIOS.
根据网上的帖子,我应该在BIOS中启用SGX。这可能有关系吗?
我面临同样的问题,我的解决方法是使用相同的硬件在 Windows 上安装 CUDA 12.1,一切正常(因为你需要这个来工作,如果可能比尝试使用 ubuntu 找到解决方案更快)