컴퓨터 / IT

CPU에 통합할 수 있는 Larrabee 아키텍처

드라이빙필 2008. 10. 8. 12:12
반응형
라라비가 기존의 CPU 라인업과는 다르게 별도의 제품으로만 존재하는 것으로 생각했었는데 기존 인텔 CPU 아키텍쳐의 확장판으로 설계된다는 것이 재미있습니다. 지금까지 차근차근 발전해 왔던 명령어 세트의 추가일 뿐이라고 폄하할 수도 있겠지만 CPU와 GPU가 통합되어 고성능 컴퓨팅을 추구하는 현 시대에 자신들의 특기를 살리는 인텔다운 적절한 전략이라고 보여지네요. 상황에 따라 제품 전략을 다양하게 가져갈 수 있고 이에 따라 눈치 봐가면서 제품 개발할 수 있으니 인텔로서는 안전한 방법을 택했다고 생각합니다.

라라비가 GPU라는 생각은 버려야 할 듯 합니다. 분리형 제품은 코프로세서라고도 볼 수 있고 독립형으로 동작한다면 멀티코어 인텔 CPU로 볼 수도 있고 통합되면 고성능 CPU가 될 수도 있고 말이죠. 어느 쪽이 시장에서 매력적이 될지는 분야마다 다르겠습니다만 과연 일반 유저들이 접할 수 있는 데스크탑 시장은 어떻게 전개될까요? 정말 기대가 됩니다.




CPU에 통합할 수 있는 Larrabee 아키텍처




●Larrabee 신명령은 Larrabee 이외에도 실장된다?

퍼트·P·겔 가수 성

 Intel의 메니코어 CPU「Larrabee(라라비)」의 실체는 ,IA-32(x86)의 새로운 명령 확장이다.MMX나 SSE와 같은,IA-32/Intel 64 아키텍처의 벡터 연산 확장,최신 버전이 「Larrabee New Instruction(이하 LNI)」이 된다.그리고,Larrabee 신명령의 처음의 실장 사례로 ,고 단위 시간당 처리량에 특화한 매니코어 제품이 ,Larrabee라고 하는 CPU이다.

 아마,Intel은 LNI를 ,이번의 Larrabee뿐만 아니라,폭넓게 실장하고 가는 것을 생각하고 있다.적어도,Intel 가운데에서 Larrabee를 추진한 일파는 ,그러한 구상을 갖고 있다.LNI는 ,아마 Intel의 IA-32/Intel 64 명령 세트 확장의 도로지도의 안에 위치 결정되고 있고,Larrabee라고 한 제품은 ,그것을 미리 받아들였던일 제품이라고 추측된다.장래는 ,Intel의 PC&서버용 CPU에도 ,LNI는 실장되고 갈 것 같다.

 그러한 의미에서 ,Larrabee는 Intel CPU의 장래를 보여주는 거울이 된다.Core 2나 Core i7(Nehalem:네할렘)이 현재 존재하고 있는데,장래의 PC&서버용의 범용 CPU가 어떻게 진화할 것인가? Larrabee는 ,2010 연대 중반 이후의 Intel CPU의 진화의 방향성을 가리키고 있다.

 Larrabee와 LNI의 이러한 관계를 생각할 때 중요한 포인트는 ,Larrabee가 호모지니어스(Homogeneous:균질)매니코어인  점이다.Larrabee의 「첫 타겟으로 삼은 시장은 디스크리트(분리형) 그래픽스 어플리케이션」(Patrick(Pat) P. Gelsinger(퍼트·P·겔 가수)씨(Senior Vice President and General Manager, Digital Enterprise Group))로 ,호스트 CPU와의 조합으로 쓰여진다.그러나,Larrabee 자체는 ,GPU와는 달리 반드시 호스트 CPU를 필요로 하지 않는다.Larrabee는 ,어느 정도의 스칼라 연산 성능을 갖고,독립적으로 OS도 실행할 수 있는 CPU이다.

CPU 아키텍처의 방향과 명령 세트
※별도 윈도우(window)에서 엽니다
(PDF 판은
여기)
CPU 명령 세트 아키텍처의 진화
※별도 윈도우(window)에서 엽니다
(PDF 판은
여기)

●헤테로지니어스냐 호모지니어스냐가 포인트

 CPU로서 독립적으로 사용할 수 있는 정도의 스칼라 연산 성능을 구비하고,45nm 프로세스 세대에 단일 칩으로서 TFLOPS 클래스의 성능을 목표로 한다.Larrabee의 개념은 거기에 있다.그 점에서는 ,CPU로서 어느 정도의 스칼라 연산 성능을 구비하고,90nm 세대에 단일 칩으로 1/4TFLOPS의 성능을 달성했던 Cell B.E.의 개념과 아주 비슷하다.그러나,큰 차이도 있다.크게 본다면 「헤테로지니어스(Heterogeneous:이종 혼합)」냐 ,「호모지니어스(Homogeneous:균질)」냐 ,라고 한 점이 큰 차이가 된다.

 Cell B.E.에 의하고,헤테로지니어스 멀티코어 CPU가 메인 스트림 컴퓨팅으로 현실이 됐다.헤테로지니어스 멀티코어 라고 한 말은 명확하게 정의된 것이 아니지만 ,개념으로서는 1개의 CPU의 안에 다음 요소들이 포함된 것이였다라고 말할 수 있다.

  • 다른 마이크로 아키텍처의 CliU 코어
  • 다른 명령 세트 아키텍처(ISA)
  • 다른 명령 스트림

 이 3개가 Cell B.E.와 같은 헤테로지니어스 멀티코어의 특징이였다.Cell B.E.는 범용의 PPU(Power Processor Unit)와 ,벡터 연산에 최적화한 SPU(Synergistic Processor Unit)의 2 종류의 마이크로 아키텍처의 CPU 코어를 탑재.PPU에는 PowerPC 명령 세트를 ,SPU에는 신규의 명령 세트를 채용.OS나 어플리케이션 가운데에서도 연산 중심이 아닌 코드는 PPU로 ,벡터 연산 중심의 코드는 SPU로 처리하도록 명령 스트림을 나눌 필요가 있다.

 이러한 사정은 ,GPU 컴퓨팅도 마찬가지이다.NVIDIA의 CUDA (쿠다:compute unified device architecture)의 경우,1개의 프로그램 가운데에서,스칼라 코드는 CPU로 실행되고,병렬화가 가능한 코드만이 드라이버를 이용하여 GPU에 다운로드된다.CPU와 GPU에 의한 헤테로지니어스 환경이 ,현재의 GPU 컴퓨팅이다.

 Intel은 ,Larrabee로 이들을 전부 전환했다.Larrabee로는 ,1개의 CPU의 안에 다음 요소를 갖는다.

  • 단일의 마이크로 아키텍처의 CPU 코어
  • 단일의 명령 세트 아키텍처
  • 단일의 명령 스트림

 Larrabee의 각 CPU 코어는 ,각각 같은 실장이고,같은 명령 세트 아키텍처로 되어 있다.1개의 CPU 코어의 안에 ,Pentium 베이스의 심플한 스칼라 연산 유닛과 ,16-wide의 강력한 벡터 연산 유닛이 포함된다.헤테로지니어스한 결합은 ,CPU 코어 가운데에서 행해지고 있고,단일의 명령 스트림의 안에 ,종래의 IA-32 명령과 새로운 벡터 명령의 양쪽이 포함된다.

 Larrabee도 각 CPU 코어로 다른 명령 스트림(스레드)을 실행시킨다.그러나,명령 스트림을 코드의 종류나 태스크에 의하고 나눌 필요는 없다.보통의 멀티 코어 CPU와 마찬가지로,단순하게 태스크를 스레드에 분할하면,균질한 CPU 코어군 상에서 실행하게 한다고 말할 수 있다.균질한 IA-32 코어로의 ,대칭형 멀티 코어를 ,Intel이 중시할 필요가 있는 것이 밝혀진다.

●Larrabee의 실체는 IA-32가 새로운 명령 세트 확장

 그러면,각 Larrabee CPU 코어 가운데에서의 ,스칼라와 벡터의 결합은 어떻게 되고 있을 것인가.

 Larrabee CPU 코어의 구조에서 눈에 띄는 것은,Pentium 베이스의 스칼라 파이프라인은 그대로 남기면서,16-wide 벡터유닛을 추가하고 있는 점이다.벡터유닛은 ,Larrabee CPU 코어 가운데에서,어느 정도,독립한 구조가 되고 있다.GPU와 같이,벡터유닛만의 구성으로는 되지 않고(NVIDIA 아키텍처라도 ,각 스칼라코아는 SIMD 제어되고 있고,크게 보면 벡터).핵심은 보통의 x86 CPU 코어이고,Pentium 세대까지의 명령은 전부 실행된다.벡터 파이프는 x86 CPU 코어의 확장에 지나지 않다.그러한 의미에서는 ,Larrabee란 ,IA-32의 새로운 명령 세트 확장에 지나지 않다.

 Gelsinger 성은 다음과 같게 이야기한다.

 「Larrabee는 『LNI』라고 한 새로운(IA-32 아키텍처의)명령 세트 확장이다,라고 말한 것도 가능하다.LNI는 ,범용성이 있는 완전한 신명령 세트이다.벡터 프로세싱이나 스캐터/개더,이레귤레이터 구조, 라는 전부를 포함한다.상당히 강력한 명령 세트 확장이다」

 Larrabee CPU 코어는 ,기본적으로는 Pentium 베이스의 x86 코어에 ,LNI를 위한 실행 유닛을 가한 것이다.그러나,Larrabee의 CPU 코어가 심플 야채 In-Order 형 코어인  것은,Larrabee의 아키텍처 상의 제약이 아니다.LNI 자체는 ,아마,포터블한 명령 세트 확장이라는 측면에서 ,기존의 Intel의 명령 세트 확장과 경합하지 않는다고 생각된다.

 LNI 자체는 ,다른 타입의 CPU 코어에 실장한 것이 가능한 것이다.SSE 명령을 ,Silverthorne로부터 Nehalem까지 넓은 CPU 마이크로 아키텍처에 실장할 수 있는 것과 똑같이,Intel은 LNI도 폭넓은 CPU 마이크로 아키텍처에 실장할 수 있다고 생각된다.

프로세스 기술의 진화에 수반한 명령의 확장
※별도 윈도우(window)에서 엽니다
(PDF 판은
여기)

●그래픽스 애플리케이션용으로 심플 CPU 코어를 선택

 왜 Intel은 ,Larrabee에 심플 CPU 코어를 선택한 것인가.그 점을 ,Gelsinger 성은 다음과 같게 설명한다.

 「LNI를 ,큰 코어에 실장할 수 없는 아키텍처 상의 이유는 없다.우리들은 ,처음의 Larrabee의 설계 포인트에 있어,작은 In-Order 코어를 베이스에 사용한 것을 선택했다.몇 개의 이유가 있지만 ,가장 중요한 점은 ,단지,좀 더 코어를 많이 넣고 싶다는 것이였다.작은 코어라면,일정한 실리콘 예산(칩 사이즈) 가운데에서 보다 많은 코어를 탑재할 수 있다.

 그 결과,우리들은 Larrabee로 훌륭한 밸런스를 실현할 수 있었다.Larrabee의 다이 사진은 아직 볼 수 없지만 ,그것을 보면,캐시와 메모리 영역,벡터 영역,텍스쳐 유닛이 상당히 좋은 밸런스로 되어 있는 것이 밝혀질 것 같다.

 만약 우리들이 Larrabee에 큰 CPU 코어를 사용하고 있으면, 우리들은 그래픽스 타입의 어플리케이션을 충분히 커버하거나 퍼포먼스에 근접한 것이 가능하지 않았을 것 같다.그래픽스는 ,우리들의 메인의 타겟 시장이므로,이 선택은 가능하지 않았다.그러니까,우리들은 ,LNI의 실장의 처음의 버전의 사례로는 ,작은 코어를 선택했다.그러나,LNI는 ,그 밖의 CPU 코어에도 실장할 수 있다」

 LNI의 코어를 Pentium 베이스의 심플 코어에 한 것은,아키텍처 상의 이유가 아니라,목표가 되는 애플리케이션을 위한 것이었다고 한다.이번의 Larrabee는 타겟 애플리케이션이 그래픽스이기 때문에 ,코어 수를 늘리고 연산 성능을 높이는 것에 중점을 두었던 것이다. 물론,벡터유닛를 강화할 바에는,성능을 극적으로 올릴 수 있지 않다면 의미가 없는 것으로 ,그 점에서는 이치에 맞고 있다.그러나,Intel은 LNI라고 한 새로운 자산을 ,범용의 PC&서버 CPU의 확장에 사용한 것도 가능한다.

Larrabee Block Diagram
※별도 윈도우(window)에서 엽니다
(PDF 판은
여기)
Larrabee x86 Core Block Diagram과 Pentium의 비교
※별도 윈도우(window)에서 벌어집니다
(PDF 판은
여기)

●2개의 방법이 있는 LNI의 범용 CPU에의 통합

 이것은 ,장래,Intel이 Larrabee 아키텍처를 PC 용의 CPU에 통합한다고 하면, 어떤 형태로 통합할 것인가, 라는 포인트와 깊게 관계된다.

 먼저,Intel은 ,처음의 세대의 ,Pentium 형 심플 코어에 LNI를 실장한 CPU 코어를 ,그대로,PC&서버용의 범용 CPU에 편입할 수 있다.그 경우는 ,대형의 범용 CPU 코어는 그대로이고, Larrabee CPU 코어를 하이브리드로 조합시키는 것이 된다.통상의 코드는 메인의 범용 CPU 코어로 ,특정한 병렬화 어플리케이션의 코드는 서브의 Larrabee CPU 코어로 실행한 스타일이다.CPU 코어 단위로 역할 분담을 행한 점은 ,Cell B.E.와 비슷하다.1개의 CPU의 상에 ,다른 마이크로 아키텍처의 CPU 코어가 혼재하고,확장이 다른 명령 세트 아키텍처가 병존하고,명령 스트림도 2 종류로 나누어진다 헤테로지니어스 멀티코어이다.

 그러나,Larrabee 형의 확장의 경우는 ,이미 설명했던 것처럼,다른 타입의 CPU 코어에 LNI를 실장한 것이 비교적 용이하게 할 수 있다.그 때문에, Intel은 ,PC&서버용의 CPU 코어에 ,LNI를 실장하고,16-wide 벡터유닛을 통합하는 것이 가능하다.

 Gelsinger 성은 다음과 같이 이야기한다.

 「아키텍처 상으로는 ,어느 쪽(Larrabee 코어를 통합한 방법과 PC&서버용 CPU 코어에 LNI를 실장한 방법)도 가능하다.Larrabee로 작은 코어를 선택한 것은,코어 수를 늘리기 위해서이다 .우리들이 ,LNI를 ,보다 큰 CPU 코어의 제품에 추가하는 것도 가능한 것은 명백하다.

 장래의 방향으로 명확하게 말했던 것처럼,우리들은 명령 세트의 큰 움직임으로서 벡터 명령을 강화하는 방향으로 향하고 있다.이미,Sandy Bridge(샌디브리지)의 일부로 넣고 AVX 명령 세트 확장에서 256-bit(벡터)를 추가하는 것을 발표했다.Larrabee는 512-bit(벡터)이므로,이것(AVX)이 일종의 ,중요한 중간 지점(SSE와 Larrabee의 사이의)으로 존재하는 것을 알 수 있다고 생각한다.우리들은 ,어딘가의 시점에서 ,(PC&서버용 CPU도)512-bit 벡터 확장 아키텍처로 옮길 것 같다」

●범용 CPU 코어의 벡터 명령 확장의 연장으로 보이는 LNI

 Gelsinger 성은 ,확실하게 언급하지 않았지만 ,LNI를 범용적인 CPU 코어에 실장하는 가능성을 시사하고 있다.Gelsinger 성의 인터뷰 가운데에서는 ,범용의 PC&서버용 CPU도 ,벡터 명령을 강화하는 방향에 있고, 벡터 폭을 단계적으로 늘리고 있다.그 방향성에서 보면,장래,512-bit 벡터로 강화되는 것은 필연적이 된다.

 2010년의 시점에서는 ,PC&서버용 CPU는 AVX로 256-bit 폭 벡터,어느 정도 한정된 용도를 지향하는 Larrabee는 512-bit 폭 벡터로 나뉘어,같은 Intel CPU로 벡터 명령의 실장은 2개로 나누어져 버린다.그러나,Gelsinger 성은 ,AVX의 256-bit는 벡터 폭을 펴고 가는 도중의 중간 지점이고,어디쯤인가에서 512-bit벡터로 강화된 것이 된다고 시사한다.즉,256-bit와 512-bit의 어긋남은 ,시간 축상의 어긋남에 지나지 않고,PC&서버용 CPU도 언젠가 따라잡는 것이 된다.

 그리고,그 시점에서 ,Intel은 512-bit벡터 명령으로서 LNI를 갖고 있고,그것을 ,PC&서버용 CPU에 실장할 수 있다.LNI를 ,IA-32의 확장으로서 정의한 것이라면,그것을 사용하지 않는 방법은 없을 것 같다.그 경우,LNI(512-bit 벡터)는 ,MMX(64-bit 벡터)→SSE(128-bit 벡터)→AVX(256-bit 벡터)로 계속되고 왔던 명령 세트 확장의 새로운 버전이 된다.반대로 말하면,AVX 이전의 512-bit 벡터를 미리 받아들였던 것이 ,LNI를 실장한 Larrabee라고 한 CPU일지도 모르다.

 Intel이 ,PC&서버용 CPU 코어 자체의 안에 LNI를 실장한 방법을 취한다면 ,그것은 헤테로지니어스 형의 결합이 아니게 된다.단일의 마이크로 아키텍처의 CPU 코어에 ,단일의 명령 세트 아키텍처,단일의 명령 스트림으로 통합할 수 있다.그 만큼,CPU 코어 수는 감소하고,실제 퍼포먼스는 떨어지는 것이 된다.같은 LNI를 실장해도 ,심플 코어를 다수 탑재한 Larrabee와는 다른 타입의 제품이 될 것 같다.

 Intel은 ,Larrabee를 IA-32의 확장 형태로 만듬으로 인해 ,범용 CPU와의 융합으로 다양한 선택지를 가질 수 있게 됐다.예를 들면,만약,Intel이 그래픽스 퍼포먼스를 중시한다면 ,LNI를 실장한 대형 범용 CPU 코어와 함께 LNI를 실장한 심플 코어, 2 종류의 CPU 코어를 실었던 헤테로지니어스 멀티코어 CPU를 만드는 것도 가능하다.실행중에 그래픽스 코드는 심플 코어에 할당하고,그 밖의 코드는 대형 범용 코어에 할당한다고 말한 사용 방법이 될 것 같다.

 정리하면 ,LNI라고 한 새로운 확장 명령을 사용하며 그래픽스에도 대응할 수 있는 고쓰루풋 매니코어 제품이 Larrabee이다.그러나,LNI 자체는 ,그러한 제품 이외에도 응용이 가능하다.무엇보다 범용적인 CPU 코어의 벡터 연산 성능을 향상시키기 위해서도 사용할 수 있다고 생각된다.아마,Intel은 IA-32/Intel 64 아키텍처의 벡터 확장에 대한 장기 로드맵을 갖고 있고,LNI는 그 맵 상에 존재한다고 본다.

반응형

'컴퓨터 / IT' 카테고리의 다른 글

Adobe CS4 설치판 크기  (1) 2008.10.18
게임 컨트롤러들 집합!  (4) 2008.10.11
닌텐도DS ⓘ  (0) 2008.10.02
쿼드 코어의 시대는 아직?  (2) 2008.10.02
3GB 메모리와 크라이시스 워헤드  (2) 2008.10.01