Tia*_*nta 5 cpu fan gpu sensors amd-graphics
我想知道 Linux 如何处理游戏玩家计算机,所以我建造了一台,但我们知道 GeForce 不像 AMD 那样喜欢 Linux,这就是我选择最后一个的原因。
我用 AMD Ryzen 7 1800X CPU 和 Radeon RX 560D GPU 组装了一台电脑,因为 Vega 对我来说太贵了,而且基准测试说 560 是目前最好的性价比。
经过一番研究,我发现后缀 D 意味着与没有 D 的 RX560 相比,它的时钟速度略低,以节省一些功耗。
在随机游戏中无数次崩溃后我终于发现问题是GPU过热,它的风扇速度往往跟随CPU风扇速度,但当然在某些游戏中CPU比GPU少得多。
我通过根据GPU温度而不是CPU自定义风扇速度部分解决了这个问题,现在它正在逐渐增长,并在50摄氏度时达到最大速度,但问题是:在某些游戏中它一直保持最大速度,最终还是崩溃。
崩溃描述:屏幕闪烁然后变黑,GPU风扇停止,键盘指示灯闪烁然后关闭,鼠标相同,其他CPU风扇保持,有时系统永远冻结,有时系统自动重启。
由于需要重新启动,我在系统日志上找不到任何提示,最初我认为这是内核崩溃,但即使使用kdump并复制内核,系统仍然以我无法恢复的方式崩溃。
我不知道 Windows 是否会遇到同样的问题,但我坚信不会,我从来没有在 Windows 上看到过有同样问题的人,所以我的问题是:有一些方法可以告诉内核让 GPU 轻松一点当它即将过热时,也许只是自动降低 GPU 时钟速度?
/sys/class/drm/card0/device我找到了解决方案,文件上有一些文件pp_dpm_mclk指示GPU内存时钟,而文件pp_dpm_sclk指示GPU核心时钟,我的:
$ egrep -H . /sys/class/drm/card0/device/pp_dpm_*\n/sys/class/drm/card0/device/pp_dpm_mclk:0: 300Mhz \n/sys/class/drm/card0/device/pp_dpm_mclk:1: 1500Mhz *\n/sys/class/drm/card0/device/pp_dpm_pcie:0: 2.5GB, x8 *\n/sys/class/drm/card0/device/pp_dpm_pcie:1: 8.0GB, x16 \n/sys/class/drm/card0/device/pp_dpm_sclk:0: 214Mhz *\n/sys/class/drm/card0/device/pp_dpm_sclk:1: 481Mhz \n/sys/class/drm/card0/device/pp_dpm_sclk:2: 760Mhz \n/sys/class/drm/card0/device/pp_dpm_sclk:3: 1000Mhz \n/sys/class/drm/card0/device/pp_dpm_sclk:4: 1050Mhz \n/sys/class/drm/card0/device/pp_dpm_sclk:5: 1100Mhz \n/sys/class/drm/card0/device/pp_dpm_sclk:6: 1150Mhz \n/sys/class/drm/card0/device/pp_dpm_sclk:7: 1196Mhz \nRun Code Online (Sandbox Code Playgroud)\n\n文件power_dpm_force_performance_level指示配置文件,可以是low,auto或manual,默认是auto,当low它始终在最低时钟上运行时,这不完全是我想要的,所以我将其设置为manual并制作了一个脚本,根据 GPU 不断更改时钟温度,瞧\xc3\xa0,成功了!
要更改配置文件上的时钟,manual只需将一个数字写入pp_dpm_sclk代表该行的文件,从 开始0,在我的例子中直到7。
如果您对我的脚本感兴趣,就是这里。
\n| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |