2024/08/07

,

Windows 10, 하이퍼스레딩 스케줄링 최적화로 CPU 성능 향상

Windows 10, 하이퍼스레딩 스케줄링 최적화로 CPU 성능 향상

Windows 10, 하이퍼스레딩 스케줄링 최적화로 CPU 성능 향상

출처: Windows 10에서 AMD Ryzen의 하이퍼스레딩 스케줄링 최적화

오늘 글의 핵심은 다음과 같다.

Windows 10의 하이퍼스레딩 스케줄링은 Windows 7만큼 좋지 않다. Windows 10의 ‘다른 유형의 정책 적용(Heterogeneous policy in effect)’을 사용하면 모든 하이퍼 스레드를 작은 코어로 위장하여 비 하이퍼 스레드 코어의 사용을 우선시하고 스레드 전환 코어를 줄여 응답 지연을 줄이고 게임 성능과 단일 코어 성능을 향상할 수 있다.

좀 더 자세한 것은 『Windows Internals, Part 1』 문서를 참고할 수 있으며, 하이퍼스레딩이 없는 CPU에선 사용할 수 없다.

하이퍼스레딩 스케줄링 최적화 적용 후 변화

하이퍼스레딩 스케줄링 최적화 적용 전

하이퍼스레딩 스케줄링 최적화 적용 후 변화는 Fritz Chess Benchmark(Deep Fritz 12엔진을 사용하여 가능한 한 많은 체스판 위치를 평가하여 CPU 성능을 측정) 프로그램으로 테스트했다.

(Ryzen 3 5300U의 8개 논리 프로세스 중) 4개 프로세스로 벤치마크를 수행했을 때, 하이퍼스레딩 스케줄링 최적화 적용 전 작업관리자 CPU 성능 그래프를 보면, 명확하게 4개의 프로세스를 사용하지 않고 뭔가 애매한 그래프를 보이고 있다. 하지만, 최적화 적용 후에는 명확하게 4개의 논리 프로세스만 사용하고 있는 것을 확인할 수 있다. 확실하게 각이 잡힌 모습이랄까? 벤치마크 점수도 소폭 상승했다.

하이퍼스레딩 스케줄링 최적화 적용 후

이번엔 8개의 모든 논리 프로세스를 사용해 벤치마크를 수행했다. 약간의 성능 향상이 있음을 알 수 있다.

INTEL CPU 하이퍼스레딩 스케줄링 최적화


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"DefaultDynamicHeteroCpuPolicy"=dword:00000000
"DynamicCpuPolicyExpectedRuntime"=dword:00001450‬
"DynamicHeteroCpuPolicyImportant"=dword:00000002
"DynamicHeteroCpuPolicyImportantShort"=dword:00000000
"DynamicHeteroCpuPolicyMask"=dword:00000004

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\kernel\KGroups\00]
"SmallProcessorMask"=dword:00000555

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318584]
"Attributes"=dword:00000000

출처: [튜토리얼] 레지스트리를 수동으로 수정하여 하이퍼스레딩 기술로 Windows 10의 예약 문제 최적화

위 코드를 메모장에 붙여 넣고 SmallProcessorMask 값만 수정해서 reg(레지스트리 파일) 확장자로 저장한 다음 레지스트리에 등록(더블클릭)하면 된다(등록 성공 후 재부팅). SmallProcessorMask 값은 다음을 참고해서 수정하자.

2코어와 4스레드: 00000005, 4코어와 8스레드: 00000055, 6코어와 12스레드: 00000555, 8코어와 16스레드: 00005555

하이퍼스레딩 스케줄링 최적화 전원 관리 옵션

재부팅 완료 후 [전원 관리 옵션]의 [고급 전원 관리 옵션 설정 변경]의 [프로세서 전원 관리] 탭에서 [전원 효율성 클래스 1의 프로세서 성능 코어 파킹 최소 코어], [최소 프로세서 상태], [최대 프로세서 상태]를 100%로 설정하면 모든 과정 끝.

AMD Ryzne CPU 하이퍼스레딩 스케줄링 최적화


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"DefaultDynamicHeteroCpuPolicy"=dword:00000004
"DynamicHeteroCpuPolicyImportant"=dword:00000004
"DynamicHeteroCpuPolicyImportantShort"=dword:00000004
"DynamicHeteroCpuPolicyMask"=dword:00000006
"DynamicHeteroCpuPolicyImportantPriority"=dword:00000008

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\kernel\KGroups\00]
"SmallProcessorMask"=dword:00000555

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318584]
"Attributes"=dword:00000000

앞서와 마찬가지로 위 코드를 메모장에 붙여 넣고 SmallProcessorMask 값만 수정해서 reg(레지스트리 파일) 확장자로 저장한 다음 등록하면 된다. 재부팅 후 [전원 옵션]도 INTEL에서 설명한 것처럼 수정.

Windows 전원 계획 설정 탐색기 유틸리티

Windows 전원 계획 설정 탐색기 유틸리티

출처: Windows power plan settings explorer utility

Windows의 숨겨진 전원 계획 설정을 탐색하고 복원할 수 있는 도구이다. 출처 링크의 댓글에서 받을 수 있다.

비록 보잘 것 없지만 광고 수익(Ad revenue)은 블로거의 콘텐츠 창작 의욕을 북돋우는 강장제이자 때론 하루하루를 이어주는 즐거움입니다

Share:

0 comments:

댓글 쓰기

댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요