Intel HD4000이 최대 클럭 속도로 실행되는 것을 어떻게 중지합니까?

Intel HD4000이 최대 클럭 속도로 실행되는 것을 어떻게 중지합니까?

전력을 절약하기 위해 Intel HD4000 iGPU를 더 낮은 클럭 속도로 실행하는 데 문제가 있습니다.

내가 지금까지 시도한 것 :

  • "고착"된 것처럼 보이지만 테스트 결과 실제 효과는 없습니다.

    echo 350 > /sys/kernel/debug/dri/0/i915_max_freq
    
  • 사용https://github.com/jmechnich/intel-power-control클럭 속도를 제어합니다. iGPU에 부하가 없을 때 최대 클럭 속도를 350MHz로 설정하는 것이 가능하지만 일부 그래픽 집약적인 작업 부하(예: 브라우저의 WebGL 데모)를 로드하면 현재 클럭 속도가 즉시 1250MHz로 올라갑니다. 하지만 최소값과 최대값은 여전히 ​​350MHz로 보고된다. 편집: 프로젝트 관리자가 이 문제를 해결했으며 이제 시계를 변경할 수 있습니다.

  • intel-gpu-overlay(패키지의 일부 intel-gpu-tools)를 사용하여 iGPU 로드를 모니터링하면 유휴 워크로드에서 클럭 속도는 350MHz이지만 모든 로드는 1250MHz까지 짧은 버스트를 일으키거나 더 길고 무거운 로드에서는 일정한 1250MHz 로드를 발생시킵니다.

dGPU 없이 Arch Linux, 커널 4.13.11-1-ARCH, Intel i7-3820QM CPU 및 Intel HD4000을 탑재한 Thinkpad T430에서 테스트되었습니다.

여기서 뭔가 빠졌나요? iGPU의 클럭이 350MHz보다 높지 않도록 하려면 또 무엇을 시도할 수 있나요?

답변1

올바른 방법은 다음 두 명령을 사용하는 것입니다.

echo 350 | sudo tee /sys/class/drm/card0/gt_boost_freq_mhz
echo 350 | sudo tee /sys/class/drm/card0/gt_max_freq_mhz

350은 iGPU가 지원하는 최저 주파수입니다.

gt_boost_freq_mhz부스트 클록 제어(기본 1250MHz)

gt_max_freq_mhz공칭 최대 클럭 속도 제어(기본값 650MHz)

참고: 최대 클록 및 부스트 클록은 모델에 따라 다를 수 있습니다. 지원되는 부스트, 최대 및 최소 클럭 속도를 찾으려면 다음을 사용하십시오.

cat /sys/class/drm/card0/gt_RP0_freq_mhz부스트 클럭용

cat /sys/class/drm/card0/gt_RP1_freq_mhz최대 클록의 경우

cat /sys/class/drm/card0/gt_RPn_freq_mhz분 시계용

부스트 클럭이 최대 클럭 속도보다 높으면 GPU는 부스트 클럭 속도(기본값 1250MHz)로 실행될 가능성이 높습니다.

다음은 부스트 ​​및 최대 클록을 800MHz로 설정한 다음 일정 기간 로드한 후 350MHz로 설정하는 예입니다. 오버레이의 왼쪽 하단에서 주파수 및 전력 소비가 크게 감소합니다. Intel GPU 오버레이 결과

이는 다른 GPU(Intel HD 3000 이상)에서도 작동할 수 있지만 테스트가 필요합니다.

원천:

사용자 qgnox의 Reddit 게시물

관련 정보