GPU 과열 및 자동 종료를 방지하는 방법

GPU 과열 및 자동 종료를 방지하는 방법

저는 Linux가 게이머의 컴퓨터에서 어떻게 처리되는지 알고 싶어서 하나를 만들었습니다. 하지만 GeForce는 AMD만큼 Linux를 좋아하지 않는다는 것을 알고 있기 때문에 마지막 것을 선택했습니다.

저는 AMD Ryzen 7 1800X CPU와 Radeon RX 560D GPU로 컴퓨터를 만들었습니다. 왜냐하면 Vega는 제가 감당하기에는 너무 비싸고 벤치마크에서는 560이 현재 가격 대비 가장 좋은 제품이라고 말했기 때문입니다.

몇 가지 조사 끝에 접미사 D가 붙은 것은 D가 없는 RX560에 비해 전력을 절약하기 위해 클럭 속도가 약간 낮다는 의미라는 것을 알게 되었습니다.

무작위 게임 플레이 중 수많은 충돌이 발생한 후 마침내 문제가 GPU 과열이라는 사실을 알아냈습니다. 팬 속도는 CPU 팬 속도를 따르는 경향이 있지만 물론 일부 게임에서는 CPU가 GPU보다 훨씬 덜 요구됩니다.

CPU 대신 GPU 온도에 따라 팬 속도를 맞춤 설정하여 문제를 부분적으로 해결했으며 이제는 점차 증가하여 섭씨 50도에서 최대 속도에 도달하지만 문제는 일부 게임에서는 항상 최대 속도를 유지하고 종료된다는 것입니다. 여전히 무너져 있습니다.

충돌 설명: 화면이 깜박인 후 검게 변하고, GPU 팬이 중지되고, 키보드 LED가 깜박인 다음 꺼지고, 마우스가 변경되지 않고, 다른 CPU 팬이 계속 켜져 있고, 때로는 시스템이 영원히 정지되거나 때로는 시스템이 자동으로 다시 시작됩니다.

재부팅이 필요했기 때문에 syslog에서 어떤 힌트도 찾을 수 없었습니다. 처음에는 커널 패닉이라고 생각했지만덤프 파일커널을 복사했지만 시스템은 여전히 ​​충돌했고 복구할 수 없었습니다.

Windows에 같은 문제가 있는지는 모르겠지만 그렇지 않을 것이라고 확신합니다. Windows에서 같은 문제가 있는 사람을 본 적이 없습니다. 따라서 제 질문은 다음과 같습니다. 커널에 GPU를 허용하도록 지시할 수 있는 방법이 있습니까? 과열될 때 실행하세요. 조금 긴장을 풀고 자동으로 GPU 클럭 속도를 낮추시겠습니까?

답변1

/sys/class/drm/card0/devicepp_dpm_mclk해결책을 찾았습니다. GPU 메모리 시계를 나타내는 파일과 pp_dpm_sclkGPU 코어 시계를 나타내는 파일이 있습니다 .

$ egrep -H . /sys/class/drm/card0/device/pp_dpm_*
/sys/class/drm/card0/device/pp_dpm_mclk:0: 300Mhz 
/sys/class/drm/card0/device/pp_dpm_mclk:1: 1500Mhz *
/sys/class/drm/card0/device/pp_dpm_pcie:0: 2.5GB, x8 *
/sys/class/drm/card0/device/pp_dpm_pcie:1: 8.0GB, x16 
/sys/class/drm/card0/device/pp_dpm_sclk:0: 214Mhz *
/sys/class/drm/card0/device/pp_dpm_sclk:1: 481Mhz 
/sys/class/drm/card0/device/pp_dpm_sclk:2: 760Mhz 
/sys/class/drm/card0/device/pp_dpm_sclk:3: 1000Mhz 
/sys/class/drm/card0/device/pp_dpm_sclk:4: 1050Mhz 
/sys/class/drm/card0/device/pp_dpm_sclk:5: 1100Mhz 
/sys/class/drm/card0/device/pp_dpm_sclk:6: 1150Mhz 
/sys/class/drm/card0/device/pp_dpm_sclk:7: 1196Mhz 

이 파일은 power_dpm_force_performance_level프로필을 나타내는데, low, auto또는 일 수 있고 manual, 기본값 은 항상 가장 낮은 클럭에서 실행되는 auto경우 인데 low정확히 제가 원하는 것은 아니어서 으로 설정 manual하고 GPU 기반으로 계속 변경하는 스크립트를 만들었습니다. 시계 온도와 짜잔, 작동했습니다!

구성 파일의 시계를 변경하려면 에서 시작하는 줄을 나타내는 파일에 manual숫자를 쓰면 됩니다 . 제 경우에는 까지입니다 .pp_dpm_sclk07

내 스크립트에 관심이 있다면이 하나.

관련 정보