최근 AMD사의 라이젠(Ryzen) CPU 덕분에 HPET에 대해 알게되어 간단하게 정리글 올려봅니다.
스크롤 압박이 있는 긴글입니다. 요점만 보고 싶으시다면 큰 글씨와 색상이 있는 글씨만 읽으시면 됩니다.
※ 내용 추가
바이오스를 최근자로 업데이트 사용 중이신 라이젠 2000 유저, 라이젠 3000 이상 사용 유저시라면 해당 글은 무시하셔도 됩니다.
이젠 HPET 에 상관 없이 성능 잘 나옵니다.
라이젠 1000 때는 제가 해당 시퓨가 없어서 확인하지 못했습니다.
HPET(High Precision Event Timer)란?
풀 네임 그대로 고정밀 타이머입니다. -끝!-
이러고 끝내고 싶으나…
‘이게 어디에 쓰이는 타이머인가?’ 용도에 대해 조사해 본 내용이 있어 마저 내용을 적어봅니다.
해당 타이머는 Windows 95시절, 비교할 수 없게 점점 커지는 고해상도 멀티미디어 재생에 대해 보다 정확한 재생을 목적으로 MS사와 Intel사에서 개발해 윈도우 비스타 부터 적용한 타이머로써 기존에 사용하던 멀티미디어용 타이머 보다 더 정확한 보다 높은 밀도의 타이밍을 가진 타이머라 합니다. (AMD도 지원합니다.)
기존에 타이머가 오차가 어느정도 있다보니 그게 계속 누적될수록 멀티미디어 재생에 악영향을 미치기 때문에 빠르면서도 정확한 타이머를 만들자 해서 만들어진 타이머로,
타이머가 흔들흔들하면(오차가 있으면) 컴퓨터에서 재생되는 음악도 빨라졌다 느려졌다 흔들흔들 재생되니, 이걸 방지하기 위해 흔들흔들하지 않는 정확한 타이머를 HPET라는 이름으로 만들었다. 이렇게 이해하는게 더 편하겠네요.
조금 더 자세한 내용을 알고 싶으시면 하단의 링크(위키백과)를 통해 읽어보시는게 좋을듯합니다.
링크 – https://ko.wikipedia.org/wiki/고정밀 이벤트 타이머
그럼 라이젠과는 무슨 관계???
사실 어떤 연유에서인지는 정확히 모르겠니다만 HPET를 Disable(이하 끄면) 시키면 게임 성능이 올라간다고 합니다.
제 라이젠 PC에서도 게임 실행 시 HPET가 동작중이면 그래픽카드에 제대로 GPU Load를 걸리지 않아 기존에 사용하던 인텔 CPU보다 낮거나 비슷한 프레임이 나오는 증상이 있었는데요.
HPET를 껏더니 GPU Load가 100% 까지 올라가면서 이전보다 빠른 성능을 경험했습니다.
인터넷상으로도 HPET 기능을 끄면 3~8%의 성능 향상을 느낄 수 있다고 하니 단순 저만 해당되는 내용은 아닌거 같구요.
HPET 끄면 좋아진다는 글들
1. Hexus.net – AMD tech guru shares Ryzen gaming optimisation tips
2. K-Bench – AMD 라이젠 7 프로세서, 게임 프레임 높이는 비법 공개
3. Toms HARDWARE – AMD Ryzen 7 1800X CPU Review : Page12 Conclusion
4. Computer Base – AMD-Ryzen-Benchmarks: Spiele unter Windows 7, Core Parking und HPET analysiert
그래서 정확히 어떻게 왜 좋아지는건지 궁금해 여러곳을 찾아봤지만 정확히 어떤 이유로 인해 좋아진다는 내용은 없고 ‘끄니까 좋아져! 그니까 꺼!’라는 내용 밖에 안보이네요.T^T
( 그나마 나온게 옜날에도 끄면 성능 향상이 있었다는 글 정도? )
아마도 개인적인 생각이지만 HPET를 꺼버리면 덜 정밀한 타이머로 게임을 동작하게 되면서 오차만큼 타이머 인터럽트 발생횟수가 줄어들어 전체적으로 성능이 향상되는 듯한 기분을 느끼는거 아닐까 싶기도 합니다만 어디까지 가설이라 패스하고…
HPET를 끄면 라이젠에서는 3~8%의 게임 성능향상을 얻을 수 있다!만 알면 되겠습니다.
※ 타이머의 특성 상 HPET 를 끄시면 게임에서 성능 향상이 있을 수 있으나 하시는 작업의 종류에 따라서는 성능 저하가 일어날수도 있다는 의견도 있습니다. 참고하세요.
HPET 제어 방법 (windows 7, 10 기준)
※ HPET를 끄기전 하단에 있는 내용을 확인해 현재 HPET가 어떤 상태인지 확인하시고 아래 내용을 따라하시기 바랍니다. (꺼져있는데 괜히 또 끌 필요 없잖아요?ㅎㅎ)
준비 과정 – CMD 실행
시작 버튼(Win Key) → CMD 입력 → cmd.exe를 마우스 오른쪽 클릭 → 관리자 권한으로 실행 클릭
HPET Enable (타이머 켜기)
설명> 하단 명령어를 CMD에 입력 후 엔터!
명령어> bcdedit /set useplatformclock true
HPET Disable (타이머 끄기)
설명> 하단 명령어를 CMD에 입력!
명령어 1> bcdedit /set useplatformclock false
명령어 2> bcdedit /deletevalue useplatformclock ← Windows 7 이하에만
※ HPET를 끄거나 키신 이후에는 재부팅을 하셔야 정상 적용됩니다.
bcdedit 명령어가 부팅 시 로딩 되는 것들을 편집하는거라…
HPET 상태 확인 방법
* 방법1. CMD에 명령어 ‘bcdedit /enum’ 입력 후 ‘useplatformclock’ 확인
명령어 > bcdedit /enum
확인 내용> useplatformclock 이 Yes인지 No 인지 확인할 것!
* 방법2. 윈도우에서 유틸리티를 이용해 HPET 확인 방법
DOS가 그리 친숙하지 않는 분을 위해 준비 해봤습니다.
아주 간단한 방법으로 ‘WinTimerTester’이라는 유틸리티 실행 후 ‘QueryPerformanceFrequency’ 항목에 내용을 확인하면 됩니다.
해당 항목이 14.0Mhz로 나온다면 HPET가 켜진 상태입니다.
사진과 같이 3.x Mhz가 나온다면 HPET가 꺼진 상태입니다.
안녕하세요 위 글처럼 따라했는데 NO까지는 나오고 테스터기에서 10이 나오면 어떻게 하나요?
NO이고 10Mhz면 노멀한 상태인데요.
사용하시는 CPU가 무엇인가요?
옛날 모델이 아니라면 그대로 사용하시는걸 추천드립니다.
2000때 이상 라이젠 cpu에서는 NO(HPET OFF) 상태로 쓰셔도 성능에 영향이 없습니다.