리눅스에서 AMD 프로세서의 클럭을 보다 적극적으로 관리해 게임의 프레임 저하를 완화하는 AMD P-State 드라이버 패치가 제안됐다.
메타의 리눅스 커널 개발자 데이비드 버넷이 공개한 패치는 최근 높은 부하가 확인된 CPU 코어에 한해 EPP를 일시적으로 성능 우선으로 전환하는 epp_boost 기능을 추가한다. 게임의 메인 및 렌더링 스레드가 프레임마다 짧게 대기할 때 CPU 클럭이 지나치게 낮아지는 문제를 줄이는 것이 목적이다.
현재 AMD P-State의 EPP 모드는 하드웨어가 성능과 전력 효율 사이에서 동작 클럭을 자동으로 선택한다. 그러나 게임 스레드가 GPU 작업이나 동기화를 기다리며 짧게 아이들 상태에 들어가면 CPU 부하 감소로 판단해 클럭이 하락하기 때문에, 스레드가 다시 깨어난 직후에도 낮은 클럭에서 작업을 시작하면서 평균 프레임보다 1% Low(최소 프레임)과 프레임 타임에 큰 영향을 끼친다.
epp_boost는 각 코어의 사용률을 최대 10ms 간격으로 확인하고 부하가 50% 이상이면 해당 코어의 EPP를 성능 모드로 전환한다. 이후 300ms 동안 높은 부하가 감지되지 않으면 아이들 상태로 복귀해, 모든 코어의 클럭을 계속 높이는 방식보다 전력 소모도 줄이면서도 성능을 유지했다.
스팀 덱에서 문명 VI 벤치마크를 진행한 결과 98% 이용율 상태에서 CPU 코어 클럭 중간값이 2.43GHz서 3.5GHz로 높아졌고, 덕분에 1% Low 프레임은 31.8% 향상됐으며 99번째 백분위 프레임 타임도 4.1% 개선됐다.
이번 패치는 순간적인 클럭 하락으로 발생하는 끊김과 프레임 편차를 완화하는 데 초점이 맞춰졌으며, 덕분에 스팀 덱을 비롯해 AMD P-State를 사용하는 다른 라이젠 기반 휴대용 게임기와 리눅스 PC에도 적용될 수 있다.
다만 현재는 리눅스 커널 메일링 리스트에 제출된 패치 단계로, 정식 리눅스 커널 반영 여부와 시점은 확정되지 않았다. |