벤치리뷰·뉴스·정보/아키텍처·정보분석

[분석정보] 인텔의 스칼라 CPU + 라라비의 이기종 CPU 비전

tware 2009. 12. 1. 23:04

 

이기종으로 향하는 Intel

 

 

Justin R. Rattner 씨


 Intel은 데이터 병렬 중시 형의 IA (x86) 매니 코어 CPU "Larrabee (라라비)"를 어떻게 CPU에 통합해 나갈 것인가. 그 방향성이 보여왔다. Intel의 CTO 인 Justin R. Rattner (저스틴 R · 래트너) 씨 (Senior Fellow, Vice President, Director of Intel Labs, Intel Chief Technology Officer, Intel)가 올해 (2009년) 10 월 기자 회견에서 Larrabee 형 아키텍처를 통합한 미래 CPU의 비전을 제시했기 때문이다.

 Rattner 씨의 비전은 주요 대형 CPU 코어는 8-way의 SIMD 유닛을 구현, 거기에 작은 Larrabee 타입의 CPU 코어를 다수 통합한다. 소형 코어는 Larrabee와 같은 16-way SIMD거나 더 넓은 32-way SIMD를 구현한다. 물론 명확한 제품 계획은 없지만,이 비전에서는 Intel이 어떤 방향으로 CPU의 미래를 생각하고 있는가? 잘 알 수 있다.

 PC 용 CPU는 데이터 병렬 코어의 통합에 의한 "이기종 (Heterogeneous : 이종혼합) 컴퓨팅 기술은 이제는 명백한 방향이 되고있다. 예를 들면, AMD는 11월의 Analyst Day에도 이기종 컴퓨팅을 대대적으로 부르며 데이터 병렬 코어를 범용으로 사용하는 방향을 보여 주었다.

 AMD는 2011 년에 투입하는 APU (Accelerated Processing Unit)에서 CPU와 GPU의 통합 이기종 화를 목표로 한다. Intel 역시 2011 년의 "Sandy Bridge (샌디 브릿지)"에서 GPU 코어를 통합한다. GPU를 통합한다는 점에서 양사의 방향은 일치하고 있다. 그것은 CPU의 성능을 늘리는 방법으로 데이터 병렬 코어를 가져올 것이 지름길이기 때문이다.

 

 

Sandy Bridge의 다이 레이아웃

 

 

 

CPU의 트랜드와 성능 향상


 무엇보다, AMD의 현재의 GPU 코어는 실제로는 그래픽에 편중되어 있으며, NVIDIA 정도 범용 컴퓨팅에 최적화 되어 있지 않다. 그 점은 Intel의 Sandy Bridge도 마찬가지로, 현재의 통합 그래픽 코어와 거의 같은것을 CPU에 넣는다. 진정한 이기종 컴퓨팅에 최적화 된 통합은 양사 모두 다음 단계가 된다. 그리고 Intel은 그러한 방향으로 개발을 진행한 Larrabee 아키텍처를 가지고 있다.

 


64 코어 Larrabee 시뮬레이션


 Intel은 Larrabee를 개발함에 있어 Larrabee를 개별 제품뿐만 아니라, 어느 정도의 이식성을 갖도록 설계했다. Larrabee의 새로운 명령어 확장인 "LNI (Larrabee New Instruction)"자체는 제품으로 Larrabee 전용이 아니라 x86 명령 세트의 확장으로 다른 CPU 코어도 구현할 수 있다. Larrabee의 실체는 제품으로서의 Larrabee 프로세서가 아닌 IA의 새로운 벡터 연산 확장 명령이다.

 현재 공개된 Larrabee의 구현은 Pentium (P54C)를 기반으로 하는 슈퍼 스칼라 파이프에 LNI를 내장한 CPU 코어를 갖춘 것이다. 그러면 Larrabee의 다음 발전은 LNI를 다른 CPU에서 구현하는 방향으로 가는가?, 아니면 현재 Larrabee 코어를 발전시키는 방향으로 가는가?

 

Larrabee와 Pentium 비교

 

 

 

 

CPU 명령어 세트 아키텍처의 진화

 


 Intel에서 물러난 Patrick (Pat) P. Gelsinger (팻 · P · 겔싱어) 씨 (전 Senior Vice President and General Manager, Digital Enterprise Group)는 한때 LNI는 PC 용 CPU 코어에 구현하거나 현재의 Larrabee 코어를 CPU 코어와 혼재할 수도 있다고 말했다. Rattner 씨도 비슷한 설명을 하고있다.

 "Larrabee New Instruction, LNI는 다양한 성능 레벨, 파워 레벨 (CPU)에 구현할 수 있다. LNI를 전 기능이 CPU에 들어간, 확장형의 범용 CPU를 만들 수도있을 것이다. 그러나 적어도 가까운 시일 내에 그러한 시도를 할 생각은 없다. 지금은 Larrabee로 어디까지 할 수 있는지 살펴보고 있다. 싱글 코어 Larrabee 듀얼 코어 Larrabee 식으로 늘려...... "IEEE Visualization 2009 "에서 발표한 공동 논문에서는 64코어 버전의 Larrabee까지 연구했던 것 같다."

 


메인 CPU 코어는 8-way 하위 CPU 코어는 16/32-way의 벡터 엔진


 기술적으로 LNI를 어떤 IA CPU에도 구현할 수 있다 Rattner 씨도 명확하게 인정하고있다. 하지만 당장은 현재의 Larrabee 아키텍처의 CPU 코어를 증식 시키는 방향을 보고 있다는 것을 알 수있다. Rattner 씨가 언급한 논문 "Mapping High-Fidelity Volume Rendering for Medical Imaging to CPU, GPU and Many-Core Architectures"는 현재 실리콘인 Larrabee 16 코어 구성 외에, 32 코어와 64 코어 구성 시뮬레이션이 되고 있다. Larrabee의 링 버스는 링 수를 늘려 코어 수를 늘릴 수 있는 구조로 되어있다. Sandy Bridge와 같은 PC & 서버 전용 범용 CPU에 Larrabee를 가져올 계획은 현재로서는 없는 것 같다.

 Rattner 씨는 CPU 다이에 데이터 병렬 코어를 통합하는 경우에, 어떻게 통합 할 것인가라는 질문에 다음과 같이 대답했다.

"Larrabee의 명령어 세트를 전 기능 CPU에 통합 할 수도 있지만, 거기에 문제가 있다. 그것은 이미 큰 프로세서 코어에 큰 SIMD (Single Instruction, Multiple Data) 파이프 라인을 더해 더 큰 프로세서가 되어 버리기 때문이다 (웃음).

 이 트레이드 오프가 바람직하지 않은 것은, 그러한 SIMD 확장 기반 엔진으로 달리게 하려는 컴퓨테이션이 대형 CPU 코어의 스칼라 연산 성능을 필요로 하지 않는 것이다. 그래서 적어도 가까운 시일 내에는, 우리는 코어마다 최적화 하는 방향에 있다. 큰 SIMD 엔진을 가진 코어는 스칼라 성능을 낮추기 위해 코어 크기를 작게한다. 이를 통해 코어 자체를 다수로 늘린다. (불도저의 경우도 이렇게 해서 동시대 인텔에 비해서 2배 많은 코어인 8코어죠. 엄밀하게 8코어라 하기도 그렇지만.. FPU/SIMD 엔진은 2코어당 1개 뿐이기 때문에....  아무튼 이런식으로(IPC가 낮은 소형 코어) 2배 많은 코어를 달성한 것이 불도저. 1코어당 성능이 낮죠. 그래서 클럭을 더욱 무리하게 끌어 올리게 되구요 (코어의 IPC가 낮아도 클럭이 높으면 코어당 성능을 높일 수 있죠). 그래야 코어당 성능을 만회 가능하기 때문에요. 불도저의 다이 크기가 큰 것은 코어가 커서가 (높은 IPC) 아니라, 당시의 자사/타사 CPU에 비해서 무지막지한 크기의 L2 캐시 크기 때문 입니다 (L3가 있음에도 불구하고, L3가 없고 L2 캐쉬가 라스트 공유 캐시라면 당시에도 있을법 한 크기의 L2 인데, 라스트 캐시로 L3 공유 캐쉬가 있는데도 L2 캐시가 너무너무도 거대 합니다. SRAM인 캐시는 용량대비 크기가 매우 큽니다. 커패시터 구조인 (그래서 바이오스에서도 리프레시(재 충전) 옵션이 있죠. 얼마나 자주 리프레시 할건가).DRAM에 비해서  플립플롭으로 구성되는 SRAM은  고용량을 만들기가 힘들죠. 너무 회로가 많이 필요하고 즉 다이 크기가 커지기 때문에...).)

 따라서 가까운 장래에는 아마도 큰 코어가 8-way의 벡터 엔진, 스몰 코어는 16 또는 32-way의 벡터 엔진이라고 하는 편성이 될 것이다. 그러면 토탈 퍼포먼스가 높아지면서 전력 효율이 좋은 아키텍처 된다. " (8 웨이  256비트, 16웨이 512비트 = 현재 일반 CPU AVX 256 비트, 제온 파이 512 비트)

 포인트는 Rattner 씨가 이기종의 IA 코어 구성을 명확하게 단언하고 있는 점. Rattner 씨는 이전부터 명령어 세트로는 공통 베이스로, 성격이 다른 코어를 통합한 구성된다고 설명했다. OS 등 시리얼 코드를 위한 스칼라 성능을 중시한 코어와 데이터 연산을위한 벡터 성능을 중시한 코어 2 책장인 것으로 보인다. 이번에는 그것이 더 명확한 형태로 나타났다.

 


LNI를 내장한 CPU의 모습

 
 Rattner 씨의 비전을 도식화 하면 아래 그림과 같이 동일한 IA 인스트럭션 세트에서 다른 명령 확장과 다른 구현 코어가 혼재한다. 주요 대형 IA CPU 코어는 8-way까지의 벡터 명령어를 갖춘다. 그것과는 별도로 16-way/32-way 벡터 명령어를 지원하는 데이터 병렬에 최적화 된 소형 IA CPU 코어가 다수 들어가 있다. 제어 및 연산하는 역할 분담으로 Cell Broadband Engine (Cell BE)과 발상이 약간 비슷하지만 하나의 CPU에 2개의 명령어 세트의 Cell BE와 달리 명령어 세트는 어느 정도 공통화한다.

 

Intel의 미래 CPU


 Intel은 Sandy Bridge 세대에서 단정밀도(FP 32bit) 8-way (256-bit)의 벡터 명령 확장 AVX (Advanced Vector Extensions)를 구현한다. Sandy Bridge 세대가 실제로 256-bit 폭의 SIMD 연산 유닛을 구현할지 여부는 알 수 없지만 명령으로 메인 CPU 코어는 8-way의 벡터로 향한다 (SSE 시리즈는 최초는 명령은 128bit SIMD명령이지만,  2번에 걸쳐서 연산 (물론 SSE를 다루려면 당연히 하드웨어적으로 128bit 레지스터를 가지고 있어야 하고, 당연히 가지고 있습니다.). 이후에 콘로부터 128bit를 한번에 처리. SSE 때와 같은 방식이 될지, 처음부터 명령어뿐 아니라 유닛 자체도 256bit를 한번에 처리 가능하게 만들지 얘기). Rattner 씨의 말은 당분간 메인 CPU 코어는 AVX의 8-way에 머무는 것을 제안하고 있다.

 반면에, 데이터 병렬에 최적화 된 Larrabee 코어 IA 명령 세트 이외에 단 정밀도 16-way (512-bit)의 벡터 명령 확장 LNI를 갖추고 있다. Rattner 씨의 발언은 현재의 Larrabee 코어처럼 스칼라 연산 유닛은 심플하고, 벡터 연산 유닛을 강화한 코어를 CPU에 올리는 방향으로 생각하고 있다는 것을 알 수있다.

 Larrabee의 연구에서 Larrabee와 같은 간단한 스칼라 파이프와 넓은 벡터 파이프 조합의 코어는 PC & 서버 전용의 대형 CPU 코어의 4 분의 1 이하의 다이 사이즈로 끝난다고 알려졌다. 즉, 4 분의 1 이하의 크기로 2 배의 벡터 연산 성능을 얻을 수 있다. 벡터 연산은 작은 코어에서 연산 코어만 크게하면 성능을 높일 수 있다.

 한편, 정수 연산을 주목적으로 하는 스칼라 연산 파이프의 성능은 쉽게 올리지 못한다. 정수 연산 성능 향상 내용은 Intel의 CPU 설계의 법칙 '폴락의 법칙 (Pollack 's Rule)'이 참고가 된다. 이 법칙은 CPU의 크기를 크게해도 정수 연산 성능은 제곱근 정도 밖에 향상하지 않는다고 한다. 2배 크기의 CPU라면 성능은 1.4배 정도로 성능 효율이 나빠진다. 따라서 정수 성능을 별로 필요로 하지 않는 응용 프로그램을 대상으로 하는 CPU는 스칼라 파이프는 가능한 단순하게 두는 것이 좋다. 폴락의 법칙에 따르면, 4 분의 1 크기의 CPU 코어는 정수 연산 성능은 2 분의 1이 된다.

 

폴락의 법칙. 성능과 소비 전력, 다이 크기의 관계

 


회사에서 다른 데이터 병렬 코어의 명령 구현


 Intel이 이기종형의 멀티 코어 구성을 전망에 넣고 있는 배경에는 이런 사정이 있다. 여기에서 일단 대략 PC 시장에서 Intel 다투는 다른 2 개사의 아키텍처 방향과 비교하자.

 NVIDIA는 PC 클래스의 CPU 코어를 가지지 않기 때문에, CPU와 GPU의 통합은 있을 수 없다. 또한 CPU 명령어 세트와는 완전히 별개로 GPU의 명령 세트를 디자인 하고 있다. CPU와 GPU의 교환은 CPU 측에서 뛰는 런타임에 컴파일 된 커널 프로그램을 GPU에 다운로드 하는 방식이다.

 CPU와 GPU는 네이티브 명령어 세트의 공통성도 없고, CPU의 명령 유닛에서 GPU에 직접 명령을 발행 할 수 없다. NVIDIA의 경우 이기종 컴퓨팅을 해도 시스템 수준에 머문다. 칩 수준은 아니다. 이것은 NVIDIA의 약점이지만, 자유로운 칩 설계를 할 수 있다는 장점도 있다.

 AMD도 현재는 이 방식이다. APU (Accelerated Processing Unit = Fusion)가 되면, CPU 코어와 GPU 코어는 동일한 다이에 통합되어 동일한 물리적 메모리를 공유하게 된다. 그러나 프로그래밍은 GPU에 런타임을 통해 액세스 하는 것은 변하지 않는 것으로 보인다.

 하지만 AMD의 전 CTO였던 Phil Hester 씨는 이전의 인터뷰에서 미래는 x86 명령어 세트에 GPU 명령을 매핑할 가능성을 시사했다. 이것은 CPU 측의 명령 유닛에서 GPU에 직접 명령 발행이 가능하게 되는 것을 의미하고 있다. 한쪽으로 보면, IA 인스트럭션 세트에 LNI를 주입한 Intel과 유사하게 보이지만 크게 다르다.

 AMD의 구상은 GPU 코어는 어디까지나 보조 프로세서이며, "GPU 코어 측에 x86 명령을 구현하지 않는다"고 Hester 씨는 말했다. 다만, GPU 코어는 x87 코 프로세서와 같은 취급으로, CPU의 명령의 일부가 GPU 코어에서 실행된다. "예를 들어, SSE5 (당시 AMD는 AVX와는 다른 SSE5를 구현하는 방향이었다) 명령은 GPU 코어에서 실행 될지도 모른다"식이다. 현재와​​ 같이 CPU에서 커널을 다운로드 하여 실행시킬 수도 있고, CPU 측으로부터 직접 명령을 디스패치 할 수있는 구조를 생각했던 (현재도 생각하고있다?) 것으로 보인다. AMD의 Bulldozer 접근을 보면 이러한 아키텍처를 취할 경우에는 GPU 코어는 CPU 코어간에 공유 자원이 될 것으로 예상된다. 그러나 이를 위해, AMD는 GPU 코어 아키텍처 자체를 크게 바꿔야 한다.

 대조적으로, Intel은 x86을 구현한 소형의 데이터 병렬 코어를 제공하는 Larrabee 방식을 계속할 것으로 추정된다. AMD의 차이점은 Larrabee 코어는 독립적 IA 호환 스칼라 연산 코어를 가지고 있고 OS도 실행시킬 수있다. 메인 CPU 코어의 명령 유닛에서 명령을 발행하는 스타일은 아니다.

 


아직 귀착점은 보이지 않는 새로운 시대의 SIMD 연산폭


 Rattner 씨의 발언에서 또 하나 재미있는 것은, 데이터 병렬 중시 코어에서 16-way뿐만 아니라 ,32-way SIMD의 구현도 시사하고 있는 점. 이것은 Intel이 현재 LNI의 16-way의 SIMD가 최종 해답이라고는 아직 결정되지 않음을 시사한다.

 현재는 각사의 프로세서 벡터 길이는 AMD가 64-way NVIDIA는 32-way Intel이 16-way로 분리된다. PC 측은 벡터에서 처리하는 요소를 늘리는 방향으로 GPU 측은 요소를 줄이는 방향으로 향해, ​​16에서 64 어딘가에 귀착점을 찾으려고 노력하고 있다. SIMD 처리하는 폭이 넓으면 넓을수록 프로세서의 구조는 효율적이 되지만, 그 반대 프로그램 제어는 비효율적이 되어 버린다. 프로그램이 분기하는 경우의 분기 입도가 커지기 때문이다. 데이터 병렬의 경우 벡터 분기를 지원해도 벡터의 각 스레드의 분기 방향이 나누어지는 경우는 실행 시간에 손실이 나기 때문이다.

 예를 들어, 레이 트레이싱 등의 경우에는 분기가 발생하기 때문에 16-way 당이 효율적 ,32-way에서도 보통이지만 64 way 효율이 매우 나쁘게 된다고 한다. 그러나 전통적인 그래픽처럼 분기 방향이 제한되어 있으면 64-way 쪽이 효율이 좋아진다. 향후 애플리케이션에의 스위트 스팟이 되는 벡터장에 대해서는 아직 명확한 지침서가 있지 않다. Intel도 16-way가 결정타라 생각하지 않는 것을 보였다.

 

벡터 프로세싱의 차이

 

 

벡터의 입도


 이렇게 보면 Intel이 Larrabee 기술을 PC와 서버용 CPU에 통합하는 경우의 대략적인 방향성은 보인다. 그러나 현실적으로는 여전히 LNI를 Intel의 메인 CPU에 통합하는 방향이 정해져있는 것은 아니다. 오히려 Larrabee를 추진했던 Gelsinger 씨는 더 이상 Intel에 있지 않고, Larrabee의 개별 제품조차 언제 선보일지 보이지 않는다. 제품으로서의 Larrabee뿐만 아니라 LNI 자체의 행방도 불확실하다. 하지만 PC 용 CPU는 이기종 화를 서둘러야 한다는 것도 확실하고, LNI에 관련되는 Intel의 향후 움직임은 중요한 포인트가 된다.

 

 

2009년 12월 1일 기사 입니다.

 

 

 

[분석정보] 4만 8000개의 제온파이로 중국 톈허2 세계에서 가장 빠른 슈퍼 컴퓨터

 

 

 

[분석정보] TOP500 슈퍼컴퓨터 순위 2013년 6월

 

 

[제품뉴스] Intel Xeon Phi 새로운 폼 팩터 채용 포함 5모델 추가

 

 

[정보분석] 인텔 60코어 매니코어 "Xeon Phi" 정식발표

 

 

[분석정보] 인텔 슈퍼컴퓨터용 가속기 Xeon Phi 5110P 발표

 

 

[분석정보] Intel, HPC 전용 보조 프로세서 Xeon Phi 2013년 1월부터 일반용으로 출시

 

 

[분석정보] IDF 2012에서 주목한 한가지, 매니 코어 "Knights Corner"

 

 

[정보분석] 엔비디아 세계 최다 트렌지스터 칩 GK 110 공개

 

 

[정보분석] IDF 2011 Justin Rattner 기조연설 매니코어 시대가 다가옴 1/2부

 

 

[정보분석] IDF 2011 Justin Rattner 기조연설 매니코어 시대가 다가옴 2/2부

 

 

[정보분석] 같은 무렵에 시작된 Nehalem과 Larrabee와 Atom

 

 

 

[분석정보] Intel은 Larrabee 계획과 아키텍처를 어떻게 바꾸나?

 

 

[분석정보] 다시 처음부터 시작된 라라비 무엇이 문제였나?

 

 

[분석정보] 라라비 (Larrabee)의 비장의 카드 공유 가상 메모리

 

 

[분석정보] Larrabee는 SIMD와 MIMD의 균형 - Intel CTO가 말한다.

 

 

[정보분석](암달의 법칙) 2010년대 100 코어 CPU 시대를 향해서 달리는 CPU 제조사

 

 

[분석정보] GDC 2009 드디어 소프트 개발자 정보도 나온 "Larrabee"

 

 

[분석정보] 그래픽 및 DirectX 로드맵을 정리

 

 

[정보분석] Intel 힐스보로가 개발하는 CPU 아키텍처의 방향성

 

 

[정보분석] 팀스위니 미래의 게임 개발 기술. 소프트웨어 렌더링으로 회귀

 

 

[분석정보] 정식 발표된 라라비(Larrabee) 아키텍처

 

 

[아키텍처] 베일을 벗은 인텔 CPU & GPU 하이브리드 라라비(Larrabee)

 

 

[정보분석] 암달의 법칙(Amdahl's law)을 둘러싼 Intel과 AMD의 싸움

 

 

[정보분석] 모든 CPU는 멀티 스레드로, 명확하게 된 CPU의 방향