본문 바로가기
IT/Hardware/CPU/MB

인텔의 차기CPU 샌디 브릿지 듀얼GPU코어의 수수께끼

by 에비뉴엘 2010. 4. 15.
반응형
●Nehalem의 발전계의 실행 파이프라인 

 Intel 는, 현세대의 Nehalem(네할렘) 마이크로 아키텍쳐는 퍼포먼스 데스크탑과 서버를 위한 CPU로부터 투입했다. 그러나, 차세대 CPU 아키텍쳐「Sandy Bridge(샌디 브릿지)」에서는, 메인 스트림 데스크탑과 노트북 PC를 위한 CPU를 투입한다.그 때문에, Sandy Bridge계 CPU의  페이스는, Nehalem계 CPU와 비교와 현격히 빠른 페이스가 될 것으로 예상된다. Intel는, 이번 주, 북경에서 개최하는「Intel Developer Forum(IDF)」에서도, Sandy Bridge에 대해 어떠한 정보를 공개한다고 보여지고 있다.

 Sandy Bridge의 CPU 코어의, 실행 파이프라인의 기본 구조 그 자체는 Nehalem와 그만큼 다르지 않다. 명령 발행 포토는 합계 6로, 1 사이클로 최대 6개의 uOPs의 발행이 가능하다.3 포토가 연산으로 3 포토가 로드/스토어에 할당할 수 있고 있는 점도 Nehalem와 같다.이것은, 명령의 페치로부터 실행까지의 효율이, Nehalem 세대로 거의 다르지 않는 것을 시사하고 있다.

  다만, Sandy Bridge로 크게 바뀐 점도 있다.우선, 연산 파이프에 256-bit폭의 SIMD(Single Instruction, Multiple Data) 명령을 포함한 AVX 명령의 실행 유닛이 더해지는 것.또, 로드/스토어 포토군 중 로드와 스토어 주소의 포토가, 각각 로드/스토어 양용의 파이프가 된다. 거기에 따르고, 1 사이클로 2 로드가 가능해진다(다만 L1데이터 캐쉬로부터의 대역은 48 Bytes/사이클).




●명령 인코딩 포맷도 바꾸는 AVX 

 AVX 에서는 256-bit폭의 SIMD 연산이 가능하고, 32-bit 데이터라면 8개를 병렬에 연산할 수 있다.종래의 SSE의 128-bit폭의 2배의 연산 효율이다. AVX를 위해서, 새롭게 256-bit 레지스터 YMM가 더해진다.또, 단순하게 SIMD의 폭을 2배로 했던 것 뿐만 아니라, 레지스터를 mask register로서 사용하는 것으로 레지스터의 각 슬롯에 값을 선택적으로 쓰는(혹은 반대로 메모리에 써낸다) 일도 가능하게 된다.



  또, AVX에서는, 명령 인코딩 포맷도 크게 바꾼다.x86(IA-32/Intel 64) 아키텍쳐에서는, 지금까지 명령의 머리에「프리픽스(Prefix)」을 더하는 것으로, 신명령을 실현해 왔다.그러나, 프리픽스에 의해서 명령 포맷은 복잡하게 되어 명령장이 길어졌다.그 결과, CPU측에서의 명령의 페치&프리데코드&디코드 가 어려워져 버렸다.

  거기서, AVX에서는, 보다 효율적으로 장래의 확장도 용이한 명령 인코딩 포맷 시스템「VEX(Vector Extension)」을 도입한다.이것에 의해서, 장래적인 명령 확장이 용이하게 되어, CPU 하드웨어로의 명령의 디코드의 부담도 줄일 수 있다.그 때문에, Intel는 VEX 베이스의 AVX로 어플리케이션을 유도하려고 하고 있다.AVX는 128-bit폭에서도 사용할 수 있는 사양이 되고 있어 128-bit SSE 어플리를 포토 하기 쉬운 만들기가 되고 있다.




●3 패턴이 상정되는 Sandy Bridge의 듀얼 GPU 코어 

 Sandy Bridge의 큰 특징은, GPU 코어가 CPU 다이에 통합된 것.Sandy Bridge의 GPU 코어는, 다이 레이아웃상에서는 꽤 크다.CPU 코어 플러스 L2캐쉬와 비교와 약 2배의 크기가 있다.그러나, 종래의 GMCH(Graphics Memory Controller Hub)의 사이즈로부터 생각하면, 특히 비대화 하고 있는 것은 아니다.원래, GPU 코어는, 동프로세스 환산의 CPU 코어보다 사이즈가 크다.




 Sandy Bridge의 GPU 코어의 내부 아키텍쳐 자체는, 현재의 Intel의 그래픽스 통합 칩 세트와 거의 다르지 않다.DirectX 10세대로, 테셀레이션은 지원하지 않는다.  그러나, 아키텍쳐적으로는 큰 특징이 1개 있다. 그것은 듀얼 GPU 구조가 되어 있는 것이다.구체적으로는 GPU 코어가 1개의 제품과 2개의 제품의 양쪽 모두가 있다.

 Sandy Bridge의 GPU 코어는, 쉐이더프로그램을 실행하는 실행 유닛(Execution Unit:EU)을 12개 갖추고 있다. 현재 알고 있는 범위에서는, 12개의 EU가 6 개씩 1개의 GPU 코어에 포함되어 있다.즉, 1개의 GPU 코어로 6개의 EU를 가지는 제품과 2개의 GPU 코어로 12개의 EU를 가지는 제품이 있다.

 EU 는, SIMD(Single Instruction, Multiple Data) 형의 실행 유닛으로 하드웨어멀티쓰레딩을 서포트한다.Intel는, EU의 수나 동작 주파수, multi-thread수를 늘리는 것으로, GPU 코어의 성능을 올려 왔다.EU의 수는 2007년의 G35계 등에 실려 있던「Intel GMA Series 3」에서는 8개, 2008년의 G45등의「Intel GMA Series 4」로 10개.Sandy Bridge에서는 그것이 12개가 되어, 게다가 2 그룹의 GPU 코어로 나눌 수 있다.

  여기서의 의문은 2개의 GPU 코어가 실제로 어떤 구성이 되어 있어, 어떻게 일하는지다. 상정되는 2 GPU 코어의 구성 방법은, 크고 3개로 나눌 수 있다.

(1)단순하게 풀 기능의 GPU 코어를 2개 갖춘 구성, 
(2) 연산 유닛인 EU부분만큼이, 2 그룹에 분할 가능하고 2개의 프로그램을 병렬하러 달리게 할 수 있는 구성, 
(3) GPU의 스테이지 중 지오메트리파이프라인과 픽셀 쉐이딩은 2개로 분할되고 있지만, ROP(Rendering Output Pipeline)나 스렛드 관리는 공유되고 있는 구성.



●각각 이점이 있는 GPU 코어의 분할 방법 

 3 종류의 방법 가운데, GPU 코어를 2중화하는(1)가 제일 실장이 무겁고, EU의 실행 관리만을 분할하는(2)가 가볍다.ROP는 분할하지 않는(3)는 그 중간이다.

 (1) 2개의 풀 기능의 GPU 코어 구성의 경우는 SLI 좋아하는 구성이 되어, ROP까지 모두를 2중화한다.이 구성은, 코어가 별도의 다이(반도체 본체)로 나누어져 있고, 다른 물리 메모리에 액세스 하는 경우에는 유효하다. 메모리엑세스가 위기인 ROP까지 개별적으로 가지기 때문이다. 그러나, Sandy Bridge의 GPU 코어군과 같이, 같은 물리 메모리를 사용하는 경우에는 의미가 적다. 특히 2 GPU 코어로, 1 화면만을 렌더링 하는 경우에는, 무의미한 로스가 생겨 버린다.

 (3)ROP 이외의 GPU 유닛을 분할하는 방법은, NVIDIA가 Fermi 아키텍쳐의「GF100(GTX 480)」로 채용했다.GF100는, 작은 GPU 코어인「GPC (Graphics Processing Cluster)」을 4개 갖추어 각 GPC는 정점 페치로부터 쉐이더프로세서, 래스터라이저, 테셀레이터 등, GPU의 기본적인 기능은 모두 갖춘다.그러나, ROP와 메모리컨트롤러는 공유가 되고 있어 GPU 전체의 커넬 프로그램의 실행 관리도 일원화 되고 있다.

  이 수법은, 지오메트리파이프라인의 병목현상을 해소하는데 향하고 있다.지오메트리파이프라인의 부담이 무거운 DirectX 11에서는, 특히 유효하다.DirectX 11에 대응하는 AMD도, 「ATI Radeon HD 5800(Cypress)」로 비슷한 수법을 뽑고 있다.그러나, DirectX 11에 대응하지 않는 Sandy Bridge로 의미가 있을지 어떨지는, 의문이다. 무엇보다 지오메트리파이프도 포함한 GPU 구성을 스케이라불에 조정할 수 있는 이점이 있어, 그 점은 Sandy Bridge에서도 의미가 있다.

 (2) EU가 2 그룹에 분할되어 2개의 프로그램을 병렬하러 달리게 할 수 있는 구성은, 가장 단순하다.이것은 GPU의 하나의 트랜드로, 예를 들면, NVIDIA의 Fermi 아키텍쳐에서는 개개의「SM(Streaming Multiprocessor)」이, 콘텍스트를 공유하는 개별의 커넬 프로그램(각각의 사이에 의존성이 없는 경우만)을 달리게 할 수 있다.

  또, Intel의 Larrabee가 되면, 16개의 코어가 각각 다른 콘텍스트를 달리게 할 수 있다.별도의 콘텍스트를 달리게 할 수 있으면, 그래픽스를 출력하고 있는 동안에, 물리 시뮬레이션의 프로그램을 달리게 한다고 했던 것이 가능하게 된다. Intel의 목적이, 통합 GPU 코어의 범용적인 활용에 있다고 하면, 이 수법도 생각할 수 있다.그러나, Intel는 지금까지 통합 GPU 코어에 대해서는 범용 어플리케이션을 달려가게 할 방향으로 진행하면 오지 않았다.

  이러한 사정으로부터, 현시점에서는 Sandy Bridge의 "듀얼 GPU 코어"가 어떠한 사양이 되어 있는지 모른다.
명료한 점은, GPU 코어를 내장하는 Sandy Bridge에서는, 그래픽스 퍼포먼스에서도 차별화가 되고 있는 것이다.
반응형

댓글