2023-02-08

인텔 CPU의 P코어와 E코어 문제

인텔 CPU의 P코어와 E코어 구성의 문제점에 대한 글을 본 적이 있습니다. ( https://www.google.com/search?q=p%EC%BD%94%EC%96%B4+e%EC%BD%94%EC%96%B4+%EB%AC%B8%EC%A0%9C ) 가족이 사용하고 있는 12세대를 잠시 만져봤을 때 문제를 느끼지 못했고 13700F에서도 체감하지 못해서 재현해봤습니다.

7ZIP 벤치마크를 10패스 6스레드로 실행했습니다. 백그라운드 정리가 안 된 상태라서 오차가 좀 있습니다.

13700F의 경우 P코어가 8C16T, E코어가 8C8T이니 윈도 작업 관리자 기준으로 CPU 0~15가 P코어, 16~23이 E코어입니다. CPU 15 이하의 P코어를 잘 사용하고 있습니다..

결과(전체 평가)는 462% 15.138GIPS 63.717GIPS 입니다.

다음으로 벤치마크를 실행한 이후에 최소화를 눌렀습니다.

처음에는 P코어를 사용하다 창을 내리니 CPU 16 이상의 E코어로 넘어갔습니다.

결과는 463% 10.310GIPS 44.474GIPS 입니다. 대략 2/3 정도의 성능입니다.(다시 말하지만 백그라운드 정리가 안 되어서 오차가 좀 큽니다.)

선호도 설정을 시도해보니 가능합니다.

0 ~ 15나 0, 2, 6, 8, 10, 12, 14 가 아니라 0, 1, 2, 3, 4, 5, 6 인가 하면 그냥 재미로요. 정확하게는 3C6T하고 6T6T를 비교하고 싶어서요.

결과는 186%, 12.239GIPS, 22.060GIPS입니다.

펜티엄4/D 시절에 펜티엄4(싱글 코어)에서는 하이퍼쓰레딩이 별 문제가 없었는데 펜티엄D XE(2C4T)의 경우에는 쓰레드 배분이 이상할 때가 종종 있었습니다. 사용했던 사람의 이야기를 들어보면 쓰레드 배분이 꼬이면 수동으로 조정했어야 했다고 합니다. 아래 링크와 같은 방식으로요.

https://aws.amazon.com/ko/blogs/compute/disabling-intel-hyper-threading-technology-on-amazon-ec2-windows-instances/

일부 상황에서는 P코어와 E코어로 구성된 인텔 CPU를 사용하고 있다면 수동으로 스레드를 배분해야 할 듯 합니다. 선호도 설정이 만능은 아닌 것이 프로그램을 종료하고 재실행하면 다시 설정해야 합니다. 펜티엄D 시절에 사람들이 많이 사용했던 외부 프로그램이 있었던 것 같은데 이름이 기억 안 나네요.

창을 내리면 E코어로 할당되는 방식이 기본적으로 맞다고 생각합니다. 보통은 바로 보이는 프로그램의 성능이 중요합니다. 그리고 E코어가 전력 효율이 높으니 전력 소모를 줄일 수 있고 컴퓨터의 쿨러도 조용하겠죠. 글의 처음에 적은 것처럼 저만 해도 문제를 체감한 적이 없었습니다. 그런데 컴파일이나 인코딩을 하면서 문서 작업을 하는데 E코어로 무거운 작업이 넘어가는 상황이라면 문제가 있어 보이기는 합니다.