미니 인텔 15세대 CPU부터 하이퍼스레딩이 없어집니다
- PatGelsinger
- 조회 수 2120
- 2023.08.25. 23:02
인텔이 하이브리드 코어 아키텍처를 채택하면서 PC 칩 제조 업계의 로드맵이 크게 바뀌었습니다. 이제 점점 더 많은 애플리케이션이 성능과 효율성을 높이기 위해 "보조" 저전력 P 코어를 활용하고 있습니다. 물론 이 접근 방식에는 몇 가지 단점이 있으며, 인텔은 향후 몇 년 내에 이를 개선할 계획입니다. 첫 번째, 가장 급진적인 변화는 하이퍼스레딩을 보다 효율적인 의사 멀티스레드 솔루션으로 대체하는 것입니다: 렌탈 유닛
PC에서 실행 중인 다양한 애플리케이션은 하이퍼스레딩으로 탄생한 물리적 코어와 논리적 코어를 구분할 수 없습니다. 모두 동등한 것으로 간주합니다. 하드웨어 측면에서 하이퍼스레딩을 활성화하려면 논리적 스레드와 관련된 데이터를 추적하기 위해 각 코어에 몇 가지 추가 레지스터가 필요합니다. 프로그램 카운터는 이러한 레지스터 중 하나입니다.
특정 인스턴스에서 하이퍼스레딩을 사용하는 8코어 CPU의 실행 스레드는 여전히 8개에 불과합니다. 그 이유는 각 코어의 캐시(L1 및 L2)와 실행 장치(ALU)가 한 번에 하나의 스레드에서만 작동할 수 있기 때문입니다. 그렇다면 동시 멀티 스레딩이라고도 하는 하이퍼 스레딩은 CPU에서 어떤 역할을 할까요?
하이퍼스레딩은 CPU 코어(주로 실행 유닛)가 느려지지 않도록 보장합니다. 위 그림에서 하이퍼스레딩이 있을 때와 없을 때의 코어 사용률을 확인할 수 있습니다. 보시다시피, 기본 스레드가 멈추거나 입력을 기다리는 경우 논리적 스레드 또는 하이퍼 스레드가 이를 대신하여 버블이라고도 하는 낭비되는 CPU 시간을 활용합니다.
렌탈 유닛은 들어오는 명령어의 첫 번째 스레드를 두 개의 파티션으로 분할하여 복잡도에 따라 각각에 두 개의 다른 코어를 할당합니다. 간단한 예로, 더 길고 복잡한 절반은 P 코어에 할당되고 더 간단한 부분은 E 코어로 전송됩니다. 어느 쪽이 더 효율적일지 결정합니다.
컴공의 컴퓨터 구조 시간만 해도 SMT는 단일 프로그램의 ILP의 한계 때문에 쓴다고 배우죠. 효과가 있냐 없냐는 어플리케이션의 특성에 따라 많이 갈립니다.
일례로... AVX, NEON같은 SIMD연산을 사용하는 코드를 멀티 쓰레드로 동작시킨다고 할 때, 물리 코어의 수 만큼만 작업을 할당하는 것에 비해서 논리코어까지 작업을 할당하면 성능이 떨어지는 경우가 있는데, 이미 SIMD연산이 ALU의 한계까지 H/W 자원을 사용하는 상황에서는 어차피 파이프라인이 꽉 차게 되니 SMT의 효용성이 거의 없죠.
하이퍼쓰레딩이 처음 등장하던 시절과 달리 이제 물리코어 자체가 많아진 시점이니...
없어도 큰 지장이 없다고 판단한 것이려나요?