'execution unit'에 해당되는 글 2건

  1. 2018.02.19 인텔이 외장형 GPU 프로토 타입 발표 (ISSCC) by 랩터 인터내셔널
  2. 2016.04.22 스카이레이크 내장그래픽 성능, 실행 모델을 변경 by 랩터 인터내셔널

인텔은 AMD에서 Radeon GPU 부문의 수장이였던 Raja Koduri(라자 코두리)를 영입해 Core and Visual Computing Group의 Chief Architect & Senior Vice President로 임명했다. 이 극적인 이적으로 인텔이 디스크 리트 GPU(외장형 GPU)에 진출하는 것 아니냐는 관측이 일부에서 흐르고 있었다. 그런 시점에서 인텔은 미국 샌프란시스코에서 열린 반도체 국제 회의 ISSCC(IEEE International Solid-State Circuits Conference)에서 디스크 리트 GPU의 개발 칩을 발표했다.


이번 개발 칩은 제품으로서 시장에 내놓는 수준은 아니다. 어디까지나 기술 검증을 위한 GPU 칩으로 기존의 인텔 내장 GPU 아키텍처를 바탕으로 IVR(Integrated Voltage Regulator:통합 전압 조정기)를 사용한 전력과 퍼포먼스 제어 기술을 검증한 것이다.


인텔은 과거에도 이런 전력 절약 기능 검증을 위한 GPU 칩을 개발했으며 2014년에도 ISSCC에서 22nnm의 프로토 타입 칩을 발표하고 있다.("5.7 A Graphics Execution Core in 22nm CMOS Featuring Adaptive Clocking, Selective Boosting and State-Retentive Sleep"S. B. Nasir, et al., ISSCC 2014) 하지만 이 프로토 타입 칩은 GPU로서 풀 기능을 갖추고 있고 확장하면 제품으로 만드는 것도 불가능하지 않다.


이번에 개발한  GPU 아키텍처는 최신 Intel Graphics Gen9 세대로 인텔의 표준적인 GPU 코어지만 실장은 LP, 즉 Atom계 CPU 아키텍처 SoC에 혼재된 저전력의 GPU 코어로 구현했으며 스탠더드 셀 라이브러리 등이 PC용과 다른 것으로 보인다. 프로세스는 인텔의 14nm로 10메탈(배선)층, 다이 사이즈는 8×8mm, 1.5B 트랜지스터, 동작 주파수와 전압은 50MHz/0.51V에서 400MHz/1.2V. 트랜지스터 수가 많은 것은 캐시 SRAM을 대량 탑재하고 있기 때문이다.



인텔의 내장 GPU 코어를 기반으로 새로운 설계 도입

인텔의 GPU 코어는 "EU(Execution Unit)"로 불리는 벡터 코어로 구성된다. 1개의 EU는 2개 4-way 벡터 유닛을 탑재한다. FP32(32-bit 부동 소수점 연산) 유닛이 4-way 128-bit 벡터 유닛이다. EU에는 2개 벡터 유닛과 7 멀티 스레드 범용 레지스터(GRF), 브랜치 유닛이 포함된다.


프로토 타입 칩에는 EU가 6개 바인드 된 "Sub-Slice(SS:서브 슬라이스)"를 구성하고 있다. 서브 슬라이스에는 EU 뿐 아니라 텍스쳐 유닛이나 L1/L2 캐시, 스레드 디스패치, 데이터 포트 등이 부속된다.


이번 칩에서 3개의 서브 슬라이스로 1개의 "Slice(슬라이스)"를 구성하고 있는 것으로 보인다. 다이 사진에는 SS0에서 SS2까지 3개의 EU가 보인다. 3개의 EU 서브 슬라이스 가운데 이번 새로운 전력 제어 장치가 장착된 것은 2개. SS1과 SS2가 새 설계의 EU다.


SS0은 비교용으로 종래의 설계. 3개의 SS로 구성되는 슬라이스는 풀 기능의 GPU 코어가 되고 있어 그래픽 고정 함수(FF:Fixed Function)와 명령 스트리머, L3 캐시 등을 내포한다.



02_l.png
03_l.png


테스트 칩은 1슬라이스 구성에서 모두 3개의 서브 슬라이스, 18개의 EU를 탑재한다. 벡터 유닛 내 FP32의 주산 유닛은 합계 144 유닛이다. PC용 인텔 그래픽의 로우 엔드 GT1은 표준 장착으로 96 FP32.


테스트 칩은 주파수가 낮은 LP 구현에서 144 유닛으로 로우 엔드의 PC용 그래픽 수준의 성능과 같다. 또 통상의 GPU 코어에는 동영상 코덱 등을 포함한 멀티미디어 코어가 포함되지만 이번 프로토 타입 칩에 포함되어 있는지는 명기되지 않았다.


ISSCC에서 발표된 GPU 칩에는 GPU 코어만 아니라 제어나 I/O 주변을 포함한 System Agent(SA:시스템 에이전트)가 탑재되어 있다. 메모리 인터페이스는 호스트 측 그 때문인지 SA에 4MB와 풍성한 페이징 캐시도 탑재되고 있다. 호스트 PC는 FPGA 브리지를 경유하여 연결된다. 구성을 보면 실증 실험용 프로토 타입이다.



IVR을 활용한 세밀한 전압/주파수 제어

인텔의 이번 테스트 칩의 최대 특징은 IVR을 사용한 V/F(Voltage/Frequency:전압/주파수) 제어나 파워게이팅을 하고 있는 점이다. 전통적으로 GPU는 CPU와 비교해서 이런 V/F 제어 및 전력 절약 기능이 약하다. 이는 전통적인 그래픽 워크 로드는 고 부하가 일정 기간 이어지거나 아니면 부하가 극히 가볍거나로 치중되기 때문이다. GPU 벤더도 GPU의 전력 제어는 그리 주력하지 않았다.


그러나 인텔은 GPU 코어에 세밀한 전력 제어를 도입하는 것이므로 조건에 따라서는 성능 효율을 향상시킬 수 있음을 실증했다. 전력 절약 제어에 뛰어난 Intel CPU 코어의 노하우를 활용하여 CPU에서 보다 더 나은 전력 제어를 GPU 코어에 적용함으로써 효과가 발휘되는 것을 나타냈다. GPU에 입도가 작은 각종 태스크가 달리게 되면 이러한 전력 제어가 보다 효과를 거둘 것이다.


기본적인 아이디어는 GPU를 세립 블록 단위로 동작 주파수와 전압 제어, 필요한 블록이 최적의 주파수와 전력에서 동작하도록 한다. 그 때 온 다이(On-Die)에 통합한 IVR(통합 전압 조정기)로 고속의 전압 변환을 가능하게 한다. 우상 상태의 블록은 레지스터 등의 SRAM 데이터를 보유할 수 있는 한계의 모관 전압까지 떨어뜨리고 리크 전류를 억제한다. 파워 게이트(PG)는 GPU에 분산된 PG 드라이버를 통해 신뢰성이 높은 웨이크 업 장치로 제어한다.



04_l.png


IVR 도입으로 유닛별 전압 변환이 가능하게

기존의 인텔 설계에서는 GPU 전체에 대해 IVR에서 단일 전압(Vgpu)으로 전력이 공급되고 있었다. 아래 슬라이드 왼쪽의 그림 같은 형태다. 반면 이번 설계에서는 GPU 안의 연산 유닛인 EU와 다른 유닛에는 개별 전압으로 전력이 공급되어 슬라이드 오른쪽 그림과 같이 된다.각각 독립된 IVR이 할당된다.


05_l.png


기존의 경우는 컴퓨트 태스크의 경우 EU의 부담이 커졌으며 그 결과 GPU 전체의 전압이 높게 전이해 클럭은 PLL의 리-록에 따라 고 클럭으로 전환된다. 그때 EU 이외의 유닛은 부하가 낮아도 EU와 해당 전압, 해당 클럭에 밀려 GPU 코어 전체의 소비 전력이 상승한다.


06_l.png


반면 EU와 다른 유닛을 개별적으로 주파수와 전압을 제어할 경우 더 유연하게 된다. EU의 전압만 부하에 맞추어 오르면서 EU의 작동 주파수는 정기 주파수의 2배로 바뀐다. 개별적으로 반응성이 높은 IVR을 장착함으로써 전압의 상승을 단시간에 가능하게 한다.


07_l.png


또 주파수는 두배의 속도로 대체함으로써 PLL의 리-록이 불필요하다. 인텔은 이를 "EU Turbo(EU 터보)"라고 부른다. 기준 클럭을 2x 에서 공급하고 보통시 그 클럭을 절반에 공급, 터보시 본래의 2x 클럭으로 전환한다. 결과적으로 부하에 따라 신속히 응답하는 전압/주파수 변환이 가능하다.


08_l.png


반대로 EU가 단시간의 스톨에 들어갔을 때는 EU 부의 전압을 리텐션 전압으로 떨어뜨리고 클럭 공급을 끊어 슬리프 상태로 만든다. 종래에는 클럭 게이트시 전압을 지울 수 없었지만 ISSCC에서는 EU의 IVR이 독립되기 때문에 EU의 전압을 SRAM이 보유할 수 있는 하한의 전압으로 떨어뜨려 전력을 감소시킨다.


09_l.png


또 EU에 각각 개별적으로 IVR을 설치함으로써 동작할 수 있는 최저 전압 Vmin의 편차를 조정할 수도 있다. 프로세스 자체의 차이만 아니라 온도의 편차도 있지만 IVR에서 동적으로 각 유닛의 Vmin을 조정할 수 있다. 그래서 Vmin을 유닛마다 최저 전압으로 할 수 있다.


10_l.png


2종류의 IVR을 GPU에 통합

이번 개발 칩의 IVR 특징은 2가지의 다른 VR을 통합한 하이브리드 설계를 취한데 있다. 인텔이 이전부터 도입하고 있던 "Switched Capacitor VR(SCVR)" 뿐 아니라 "Digitally Controlled Low Dropout(DLDO)"을 병용하고 있다. 2종류의 IVR에 의해 폭넓은 전압 범위로 높은 전압 변환 효율을 실현한다.


11_l.png


입출력 간 전위차가 작은 경우에 유효한 DLDO를 통상의 동작시에 사용. 1.15V의 입력 전압(Vin)에 0.785V~1.11V 정도의 출력 전압(Vout). 세립 제어는 DLDO를 바탕으로 한다. MIM 캐패시터를 내장하는 SCVR은 출력 전압이 0.3V~0.7V로 낮은 경우에 사용한다. 입력에 대한 출력의 전위가 3:2,2:1,3:1의 비율.


12_l.png


EU 내부에는 SCVR이 6타일 배치되고 있다. 그리고 DLDO는 EU의 중앙에 척수처럼 컨트롤러가 배치되고 DLDO로 제어되는 파워 게이트(PG)가 EU 전체에 체스판 패턴으로 배치되고 있다. 1400 이상의 PG 배치라고 한다.


13_l.png
14_l.png


신설계의 12 EU에 대해서 EU의 워크 로드 점유율이 54%인 경우 EU 터보의 성능 향상은 최대 40%, 평균 37%가 된다. 100%의 EU 점유율시 EU 터보에 의해 베이스 라인보다 최대 32%, 평균 29%의 전력 저감이 가능하다. 또 EU 터보를 사용하고 EU의 동작 주파수를 향상시키면서 일부 EU을 파워 게이트함으로써 전력 저감 및 성능 향상을 실현한다.


15_l.png
16_l.png
17_l.png


이번에 인텔이 발표한 프로토 타입 GPU는 제품화로 가려는 레벨은 아니다. 그러나 인텔의 프로세서에 대한 전력 제어 설계의 방향성이 보이는 점은 흥미롭다.


인텔은 IVR 실장에 계속하고 진지하게 임하고 있어 Haswell 세대보다 앞선 설계를 시도하고 있다. 그것도 CPU 뿐 아니라 GPU 코어에도 적용하고 있다. 인텔의 전력 제어는 실은 인텔의 보이지 않는 강점이며 AMD가 쫓아오고 있는 부분이기도 하다. 향후 진화가 주목된다.


출처 - https://pc.watch.impress.co.jp/docs/column/kaigai/1107078.html

반응형
Posted by 랩터 인터내셔널

거대화되는 인텔의 GPU코어

인텔은 스카이레이크에서 CPU코어를 확장했다. 스카이레이크의 다이(반도체 본체)을 같은 14nm공정의 브로드웰과 비교하면 CPU코어 자체의 사이즈는 스카이레이크에서 많이 커지고 있음을 잘 알수 있다. 그러나 스카이레이크 세대에서도 CPU의 다이 위에 큰 면적을 취하는 것은 GPU코어다.

      

05_s.jpg
왼쪽은 4+2(4 CPU코어+GT2 GPU코어)의 스카이레이크 다이. 오른쪽은 2+2(2 CPU코어+GT2 GPU코어)의 브로드웰 다이


인텔, AMD도 현재는 GPU 코어를 강화하는 길로 가고 있다. 스카이레이크 세대에선 72 EU(execution unit)/576개의 유닛을 갖춘 거대 GPU코어 GT4 버전도 등장한다. 스카이레이크 세대에서 드디어 인텔의 GPU 코어 피크 연산 성능은 1TFLOPS를 넘어선다. 아래는 각 세대의 인텔 그래픽의 최대 구성 코어의 연산 유닛 구성도다. 샌디브릿지 세대부터 5세대까지 인텔의 그래픽이 거대해진 것으로 나타난다.

    

03_s.jpg
인텔 그래픽의 각 세대 최대 구성 코어의 연산 유닛 수와 구성
08_s.jpg
09_s.jpg
인텔 그래픽 각 세대의 최대 구성 코어 연산 유닛 수와 구성


CPU 제조 업체가 GPU 코어를 확장하는 큰 이유는 전력의 제약 속에서 성능을 높여야 하기 때문이다. 원래 CPU 코어의 시리얼 실행 성능을 전력 효율적으로 끌어올리기는 어렵다. 그러나 단순히 CPU 코어 수를 많이 늘리면 칩에서 동시에 켤 수 없는 다크 실리콘 지역이 커진다. 이들 문제를 해결하려면 CPU의 오프 로드보다 성능과 전력 효율이 좋은 코어를 탑재하는 것이다. 그래서 CPU 제조 업체는 GPU 코어의 강화에 힘쓰고 있다.


다른 하나의 요인은 GPU 코어를 대형화 할 경우 병목이 되는 메모리 대역 문제가 해결되고 있는 것이다. 인텔은 메모리 대역을 소비하는 GPU 코어에 데이터를 이송하기 때문에 Haswell세대에서 eDRAM을 CPU 패키지에 넣어 대역을 올렸다. 스카이레이크는 이 솔루션을 확장한다. 또 인텔은 JEDEC(반도체 표준화 단체)에서 광대역 메모리 규격 HBM(High Bandwidth Memory)의 책정으로 활동하고 있어 장기적으로는 더욱 광대역의 메모리를 CPU에 접속할 수 있게 될 전망이다.



 

14_s.jpg
15_s.jpg


더 작아진 스카이레이크의 연산 유닛

GPU 유닛의 다이(반도체 본체)지역을 보면 브로드웰 GT2보다 스카이레이크 GT2가 13% 정도 크다. 같은 GT2의 GPU 코어에서도 스카이레이크가 비대하다. 그런데 GPU 코어의 속을 들여다보면 GPU의 프로세서 코어가 대형화 된 것은 아니다. 대형화 된 것은 미디어 엔진 등의 부분이 더 많은 프로그래머블 프로세서로서 GPU코어 부분은 대형화되지 않았다.


     

06_s.jpg
스카이레이크와 브로드웰의 GPU 유닛 다이 비교


인텔 GPU코어에서 연산 프로세서로 레지스터 부분인 EU(execution unit)는 특징적인 패턴으로 다이상에서 쉽게 알아볼 수 있다. GPU코어에서 8개의 같은 형태의 유닛이 나란히 되어 있는 부분이 EU의 블록이다. EU 블럭에 묶여 있는 것이 텍스처 샘플러 및 캐시 등의 블록인 것으로 보인다.


인텔은 물리적 설계상에서도 각 유닛을 제대로 설계하여 거의 같은 물리 설계 블록을 복수로 늘어 놓는 것으로 슬라이스의 구성을 늘릴 수 있도록 하고 있다. 스카이레이크 GPU 코어 중 EU를 포함한 왼쪽 부분이 슬라이스라고 추측된다. 

 

명료하게 식별할 수 있는 8개의 EU 블록을 비교하면 스카이레이크와 브로드웰의 크기가 다름을 알 수 있다. 스카이레이크의 EU는 브로드웰의 EU에서 84% 정도로 축소된다. 기능적으로는 동등한 유닛이 이처럼 축소되면서 스카이레이크는 아키텍처적으로 개량이 가해진 것이 시사되고 있다. 실제 인텔은 스카이레이크로 GPU 코어의 실행 모드에 근본적인 변경이 가해진 것을 설명하고 있다. 아키텍처를 실제에 확인하면 이 부근의 배경이 보인다.

 

브로드웰 세대와 크게 다르지 않는 GPU 코어의 구성

스카이레이크 GPU 코어의 3D 그래픽 엔진 부분의 매크로 레벨에서의 마이크로 아키텍처는 사실 브로드웰 세대와 크게 다르지 않다. 전체 구성에서 본다면 특히 스카이레이크 세대에서 진화하지 않았다고 오해 될 정도다. 그 만큼 브로드웰과 스카이레이크의 GPU 코어의 구성은 비슷하다. 그러나 후술 하는 것처럼 내용은 크게 다르다.

 

인텔은 GPU 코어를 블록화하고 있다. 우선 크게 나누면 GPU 코어 전체에서 공유하는 언 슬라이스(Un-Slice)와 미디어 엔진군, GPU코어에서 확장이 가능한 병렬화하는 "슬라이스(Slice)"로 구분된다. 슬라이스 부분을 늘림으로써 GPU 코어의 규모를 대형화하는 구조다.



 

10_s.jpg
GPU 코어를 블록화


인텔 그래픽 연산 코어 EU(execution unit)는 내부 합계 8개의 32-bit 단 정밀도 부동 소수점적 주산 유닛을 갖춘다. 브로드웰 세대까지는 32-bit 단 정밀도로 4-way 유닛이 2개의 구성으로 되어 있었다. 이 기본은 스카이레이크도 변하지 않는 모양이다. 인텔 GPU의 EU는 원래 4-way의 단 정밀도적 주산 유닛과 슈퍼 펑션 유닛의 구성으로 슈퍼 펑션 유닛이 4-way의 주산 유닛으로서 사용할 수 있게 된 바 있다.

    

04_s.jpg
스카이레이크로 기본이 되는 GT2 구성의 GPU코어


8개의 연산 유닛을 갖춘 EU는 또 8개씩 세트로 서브 슬라이스를 구성하고 있다. 슬라이스에는 8개의 EU 외에 텍스처 페치&필터링 유닛 Texture Sampler/Media Sampler와 L1/L2 캐시가 포함되어 있다. 말하자면 서브 슬라이스가 미니 프로세서적인 구조다. EU와 텍스처 유닛의 비율은 8대 1이 되므로 이는 스카이레이크의 GT2/GT3/GT4코어에서 공통이다. 즉, 연산과 텍스처의 비율은 GPU의 규모에 관계 없이 고정되어 있다.

 

     

12_s.jpg
서브 슬라이스의 구성


슬라이스 단위로 스케일 업 하는 모듈러 아키텍처

서브 슬라이스는 3개가 한세트로 슬라이스를 구성한다. 슬라이스에는 서브 슬라이스 외에 픽셀 백엔드와 L3캐시 등이 부속된다. 이들은 슬라이스 커먼으로 불린다. GPU의 하류 처리에 필요한 블록을 모두 정리한 것이 슬라이스다.

 

    

13_s.jpg
스카이레이크 세대의 슬라이스 커먼


스카이레이크에서는 슬라이스의 픽셀 아웃풋은 8pixel/clk를 이루고 있어 각 클럭마다 8개의 픽셀 서두가 있다. 슬라이스의 EU수는 정해졌기 때문에 연산에 대한 픽셀 출력의 비율도 고정되어 있다. 픽셀 백엔드 필 레이트는 브로드웰 세대와 비교해 1.33배~2배로 개선됐다고 인텔은 설명했다.

 

슬라이스는 GPU 처리중 연산, 텍스처, 픽셀 백엔드를 담당한다. 이들 처리는 슬라이스로 확장 가능하게 늘릴 수 있는 아키텍처다. 반면 GPU을 제어하는 명령 프로세서나 지오 메트리/래스터 라이즈의 고정 기능 유닛은 언 슬라이스로 슬라이스로부터 독립하고 있다. 이들 언 슬라이스 유닛은 GPU전체에서 공유한다.



 

11_s.jpg
스카이레이크 GPU의 언 슬라이스


NVIDIA나 AMD의 디스크 리트(외장) GPU는 인텔의 언 슬라이스로 해당되는 지오 메트리 파이프 등의 고정 기능 유닛도 다수 갖춘다. NVIDIA나 AMD의 지오 메트리 고정 기능 유닛은 인텔의 슬라이스인 GPU 유닛에 부속되어 있다. 지오 메트리 처리 확장성을 추구했기 때문이며 인텔 그래픽은 현재 이런 아키텍처는 취하지 않는, 즉 지오 메트리가 병목이 되지 않다고 보는듯 하다.

 

GPU 전체에서 공유하는 유닛에는 언 슬라이스 지오 메트리 유닛 이외에 미디어 프로세싱 유닛이 있다. 비디오 코덱 Multi-Format Codec(MFX), 비디오 품질 처리 Video Quality Engine(VQE), 스케일러 & 포맷 변환기 Scaler and Format Converter(SFC) 등이다. 또, 디스플레이 엔진이 시스템 에이전트 측에 구비되어 있다.

 

여기까지 보면 스카이레이크 GPU 코어의 기본 부분은 브로드웰 세대와 다름없어 보이는데 실제로는 소프트웨어 실행 모델에서 스카이레이크는 크게 달라졌다.

 

벡터 프로세서의 2가지 실행 모델

기존의 인텔 그래픽의 큰 특징은 2가지의 다른 실행 모델을 실행할 수 있음에 있었다. 그러나 스카이레이크의 GPU 코어는 스칼라형 1종류의 실행 모델로 집약된다. 실행 모델은 GPU 프로세서의 근간이며 스카이레이크 GPU 코어는 근본적인 실행 아키텍처가 변경된 것이다.

 

GPU는 벡터 프로세서지만 그 실행 모델은 크게 2종류가 있다. 하나는 Array of Structures(AOS) 또는 팩드(Packed)라 불리는 방식. 다른 하나는 Structure of Arrays(SOA) 또는 스칼라(Scalar)라 불리는 방식이다.


AOS/Packed 형은 데이터를 일정 수준의 포장된 형태로 처리한다. SOA/Scalar형은 마치 일련의 처리를 여러개 묶은 형태로 처리한다. 인텔 CPU가 내장한 기존의 짧은 벡터 유닛 SSE/AVX는 기본적으로는 AOS/Packed형 실행 모델이다. 반면 현재의 NVIDIA나 AMD의 GPU는 SOA/Scalar형 실행 모델로 특화 되어 있다.


 

01_s.jpg
16개의 연산 유닛을 AOS와 SOA 각 실행 모델로 작동시켰을 경우의 예


전통적인 GPU는 기존 SSE/AVX 같은 AOS/Packed형 모델이었으나 NVIDIA가 GeForce 8800(G80)에서 SOA/Scalar형 모델로 전환한 것을 시작으로 점차 SOA/Scalar형으로 바뀌어 갔다.


AMD는 GCN(Graphics Core Next)의 이행에서 SOA/Scalar형으로 바뀌고 Imagination Technologies는 PowerVR Series6(Rogue)에서 SOA/Scalar형으로 바뀌었다.


AOS/Packed형 모델과 SOA/Scalar형 모델에는 각각 장점과 단점이 있다. 대충 말하면 데이터가 3~4개 등 정해진 수의 팩에 포장되어 있는 경우는 AOS/Packed형이 효율이 좋다. 그러나 데이터 타입이 다양한 경우는 SOA/Scalar형이 유연하게 대응하기 쉽다. 그래서 여러 종류의 데이터를 취급하는 GPU 컴퓨팅에서는 SOA/Scalar형이 유리하다. 다만 16-bit와 8-bit 같은 보다 작은 데이터를 취급하는 경우는 AOS/Packed형에서 그룹 분할하는 편이 효율을 올리기 쉽다.

 

스카이레이크로 송두리째 바뀐 실행 모델

실행 모델 전환은 GPU 아키텍처 근간의 변경이다. 보통 AOS/Packed형 모델의 프로세서는 SOA/Scalar형 모델을 지원하지 않는다. 그 반대로 SOA/Scalar형 모델의 프로세서는 기본적으로는 AOS/Packed형 모델을 지원하지 않는다. 그래서 어느 실행 모델을 취할지는 백터 프로세서 아키텍처의 큰 차이점이다.

 

그런데 인텔은 달랐다. 인텔 그래픽은 그동안 AOS/Packed형과 SOA/Scalar형 모델 모두 지원해 왔다. 이는 GPU로서는 이례적인 아키텍처로 인텔 그래픽의 큰 특징이었다. 그리고 역시 AOS/Packed형과 SOA/Scalar형 두 모델을 지원하는 프로세서에 인텔의 라라비(Larrabee) 프로젝트가 있었다. 인텔은 AOS/Packed와 SOA/Scalar의 양쪽을 지원하는 것을 중시한 것으로 보인다.



 

16_s.jpg
라라비의 AOS와 SOA 설명 슬라이드


그러나 스카이레이크는 이 아키텍처가 근본부터 바뀌었다. 스카이레이크의 그래픽 실행 모델에 대해서는 IDF에서 다음과 같이 설명했다.


"기존 EU는 짧은 벡터 모드(AOS/Packed형)와 순수 스칼라(SOA/Scalar형)모드 양쪽을 지원하고 있었다. 2계통 모드에서 SIMD4 x2, SIMD1 x8, SIMD1 x16, SIMD1 x32 등 다양한 포맷이 있었다. 그래픽 스코어 처리중 지오 메트리 처리는 짧은 벡터 모드를 쓰고 있었다. 픽셀 프로세싱과 GPGPU는 순수 스칼라 모드를 사용했다. 몇몇 미디어 프로세싱도 스칼라 방식이었다. 그러나 스카이레이크는 모든 것에 대해서 항상 스칼라 모드를 사용하게 되었다. 그래서 컴파일러 스택도 스카이레이크에서 완전히 변했다"

 

SIMD4 x2는 4-way의 AOS/Packed형 실행 모델에서 4개의 요소를 팩화하고 동시에 처리하는 것으로 4-way 팩 2개를 한 덩어리로 실행한다. SSE와 비슷한 실행 모델로 바꾸어 말할 수 있다. SIMD1 x8과 SIMD1 x16은 SOA/Scalar형 실행 모델로 하나의 요소를 Scalar형으로 실행하며 이를 8개 또는 16개씩 묶는 것이다. 현재 PC용 GPU의 주류 모드다.

 

인텔 그래픽은 이처럼 AOS/Packed형과 SOA/Scalar형 2개의 실행 모델에서 각각 여러 실행 포맷을 갖고, 각각 필요한 처리 사이클도 달라 벡터 폭도 달라진다는 복잡한 구조였다. 스카이레이크에서는 이 실행 모델이 뿌리채 바뀌어 NVIDIA나 AMD의 GPU와 비슷한 SOA/Scalar형 뿐이다.

 

실행 모델을 바꾸는 중요한 요소는 무엇인가? 인텔은 간소화와 효율화를 달성한 것이라고 설명한다. 종래에는 인텔 그래픽 하드웨어도 두 실행 모델에 대응하는 내부 아키텍처를 취했다. 이는 GPU 하드웨어를 복잡하게 만들 뿐 아니라 드라이버도 복잡화시켰다고 본다. 스카이레이크의 SOA/Scalar형으로의 전환은 인텔 GPU 코어의 제어 및 소프트웨어층의 간소화를 가져온 것이다. 그러고 보면 스카이레이크에 EU 블럭이 축소된 이유도 보인다.

 

SOA/Scalar형 실행 모델은 통상적으로 GPU 컴퓨팅 같은 사용에 적합하다고 말한다. AOS/Packed형은 기존의 GPU와 미디어 프로세서를 이끌었던 모델이다. 이번 스카이레이크 GPU 코어의 개혁은 GPU 코어를 더 범용적인 GPU 컴퓨팅에 적합한 설계로 바꾸었다고도 할 수 있다.

 


출처 - http://pc.watch.impress.co.jp/docs/column/kaigai/20151022_726778.html

반응형
Posted by 랩터 인터내셔널