自学内容网 自学内容网

Ubuntu双卡训练过程中电脑总是突然重启【解决方法】

本来以为是温度过热造成的,发现不是,因为在重启的瞬间,gpu温度并没有特别高。

参见视频如下:

双卡训练过程中gpu温度监测

然后尝试了另一种方法:

限制gpu显卡的功率

具体操作如下:

先检查当前gpu功率限制

nvidia-smi -q -d POWER
(base) YOURNAME-linux:~$ nvidia-smi -q -d POWER

==============NVSMI LOG==============

Timestamp                                 : Wed Oct  9 13:04:37 2024
Driver Version                            : 535.183.01
CUDA Version                              : 12.2

Attached GPUs                             : 2
GPU 00000000:65:00.0
    GPU Power Readings
        Power Draw                        : 21.79 W
        Current Power Limit               : 370.00 W
        Requested Power Limit             : 370.00 W
        Default Power Limit               : 370.00 W
        Min Power Limit                   : 100.00 W
        Max Power Limit                   : 390.00 W
    Power Samples
        Duration                          : 23.65 sec
        Number of Samples                 : 119
        Max                               : 42.21 W
        Min                               : 20.84 W
        Avg                               : 22.22 W
    Module Power Readings
        Power Draw                        : N/A
        Current Power Limit               : N/A
        Requested Power Limit             : N/A
        Default Power Limit               : N/A
        Min Power Limit                   : N/A
        Max Power Limit                   : N/A

GPU 00000000:B3:00.0
    GPU Power Readings
        Power Draw                        : 12.01 W
        Current Power Limit               : 370.00 W
        Requested Power Limit             : 370.00 W
        Default Power Limit               : 370.00 W
        Min Power Limit                   : 100.00 W
        Max Power Limit                   : 390.00 W
    Power Samples
        Duration                          : 80.90 sec
        Number of Samples                 : 119
        Max                               : 32.34 W
        Min                               : 11.15 W
        Avg                               : 12.40 W
    Module Power Readings
        Power Draw                        : N/A
        Current Power Limit               : N/A
        Requested Power Limit             : N/A
        Default Power Limit               : N/A
        Min Power Limit                   : N/A
        Max Power Limit                   : N/A

从输出结果上,可以看到:每一块 GPU 的详细功耗信息,包括当前功率限制、默认功率限制以及允许的最小和最大功率限制。

设置新的 NVIDIA 功率限制

考虑 GPU 的功能和您的能效目标,将功率限制调整为所需值。

$ sudo nvidia-smi -pl 200

本示例将功率限制设置为 200W。确保您选择的值在上一步中显示的最小和最大限制内。

(base) yourname-linux:~$ sudo nvidia-smi -pl 200
[sudo] yourname 的密码: 
Power limit for GPU 00000000:65:00.0 was set to 200.00 W from 370.00 W.

Warning: persistence mode is disabled on device 00000000:65:00.0. See the Known Issues section of the nvidia-smi(1) man page for more information. Run with [--help | -h] switch to get more information on how to enable persistence mode.
Power limit for GPU 00000000:B3:00.0 was set to 200.00 W from 370.00 W.

Warning: persistence mode is disabled on device 00000000:B3:00.0. See the Known Issues section of the nvidia-smi(1) man page for more information. Run with [--help | -h] switch to get more information on how to enable persistence mode.
All done.

再次查看,就会发现:

==============NVSMI LOG==============

Timestamp                                 : Wed Oct  9 13:39:50 2024
Driver Version                            : 535.183.01
CUDA Version                              : 12.2

Attached GPUs                             : 2
GPU 00000000:65:00.0
    GPU Power Readings
        Power Draw                        : 27.52 W
        Current Power Limit               : 200.00 W
        Requested Power Limit             : 200.00 W
        Default Power Limit               : 370.00 W
        Min Power Limit                   : 100.00 W
        Max Power Limit                   : 390.00 W
    Power Samples
        Duration                          : 2.36 sec
        Number of Samples                 : 119
        Max                               : 38.10 W
        Min                               : 24.39 W
        Avg                               : 27.18 W
    Module Power Readings
        Power Draw                        : N/A
        Current Power Limit               : N/A
        Requested Power Limit             : N/A
        Default Power Limit               : N/A
        Min Power Limit                   : N/A
        Max Power Limit                   : N/A

GPU 00000000:B3:00.0
    GPU Power Readings
        Power Draw                        : 11.54 W
        Current Power Limit               : 200.00 W
        Requested Power Limit             : 200.00 W
        Default Power Limit               : 370.00 W
        Min Power Limit                   : 100.00 W
        Max Power Limit                   : 390.00 W
    Power Samples
        Duration                          : 55.03 sec
        Number of Samples                 : 119
        Max                               : 30.61 W
        Min                               : 11.17 W
        Avg                               : 12.36 W
    Module Power Readings
        Power Draw                        : N/A
        Current Power Limit               : N/A
        Requested Power Limit             : N/A
        Default Power Limit               : N/A
        Min Power Limit                   : N/A
        Max Power Limit                   : N/A

  1. 使 NVIDIA 功率限制保持不变(可选):如果您希望功率限制设置在重新启动后保持不变,您可以创建自定义 systemd 服务脚本。

    尽管遵循标准程序来确保 NVIDIA 功率限制设置在系统重新启动后仍然有效,但我还是遇到了挑战。最初,我尝试使用命令 sudo nvidia-smi -pm 1 通过 NVIDIA 管理界面 (nvidia-smi) 直接激活持久模式。通常建议使用这种方法,因为它应该使电源管理设置保持不变,而无需进一步的用户干预。不幸的是,这种方法没有成功,功率限制设置在系统重新启动后恢复。

    为了寻找解决方案,我转向了另一种常见方法:修改 systemd 服务脚本以实现 NVIDIA 持久性。此方法涉及使用命令 sudo systemctl edit nvidia-persistenced.service 修改 NVIDIA Persistence Daemon,旨在确保 GPU 设置(包括功率限制)即使在重新启动后也保持不变。然而,这一尝试也没有取得预期的结果。对 systemd 服务脚本的修改不会导致持久的功率限制设置,这表明更改要么未正确应用,要么被某些其他系统进程覆盖。

    面对这些挫折,解决方案是创建一个自定义的 systemd 服务脚本,专门用于设置 NVIDIA GPU 功率限制。这种方法允许在系统启动时直接控制功率限制设置,确保重新启动后的持久性,而无需依赖无法按预期工作的内置持久性选项。

    $ sudo nano /etc/systemd/system/nvidia-power-limit.service

    将以下内容插入到文件中:

    [Unit]
    Description=Set NVIDIA GPU Power Limit
    
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/nvidia-smi -pl 200
    
    [Install]
    WantedBy=multi-user.target
    

    启用服务在启动时自动应用功率限制:

    $ sudo systemctl enable nvidia-power-limit.service

    这可确保每次系统启动时恢复您的功率限制设置。

结论

在 Ubuntu 上设置 NVIDIA GPU 的功率限制有助于有效管理功耗。通过遵循本指南中概述的步骤,您可以确保 GPU 在所需的功率限制内运行,从而可能节省能源并减少热量输出。请记住在调整功率限制时考虑您的特定硬件和工作负载要求。

有关在 Ubuntu 上设置 NVIDIA 功率限制的常见问题 (FAQ)

  1. 对 NVIDIA GPU 设置功率限制的目的是什么?对 NVIDIA GPU 设置功率限制有助于管理和降低功耗,从而潜在地降低电力成本并减少热量输出,从而延长硬件的使用寿命寿命并提高其效率,特别是在热受限的环境中。
  2. 在 NVIDIA GPU 上设置功率限制会影响其性能吗?是的,设置功率限制会影响 GPU 的性能,尤其是当该限制设置为低于 GPU 执行高性能任务的通常功耗时。它可能会导致性能下降,但有利于控制能源使用和热输出。
  3. 是否可以为同一系统中的多个 NVIDIA GPU 设置不同的功率限制?可以,您可以通过使用“nvidia-smi -i”指定 GPU 的唯一标识符来为多个 NVIDIA GPU 设置不同的功率限制` 选项后跟每个 GPU 所需的功率限制设置。
  4. 如何找到 NVIDIA GPU 允许的最小和最大功率限制?您可以使用命令“nvidia-smi -q -d POWER”找到 NVIDIA GPU 允许的最小和最大功率限制`,它提供了与电源相关的详细信息,包括这些限制。
  5. 设置新的功率限制后是否需要重新启动系统?不需要,设置新的功率限制后不需要重新启动系统。更改会立即生效,但不会在重新启动后持续存在,除非您创建 systemd 服务或其他持久性机制。
  6. 功率限制设置会在驱动程序更新后持续存在吗?功率限制设置可能不会在 NVIDIA 驱动程序更新后持续存在。建议在更新驱动程序后检查并重新应用您的首选功率限制设置,以确保它们仍然有效。
  7. 我可以使用此方法设置非 NVIDIA GPU 的功率限制吗?不可以,使用“nvidia-smi”描述的方法特定于 NVIDIA GPU。其他制造商的 GPU 将需要不同的工具或方法来调整功率设置。
  8. 如果设置功率限制似乎不影响功耗,我该怎么办?如果设置功率限制不影响功耗,请确保您正确应用该设置并且您的 GPU 支持电源管理特征。此外,请考虑查阅 NVIDIA 的文档或寻求支持,以确保您的硬件或软件配置不存在根本问题。
  9. 有没有办法在系统启动时自动设置功率限制的过程?是的,如指南中所述,创建自定义 systemd 服务脚本是在系统启动时自动设置功率限制的有效方法。系统启动。这可确保在重新启动时一致应用功率限制,而无需手动干预。

参考链接:https://cn.linux-console.net/?p=31021


原文地址:https://blog.csdn.net/weixin_45037357/article/details/142784171

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!