问题简而言之:
我的 XPS 15-7590 在 GPU 负载过重的情况下在 Ubuntu 16.04 上崩溃。我怀疑这是由 GPU 过热(热节流不起作用)引起的,因为只要工具报告的温度nvidia-smi
达到 85-87 摄氏度,GPU 似乎就会崩溃。崩溃总是可重现的,并且在 GPU 负载过重的 5 分钟内发生。有人知道如何修复/避免这个问题吗?
详细版本:
我最近买了一台 XPS 15-7590(详细规格如下),主要目的是开发机器人和人工智能软件。由于这类软件通常使用 Ubuntu 进行开发,因此在从 Windows 更新所有驱动程序、软件包和 BIOS 后,我将 XPS 与 Ubuntu 16.04 进行了双启动。系统运行良好(修复了一些与 Wifi 驱动程序相关的小问题后)。我记录了我在计算机上遵循的确切系统设置步骤GitHub。我从 ppa:graphics-drivers/ppa 安装了 Nvidia 驱动程序(版本 430.64),然后安装了 PyTorch。当我尝试训练机器学习网络时,不出所料,风扇很快就开始快速旋转。然而,几分钟后,系统在训练中途崩溃了。
重新启动系统并检查后syslog
,我发现了日志消息thermald[1196]: critical temp reached
。在进一步监控 CPU 和 GPU 的使用情况及其温度后,我发现当我连接笔记本电脑充电器时,GPU 的性能状态(训练时)P0
从(空闲模式)更改为(最高性能状态)P8
。但是当我断开充电器时,此状态更改为P3
。当电源状态改变且温度从~85 度降至 ~74 度时,功耗也会从约 50W(英寸P0
)下降到 ~30W(英寸P3
)。在这种设置下(即断开充电器),PC 不会崩溃。我尝试阅读一些关于如何将功率限制(使用nvidia-smi -pl
)设置为特定值的文章,但似乎对于 Nvidia GTX1650 来说这是不可能的,因为我收到以下警告消息:
$ sudo nvidia-smi -pl 30
Changing power management limit is not supported for GPU: 00000000:01:00.0.
Treating as warning and moving on.
All done.
为了找出问题所在,我尝试运行 GPU 压力测试(测试FurMark
取自这里)。即使在这个测试中,我也观察到了同样的行为,当 GPU 温度达到约 85 摄氏度时,系统就会崩溃。因此,这种行为不是由 PyTorch 引起的。
我尝试使用Furmark 测试套件在 Windows 中,问题不会在那里发生。 GPU 温度几乎不会超过 80 度,热节流启动以防止系统崩溃。 任何关于如何修复此问题的帮助都将非常有用!
系统规格:
模型:Dell XPS 15-7590(2020 年 5 月购买)
中央处理器:英特尔® 酷睿™ i7-9750H CPU @ 2.60GHz × 12
记忆:16 GB
图形处理器:GeForce GTX 1650/PCIe/SSE2
硬盘:1 TB M.2 SSD
操作系统:Ubuntu 16.04
Nvidia 驱动程序版本:430.64