■고토 히로시무의 Weekly 해외 뉴스■
Intel Nehalem과 AMD FUSION
양 회사의 CPU+GPU 통합의 차이
● CPU에 통합하는 GPU 코어를 범용으로 사용하지 않는 Intel
Intel은 Nehalem 세대의 CPU에 GPU 코어를 통합한다. 통합하는 GPU 코어는 Intel의 내장 그래픽이 된다고 추측된다. Intel이 높은 효율을 낼 수 있는 컴퓨팅 전용으로 개발하고 있는 「Larrabee(라라비)」는 적어도 최초의 단계에서는 통합하지 않는다.
Intel의 내장 그래픽은 하드웨어적으로 통합쉐이더 구성이 되고 있어 실제로는 DirectX 10도 지원이 가능하다. G965계의 「GMA X3000」는 8개의 프로그래머블인 범용 쉐이더프로세서코어 「Execution Units (EU)」로 구성되어 있었다.
G965는 90 nm프로세스로 128평방 mm의 다이(반도체 본체)였다. 이 중70% 정도를 GPU 코어가 차지하고 있었다고 하면 45 nm프로세스에서는 아마 20~30평방 mm정도의 사이즈를 축소할 수 있을 것이다. 어쩌면 EU의 개수를 한층 더 늘릴지도 모른다. 실제로 2008년 데스크탑 칩 세트 「EagleLake(이글레이크)」에서는 EU의 개수는 10개가 된다.
CPU에의 통합시에도 밸런스적으로 10 몇 개의 EU를 탑재한다고 생각하는 것이 자연스러울 것이다. 코어 주파수도 끌어올리는 것이 가능하므로 이론상의 GPU 코어 퍼포먼스는 지금보다 오를 것이다.
언뜻 보면 AMD의 「FUSION」프로세서와 같은 노선으로 보이는 Intel의 GPU 통합 CPU. 그러나 그 방향성은 크게 차이가 난다. AMD는 GPU 베이스의 데이터 병렬 프로세서 코어를 그래픽 뿐 아니라 다양한 처리를 행할 수가 있는 연산 리소스로서 적극적으로 사용하려 하고 있다. 그에 대해 Intel은 당면과제로 통합 GPU 코어를 그래픽 이외의 용도로써 범용에 사용하는 것은 생각하지 않았다. 단순하게 그래픽을 CPU에 통합한다고 하는 이야기다.
Intel의 Stephen L. Smith(스티브·L·스미스) 씨(Vice President, Director, Digital Enterprise Group Operations, Intel)는 다음과 같이 설명한다.
「우리는 프로그램이 가능한 그래픽을 가지고 있다. 그리고 그래픽 드라이버를 통해 그래픽과 같은 특정 용도를 향한 가속기로 프로그램을 쓰는 것이 어느 정도 어려운지도 이해하고 있다.
그래픽 콘트롤러를 다른 기능에 사용하는 것은 컨셉으로는 있을 수 있다. 그러나 (그래픽 하드상에서) 프로그램을 쓸 수 있는 프로그래머의 수는 매우 적다. 이것은 그래픽 드라이버를 쓰고 있는 인원수를 생각해 보면 잘 알수 있다.
그 경험으로부터 커다란 구성 문제에 대해 컴퓨팅을 실현하기 위해서는 좀 더 범용적이고 유연한 접근을 찾아내는 것이 필요하다고 생각했다. 그 어프로치가 Larrabee인 것이다.
Larrabee에서는 세계의 모든 개발자가 프로그램를 쓰는 법을 알고 있는 IA(x86계 인스트럭션 세트 아키텍쳐)의 이점을 살리는 것이 보다 좋은 솔루션이라고 판단했다. 보다 유연하게 프로그램을 사용하는 법을 간단하게 이해할 수 있어 업계의 인프라를 이용할 수 있는 아키텍쳐를 실현할 생각이다. 향후 얼마정도의 특수한 어플리케이션은 GPU상에서 사용될 것이다. 그러나, 우리는 별도의 접근을 취한다」
● GPGPU는 실패한다고 보는 Intel 간부
GPU 코어는 PC에 필수적인 그래픽 작업이기 때문에 범용의 고효율 컴퓨팅 전용에서는 별도의 아키텍쳐(현재 상태로서는 Larrabee) 를 가져온다. 장래에는 그것이 GPU 코어로 옮겨갈 가능성도 있다. 이것이 현재의 Intel의 GPU 컴퓨팅에 대한 기본적인 자세다.
이러한 스탠스는 데스크탑&서버를 껴안는 Digital Enterprise Group에서 일관하고 있다. Digital Enterprise Group를 인솔하는 Patrick(Pat) P. Gelsinger(퍼트·P·겔 싱어) 씨(Senior Vice President and General Manager, Digital Enterprise Group)는 다음과 같이 말한다.
「GPU의 리소스를 인스트럭션 세트로서 이용할 수 있도록 하는 시도도 행해지고 있다. AMD의 CTM(Close to the Metal), NVIDIA의 CUDA(Compute Unified Device Architecture)등으로 유망한 어프로치라고 보여지고 있다. 그러나 우리는 이러한 프로그래밍 모델은 잘 되지 않는다고 생각하고 있다.
왜냐하면, 프로그래밍 모델이 매우 쓰기가 나쁘고 데이터 타입이나 인스트럭션 플로우(flow)도(통상의 CPU란) 달라 캐쉬의 coherency도 유지되지 않기 때문이다. 매우 어려운 프로그래밍 모델로 우리는 이러한 모델이 실패한다고 생각하고 있다.
Intel로서는 향후에도 일관된 인스트럭션 세트의 확장을 아키텍쳐에 계속 포함시켜 간다. 그 위에 가속화 모델은 「QuickAssist」의 어프로치로 서포트한다. QuickAssist에서는 드라이버 인터페이스 모델을 통해 가속기(위의 프로그램)를 CPU의 인스트럭션 세트로부터 명료하게 분리한다. 그 위에(CPU와 가속기간에) 데이터의 송수신을 지원한다」
|
가속기의 병목 |
Intel은 GPU형의 프로그래밍 모델 이른바 GP(General-Purpose) GPU는 넓게 보급시킬 수 없다고 생각하고 있다. 그 때문에 GPU의 네이티브 인스트럭션 세트를 노출시키거나(CTM) 얇은 트랜슬레이션 레이어로 취급할 수 있도록(CUDA) 해도 성공할 수 있다고는 생각하지 않았다. 오프 칩&on-chip의 가속기 코어는 QuickAssist 모델을 통해서 서포트하지만 그 이상으로는 발을 디디지 않을 생각이다. 네이티브 인스트럭션 세트에서의 고효율 컴퓨팅은 Larrabee로 실현된다는 것이 지금의 전략이다.
그럼, Larrabee는 GPU와 어떻게 다른 것일까.
● MIMD의 Larrabee대 SIMD의 GPU의 대결
GPU의 프로그래밍 모델의 복잡함은 GPU의 기본 아키텍쳐로부터 기인한다. 현재의 통합쉐이더 GPU가 많게 공통되는 특징은 커다란 SIMD(Single Instruction, Multiple Data) 형 머신인 점이다. GPU에서는 4~32개라고 하는 다수의 쉐이더프로세서코어 같은 인스트럭션을 실행한다. 단일의 인스트럭션 유니트가 복수의 프로세서를 제어하는 SIMD형의 벡터 프로세서가 GPU다.
그에 대해 Larrabee는 개개의 프로세서 코어가 개별의 인스트럭션을 실행하는 MIMD(Multiple Instruction, Multiple Data) 어프로치를 취한다고 한다. 통상의 CPU의 멀티 코어와 기본적으로는 같은 구조라고 보여진다. MIMD 머신 위에서 데이터 병렬 컴퓨팅을 행하는 것이 Larrabee의 어프로치다. 보다 Cell Broadband Engine(Cell B.E. ) 비슷하다고 해도 괜찮다. 무엇보다 Larrabee도 MIMD 구성의 각 프로세서 코어안은 비교적 짧은 SIMD의 구성이 되고 있다고 보여진다.
SIMD(벡터) GPU와 MIMD Larrabee라고 하는 구도는 하이 퍼포먼스 컴퓨팅(HPC)의 세계에서의 SIMD대 MIMD의 논쟁을 생각나게 한다. AMD의 Phil Hester(필·에스터) 씨(Senior Vice President & Chief Technology Officer(CTO))는 GPU의 대두를 일찌기 벡터 슈퍼컴퓨터를 마이크로 프로세서가 패배시켰을 때의 역의 현상이라고 형용한다. 즉, 거칠게 말하면 AMD는 SIMD형이 효율적인 시대가 다시 왔다고 생각하고 있다.
그에 대해, Intel의 Justin R. Rattner(져스틴·R·래트너) 씨(Senior Fellow, Corporate Technology Group겸CTO, Intel)는 다음과 같이 말한다.
「나도 일종의 기시감(데쟈브)을 느끼고 있다.(웃음) 나는 이전에 하이 퍼포먼스 컴퓨팅 일을 하고 있었지만 그곳에서는 항상 MIMD대 SIMD의 논쟁이 있었다. 어느 쪽의 아키텍쳐가 유효한가가 논쟁되었다.
우리가 가리킨 Larrabee의 다이어그램을 보면 아는 대로 Larrabee는 MIMD 머신이다. MIMD 머신에 컨벤셔널인 캐쉬 계층을 접속한 구조가 되고 있다. 그 때문에 매우 가벼운 웨이트로 저지연시간인 thread간 커뮤니케이션이 (프로세서 코어) 범위의 어디에서라도 가능하다.
이 구조는 오늘의 GPU와는 크게 차이가 난다. GPU는 SIMD 머신으로 상당한 크기(의 벡터)로 취급하고 있다. MIMD 머신대 SIMD 머신의 이야기가 반복되고 있다. 또, GPU는 (전통적인 캐쉬 계층도 가지지 않기 때문에) thread간의(커뮤니케이션의) 지연시간은 훨씬 길다.
MIMD이며 컨벤셔널한 캐쉬 계층을 가진다. 이러한 2가지가 Larrabee의 차이가 된다」
여기서 Rattner씨가 언급하고 있는 다이어그램도라고 하는 것은 Larrabee의 주요한 아키텍쳐로서 Intel Technology Journal에 Doug Carmean씨가 금년(2007년) 초에 Intel Technical Lecture Series의 하나로서 행한 장래 CPU 아키텍쳐의 강연에서 나타난 그림이라고 추측된다. 그 그림을 간략화했던 것이 아래의 그림이다. 계층화 된 캐쉬를 갖추어 각 프로세서 코어가 독립하고 있는 것처럼 보인다.
이렇게 보면 Larrabee와 GPU의 싸움은 클러스터대 벡터 슈퍼컴퓨터의 재현이라고 말할 수 있다. 다중코어 시대의 CPU가 노리는 것은 한 때의 HPC 레벨의 성능이며 어플리케이션도 같은 방향이 되기 때문에 이것은 당연할지도 모른다.
'IT분야 해외뉴스' 카테고리의 다른 글
Intel에 대항하기 위한 AMD의 서버 CPU 로드맵 갱신 (0) | 2008.05.13 |
---|---|
MIMD의 Larrabee와 SIMD의 GPU의 싸움 (0) | 2007.10.14 |
강력한 제조 공정과 45nm 제품으로 Intel에 도전하는 AMD (0) | 2007.10.05 |
INTEL이 목표로 하는 Nehalem에서의 GPU와 CPU의 통합 (0) | 2007.10.05 |
Penryn의 1.5배 CPU 코어를 가지는 차세대 CPU Nehalem (0) | 2007.09.27 |