일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- es6
- Baekjoon
- 알고리즘 연습
- 파이썬 알고리즘
- 파이썬
- django widget
- CSS
- form
- django ORM
- MAC
- HTML
- javascript
- java
- 알고리즘
- DRF
- Algorithm
- react
- 장고
- PYTHON
- web
- 백준
- 알고리즘 문제
- API
- c++
- Git
- AWS
- js
- django rest framework
- Django
- 알고리즘 풀이
- Today
- Total
수학과의 좌충우돌 프로그래밍
하이퍼 스레딩 본문
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% 정도의 개선을 기대할 수 있으며 이는 어떤 작업을 하느냐에 따라 천차만별입니다. 인코딩 프로그램이나 포토샵 등에서는 성능이 향상됩니다.