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

news2024/10/9 15:12:23

本来以为是温度过热造成的,发现不是,因为在重启的瞬间,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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Electron构建桌面应用程序,服务于项目的自主学习记录(持续更新...

无所畏惧地面对未知,并将其视为成长的机会 大纲官网快速入门1.安装node.js -- 这里推荐用nvm管理2.脚手架创建3.electron 包安装到应用的开发依赖4.创建主进程(main.js)并启动项目1.创建页面2.配置main.js3.启动项目 -- 效果 进阶 -- 基于项目场景功能使用场景一&am…

SldWorks问题 2. 矩阵相关接口使用上的失误

问题 在计算三维点在图纸(DrawingDoc)中的位置时,就是算不对,明明就4、5行代码,怎么看都是很“哇塞”的,毫无问题的。 但结果就是不对。 那就调试一下吧,调试后发现生成的矩阵很不对劲&#…

Appium Device Farm安装教程

环境要求:Appium version ≥ 2.4.X 安装appium npm install -g appium2.11.3 如果安装提示如下问题 npm error code EEXIST npm error syscall rename npm error path /Users/wan/.npm/_cacache/tmp/d5787519 npm error dest /Users/wan/.npm/_cacache/content-…

Cpp::STL—list类的模拟实现(下)(14)

文章目录 前言一、默认生成函数构造函数析构函数 二、迭代器相关函数begin & end 三、访问容器相关函数front & back 四、插入、删除函数inserterasepush_back & pop_backpush_front & pop_front 五、其余函数sizeresizeemptyswap 总结 前言 承接上文&#xff…

数据恢复篇:适用于 Windows 操作系统的 5 大数据恢复软件

如今,数字空间正在快速发展。每个人都使用某种数字设备,如计算机、笔记本电脑、移动设备等来存储重要文档、照片、视频和其他重要文件。但事情并不总是一帆风顺。在很多情况下,技术会失败,您可能会遇到一些严重的问题,…

Leetcode 下一个排列

首先理解整数的字典序,字典序排列总是优先让“较小的”元素出现在前面。字典序的排列规则类似于字典中的单词排列方式,从左到右逐位比较,较小的数字优先出现。按照正整数元素排列的字典序,如果将每个排列视为一个整数值&#xff0…

Awaken Likho恶意组织利用高级网络工具对俄罗斯政府发起“猛攻”

近日,俄罗斯政府机构和工业实体遭遇了一场名为“ Awaken Likho ”的网络活动攻击活动。 卡巴斯基表示,攻击者现在更倾向于使用合法MeshCentral平台的代理,而不是他们之前用来获得系统远程访问权限的UltraVNC模块。这家俄罗斯网络安全公司详细…

函数信号发生器的使用方法

函数信号发生器(Function Generator)是电子工程师和技术人员在电路设计、测试和调试中常用的一种设备。它可以产生各种标准波形,如正弦波、方波、三角波等,以及用户自定义的任意波形。在本文中,我们将详细介绍函数信号…

Linux同时安装多个JDK

Linux同时安装多个JDK 一、JDK1.1、JDK的下载1.2、解压并放置目录 二、通过alias切换版本2.1、修改profile文件2.2、使用和验证 三、使用update-alternatives工具3.1、修改profile文件3.2、指定JDK版本3.3、使用和验证 四、总结 一、JDK 1.1、JDK的下载 JDK官网下载&#xff…

抖音外卖小时达服务商申请渠道开通,首选服务商推荐!

近日,国内头部短视频平台抖音正式宣布取消小时达业务的城市限制,并开启服务商的招募工作。随即,全国各地的商家和有意向进入本地生活赛道的创业者们都开始打听起了与抖音小时达服务商相关的各类消息,以抖音小时达服务商怎么申请为…

大模型生成PPT大纲优化方案:基于 nVidia NIM 平台的递归结构化生成

大模型生成PPT大纲优化方案:基于 nVidia NIM 平台的递归结构化生成 待解决的问题 生成PPT大纲是一种大模型在办公场景下应用的常见需求。 然而: 目前直接让大模型生成大纲往往是非结构化的,输出格式多样,难以统一和规范&#…

ZBrush入门使用介绍——17、FiberMesh

大家好,我是阿赵。   继续介绍ZBrush的使用。这次来看看FiberMesh功能。这是一个可以模仿毛发的功能。 一、 使用FiberMesh的预览功能 先准备一个模型,并生成多边形网格 然后按着Ctrl,在模型的表面画一个遮罩。 找到FiberMesh功能&#…

QT:计算点到线段的垂线段的距离

描述 在Qt中,要计算一个点到一条线段的垂线段的长度(即点到线段上最近点的距离,且这个点是垂直于线段的),你不能直接使用QVector2D::distanceToLine,因为这个方法计算的是点到直线的垂直距离,而…

线程中的异常处理

线程中的异常处理 concurrent.futures — 启动并行任务 — Python 3.13.0 文档 from concurrent.futures import ThreadPoolExecutordef task():a 1 / 0print(任务执行中...)with ThreadPoolExecutor(max_workers5) as t:for i in range(10):worker t.submit(task)没有任任…

Unity实现自定义图集(二)

以下内容是根据Unity 2020.1.0f1版本进行编写的   实现一个自定义图集,该怎么入手呢。首先简单思考一下unity是怎么实现图集的。 因为unity的ui部分是开源的,所以我们可以看到UGUI的源代码,另外,Unity的内置Shader也是开源的,可以直接在官网下载(在下载的网页选择Built…

一文彻底搞懂大模型 - Hugging Face Transformers

Hugging Face Hugging Face Transformers是一个开源的预训练模型库,旨在将NLP领域的最新进展向更广泛的机器学习社区开放。该库包含了经过精心设计的最先进的Transformer架构,并提供了易于使用的API**,使得研究人员和开发者能够轻松地加载、…

Linux环境安装Anaconda

1.环境检查 uname -a2.下载Anaconda 下载地址: Anaconda 根据自己的版本下载 3.安装Anaconda 将下载的文件上传到Linux服务器设置权限 chmod x Anaconda3-2024.02-1-Linux-x86_64.sh执行.sh文件 ./Anaconda3-2024.02-1-Linux-x86_64.sh直接回车,一直回车&…

解决:由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开.请跟服务器管理员联系

今天早上远程连接京东云服务器,居然蹦出了下面的提示 查了下这个提示,出现这个报错的原因有两种: 1. 系统添加了“远程桌面会话主机”角色后,该授权到期(可以免费试用120天,到期需要付费才能使用&#xff…

有哪些AI产品可以真正提高办公和学习效率?

你还在为加班熬夜、效率低下而苦恼吗?还在担心错过AI时代的风口,被时代抛弃吗? 告别效率焦虑,AI赋能你的学习和工作 现在有一些AI产品能为我们提供帮助,比如豆包、KIMI、通义千问、ChatGPT等等,帮助我们做P…

【深度学习】—激活函数、ReLU 函数、 Sigmoid 函数、Tanh 函数

【深度学习】—激活函数、ReLU 函数、 Sigmoid 函数、Tanh 函数 4.1.2 激活函数ReLU 函数参数化 ReLU Sigmoid 函数背景绘制 sigmoid 函数Sigmoid 函数的导数 Tanh 函数Tanh 函数的导数总结 4.1.2 激活函数 激活函数(activation function)用于计算加权和…