라라비 (마이크로아키텍처)

라라비(Larrabee)는 인텔이 자신의 내장형 그래픽 가속기와는 별도로 개발하고 있는 범용 GPU의 코드네임이다. 일반 시장에서는 판매하지 않으며, HPC 시장에 투입하기로 결정했다.

경쟁 제품과의 비교 
엔비디아와 AMD의 지포스와 레이디언 제품군과 경쟁할 것으로 예상되며, GPGPU와 고성능 컴퓨팅 시장에서도 경쟁할 것이다.

라라비는 멀티 코어 CPU와 GPU 사이의 혼성으로 생각될 수 있으며 양자와 유사점을 가진다. 일관된 캐시 계층구조와 x86 구조 호환성은 CPU와 유사한 반면, 너른 SIMD 벡터 장치와 텍스처 샘플링 하드웨어는 GPU와 유사하다.

GPU로서 라라비는 게임을 위하여 전통적인 래스터화 3차원 컴퓨터 그래픽스 (다이렉트X/OpenGL)을 지원할 것이다. 그러나 라라비의 CPU+GPU 혼성 특징은 범용 GPU 또는 흐름 처리 임무에 적합하다. 예를 들어 라라비는 게임을 위한 광선 추적 또는 물리 처리를 실시간으로, 슈퍼컴퓨터의 한 부분으로서 과학 계산을 처리할 수 있다.

드림 웍스 애니메이션은 인텔과 손잡고 라라비를 이용하여 영화를 만들 계획을 세우고 있다. CEO인 제프리 카젠버그는 "우리는 우리의 소프트웨어를 업그레이드하는 길에 올라 있으며, 라라비를 속도, 유연성, 처리 용량 면에서 이용하여 우리 최고의 역량을 두 세배가 아닌 20배로 올리게 될 것이다."라고 말하였다.

라라비의 초기 제안은 GPU 경쟁사로부터의 비판도 끌어내었다. 엔비전 08 행사에서 몇몇 엔비디아 직원들이 라라비에 관한 인텔의 SIGGRAPH 논문을 "판촉용 과대광고"라고 불렀고, 언론에 라라비의 구조는 "2006년의 GPU 같다" 고 말했다. 2009년 6월 현재 라라비의 시제품은 엔비디아 지포스 GTX 285와 대등하다고 주장되었다.

기존의 GPU와 다른 점 
라라비는 현재 시장에 나와 있는 지포스 200 시리즈와 레이디언 4000 시리즈 같은 외장 GPU와 크게 세 가지가 차이나며 이는 다음과 같다.
 라라비는 x86 명령어 집합을 라라비 고유의 확장 명령어와 함께 사용할 것이다.
 라라비는 캐시 일관성을 모든 코어에 걸쳐 제공할 것이다.
 라라비는 극소량의 특화된 그래픽스 하드웨어만을 포함하는 대신, z-버퍼링, 클리핑, 블렌딩을 소프트웨어로 타일 단위 처리할 것이다.

이로써 라라비는 기존의 GPU보다 더 유연해질 것이므로, 게임과 다른 3차원 응용 프로그램들 사이의 더 큰 차이점을 허용할 것이다. 인텔의 SIGGRAPH 2008논문에 현재의 GPU로 달성하기 어려운 렌더링 기능들에 대해 언급된 바 있다: 렌더 표적 읽기, 순서 무관 투명성, 비 균일 그림자 매핑, 그리고 실시간 광선 추적.

라라비가 기존의 GPU에 비해 훨씬 유연하지만, 차세대 GPU (레이디언 R800과 지포스 300 시리즈)는 라라비 보다 더 전에 출시될 듯 하고, 아마도 더 많은 유연성을 부여받을 것이다. 직접 비교는 아직 이르다.

CPU와의 차이점 
라라비의 x86 프로세서 코어는 몇가지 면에서 인텔 코어 2나 인텔 코어 i7 같은 기존의 인텔 CPU와도 몇가지 면에서 다를 것이다:

 라라비의 x86코어는 훨씬 간단한 펜티움 P54C 설계에 기반할 것이다. 이는 내장형 응용 프로그램을 위해 아직도 사용되고 있다. P54C에서 유도된 이 코어는 슈퍼스칼라 기능은 갖추고 있지만 비순차적 명령어 처리는 포함되어 있지 않다. 하지만 현대적인 특징, 예를 들어 인텔 아톰과 유사한 x86-64지원도 가지도록 업데이트되었다. 순차적 실행으로 코어당 성능은 낮아지지만 더 작기 때문에 한 칩에 더 많이 넣을 수 있어서, 전체 성능을 향상시킨다. 실행 또한 더 확정적이어서 명령어 및 임무 스케줄링이 컴파일러에 의해 이루어질 수 있다.

 각 라라비 코어는 512비트 벡터 처리 장치를 담고 있어서 16개의 단정밀도 부동소수점 연산을 한번에 처리할 수 있다. 이는 대부분의 x86 프로세서의 스트리밍 SIMD 확장 장치와 유사하지만 4배 더 크며, 흩뿌리기/모으기 명령과 벡터 장치를 더 쉽고 효율적으로 사용할 수 있도록 설계된 마스크 레지스터 같은 기능이 추가되었다. 라라비의 고속연산능력은 이러한 벡터 장치로부터 나온다.

 라라비가 가지고 있는 하나의 주요 고정 소숫점 그래픽 하드웨어 기능은 텍스처 샘플링 장치이다. 이는 삼중선형 및 이방성 필터링과 텍스처 압축 풀기를 행할 수 있다.

 라라비는 1024비트 (각방향 512비트) 링 버스로 코어간 및 메모리와 통신한다. 이 버스는 두 두 모드로 설정할 수 있어서 16이상 또는 이하의 코어를 지원할 수 있다. L2 또는 L1 캐시로 명시적으로 미리읽기(explicit prefetching)도 지원한다.

 각 코어는 4방향 동시 멀티쓰레딩을 각 프로세서 레지스터의 4개의 사본과 함께 지원한다.

이론적으로 라라비의 x86 프로세서 코어는 기존의 PC 소프트웨어를 실행할 수 있다. 그러나 라라비의 비디오 카드는 PC 호환 마더보드의 모든 기능을 포함하지는 않을 것이므로, PC 운영 체제와 응용 프로그램의 수정 없이 실행되지는 않을 것이다. 라라비의 다른 버전이 퀵패스를 이용하여 마더보드에 자리할 수도 있으나 인텔은 아직 이를 위한 계획을 발표하지 않았다.

셀 광대역폭 엔진과의 비교 

라라비의 철학인 다수의 작고 단순한 코어를 사용하는 것은 셀 프로세서 뒤의 생각과 비슷하다. 더 나아가서 코어간 통신을 위해 고대역폭 링 버스의 사용 등도 비슷하다. 그러나, 구현상 많은 중요한 차이점이 있어서 라라비를 프로그램하는 것이 더 간단할 것이다.

 셀 프로세서는 하나의 주 프로세서를 포함하여 많은 더 작은 프로세서를 통제한다. 덧붙여 주 프로세서는 운영체제를 실행시킬 수 있다. 반면에, 라라비의 모든 코어는 동일하지만, 라라비는 운영체제를 실행시킬 것으로 기대되지는 않는다.

 셀의 각 연산 코어는 지역 저장소를 가지고 있으며, 이는 DRAM과 명백한 DMA를 통해야 한다. DRAM으로의 일반적인 읽기/쓰기는 허용되지 않는다. 라라비에서는 칩 안밖의 모든 메모리가 자동으로 관리되는 일관 캐시 계층구조하에 있어서, 각 코어가 가상적으로 균일한 메모리 공간을 공유하며 표준 읽어오기/저장하기 명령을 통한다. 그러나 라라비 코어는 각각 256k 지역 L2캐시를 가지고 있으며, 다른 L2 세그먼트를 사용하려면 시간이 더 많이 걸리고, 이는 원칙적으로는 셀 SPU와 어느 정도 비슷하다.

 위에서 언급한 캐시 일관성 때문에 라라비에서 실행되는 각 프로그램은 가상적으로 커다란 선형 메모리를 가진다. 이는 전통적인 범용 CPU에서와 같다; 한편 셀 응용 프로그램은 각 SPE에 할당된 메모리 영역 제한을 염두에 두고 프로그램되어야 하지만 (자세한 내용은 이 기사 참조) 이론적으로 대역폭은 더 높다. 그러나 지역 L2가 더 빠르기 때문에 셀 방식 프로그래밍으로 혜택을 입을 수 있다.

 셀은 DMA로 지역 메모리의 데이터를 출입시키므로 유연성과 성능에 잇점을 가진다; 한편 라라비는 특별 명령어(특히 캐시 내쫓기 눈치(cache eviction hints)와 미리 가져오기(pre-fetch) 명령어)로 캐시를 취급하여 캐시 일관성 (표준 메모리 일관성)을 유지하면서, 예를 들어 랜더링 파이프라인과 다른 스트림 형태의 계산 성능을 향상시킬 수 있다.

 셀의 각 계산 코어는 한번에 한 스레드만 순서대로 실행시킨다. 라라비의 코어는 4개까지의 스레드를 실행시킨다. 라라비의 하이퍼스레딩은 지연을 감추는 것을 돕고 비순서 실행 기능 결여를 보정해준다.

인텔 GMA와의 비교 

인텔은 현재 인텔 GMA라는 이름 아래 한 계열의 GPU를 판매하고 있다. 이 칩들은 별도로 판매되지는 않고 마더보드에 통합된다. 가격과 소모 전력의 잇점으로 작은 랩탑과 복잡하지 않은 연산에 적합하지만 3차원 그래픽 처리 능력으로 엔비디아와 AMD/ATI와 최고급 게임 또는 최고 성능 컴퓨터, 대중 게임 콘솔 시장에서 경쟁할 만큼은 아니다. 반면, 라라비는 마더보드로부터 분리된 독립된 GPU로 판매될 것이며, 예상하는 대로라면 충분한 성능으로 차세대 비디오 게임 콘솔에도 고려될 수 있을 것이다.

라라비 작업 팀은 인텔 GMA팀과는 분리되어 있다. 라라비의 하드웨어는 인텔의 오레건주 힐스보로 설계팀이 진행 중인데, 이 팀의 이 전 마지막 작품은 네할렘 마이크로아키텍처였다. 소프트웨어와 드라이버는 신생 팀에서 작성 중이다. 특히 3차원 스택은 RAD Game Tools에서 개발되고 있다.

인텔 비주얼 컴퓨팅 인스티튜트 (이하 IVCI)가 라라비 기반 제품에 적용될 수 있는 기본 및 응용 기술을 연구할 것이다.

예비 성능 데이터 

인텔의 SIGGRAPH 2008 논문에 라라비의 예상 성능에 관한 cycle-accurate 시뮬레이션 (메모리, 캐시 제한과 텍스처 유닛 포함)에 대한 설명도 있었다. 그래프에는 몇 개의 1GHz 라라비 코어가 있어야 초당 60 프레임을 1600x1200 해상도의 몇몇 인기 게임에서 유지할 수 있는지 표시되었다.

라라비는 1GHz 이상의 속도로 작동할 것으로 보이며 이러한 수치가 대표하는 것은 실제 라라리 코어라기 보다는 그 가상적 시간분할이다. 다른 그래프에 따르면 이러한 게임상에서의 성능은 거의 선형적으로 코어 수에 따라 32코어까지 증가한다. 48코어에서는 비례 관계에서 예측되는 성능의 90%로 떨어졌다.

2007년 6월 PC 와치 기사에 따르면 최초의 라라비 칩은 32개의 x86 프로세서 코어를 갖추고 2009년 하반기에 출시, 45 나노미터 공정으로 제조될 것이라고 한다. 코어 몇 개에 결함을 수율 문제로 가지게 된 코어는 24 코어 버전으로 판매될 것이다. 2010년 후반에는 32 나노 공정으로 더 작아져서 48 코어 버전도 가능할 것이다.

기술 뉴스 사이트인 Fudzilla는 라라비에 관한 몇 편의 짧은 기사를 올렸는데, 주장하는 바는 라라비가 300와트의 열적 설계 전력을 가지게 될 것이고, 라라비가 12층 PCB를 사용할 것이며, 오늘날의 최고급 엔비디아 카드에 사용될 법한 냉각 시스템을 가지게 될 것, 라라비가 GDDR5 메모리를 사용할 것, 그리고 단정밀도 2 테라플롭스의 계산 능력을 갖출 것 등이다.

같이 보기 
 그래픽 처리 장치
 GPGPU
 OpenCL
 인텔 740
 인텔 GMA
 x86
 x86-64
 펜티엄

참고 문헌 

그래픽 카드
인텔 그래픽스