수학과의 좌충우돌 프로그래밍

하이퍼 스레딩 본문

카테고리 없음

하이퍼 스레딩

ssung.k 2020. 9. 1. 19:34

CPU에는 코어라는 개념이 존재합니다. 코어는 각종 연산을 하는 CPU의 핵심요소를 말하며 다들 싱글코어, 멀티코어 등의 단어는 익숙하실겁니다.

현재 사용중인 MacOS는 코어를 몇 개 사용할까 확인해보기 위해서 이를 확인해보았습니다.

>> sysctl hw.physicalcpu hw.logicalcpu
hw.physicalcpu: 2
hw.logicalcpu: 4

 

특이하게도 물리적코어와 논리적코어의 수가 달랐고 이에 대해 알아보다가 하이퍼 스레딩이라는 개념을 접하였습니다.

이번 포스팅에서는 하이퍼 스레딩이 무엇인지 알아보도록 하겠습니다.

 

하이퍼 스레딩이란?

하이퍼 스레딩이란 인텔이 구현한 동시 멀티스레딩 기술로 영어로 Hyper-Threading, HT라고도 합니다. 물리적 실행 장치 한 개에 가상 실행 장치 두 개를 할당해 성능을 높입니다. 따라서 코어 한 개당 스레드가 두 개씩 추가되므로 운영체제는 물리적인 코어의 수 * 2로 코어의 수를 인식합니다.

해당 기술이 등장한 것은 2000대 초반입니다. 지금과 마찬가지로 당시 CPU 회사는 인텔과 AMD가 CPU 시장의 압도적인 점유율을 차지했습니다. 이 때 AMD가 듀얼코어를 출시하자 이에 맞서기 위해 인텔에서는 하이퍼 스레딩 기술을 들고 나왔습니다.

 

하이퍼 스레딩의 성능

하이퍼 스레딩의 성능을 알아봅시다.

아래 자료는 인텔에서 하이퍼 스레딩의 성능을 제시한 표현한 그래프입니다.

첫번째 그래프는 두 가지 작업에 대해서 시간에 대한 자원의 양을 나타내고 있습니다.

두번째 그래프는 하이퍼 스레딩이 적용되지 않은 일반적인 상황입니다. 두 가지 작업을 번갈아가며 수행하고 있습니다.

세번째 그래프는 하이퍼 스레딩을 적용한 후의 상황입니다. 매 사이클마다 자원의 여유 공간을 또 다른 작업에게 수행시켜 효율을 개선합니다. 하지만 두 작업의 양이 현재 사이클에서의 가용한 자원을 초과하면 이는 다음 사이클로 넘어가게 됩니다. 따라서 하이퍼 스레딩을 사용한다고 해서 성능이 2배가 되기는 어렵습니다.

다만 20%~30% 정도의 개선을 기대할 수 있으며 이는 어떤 작업을 하느냐에 따라 천차만별입니다. 인코딩 프로그램이나 포토샵 등에서는 성능이 향상됩니다.

 

 

 

Comments