인텔의 GPU 연구 개발 중 하나
인텔이 ISSCC에서 발표한 테스트 칩 GPU의 개요
인텔이 외장 그래픽 GPU의 프로토타입을 발표했습니다. 인텔은 AMD 라데온 GPU 부문의 수장이었던 라자 코두리를 데려와 Core and Visual Computing Group의 Chief Architect 겸 Senior Vice President에 앉혔습니다. 이런 극적인 영입 때문에 인텔이 외장 그래픽 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 "SB Nasir, et al., ISSCC 2014). 하지만 이번 프로토타입 칩은 GPU로서 완벽한 기능을 갖추고있어 상품화가 불가능하지 않습니다.
이번 프로토타입 GPU 아키텍처는 인텔의 최신 그래픽인 9세대에 인텔의 표준 GPU 코어 그 자체입니다. 그러나 구현 방식은 저전력, 즉 아톰 계열 CPU 아키텍처 SoC에 들어가는 저전력 GPU 코어로, 표준 셀 라이브러리가 PC용과 다르다고 합니다.
제조 공정은 인텔 10nm에 10배선 층입니다. 다이 크기는 8×8mm, 15억 개의 트랜지스터. 동작 클럭과 전압은 50MHz/0.51V부터 400MHz/1.2V까지. 트랜지스터 수가 많은 건 캐시 SRAM을 대량으로 탑재했기 때문입니다.
인텔의 내장 GPU 코어를 기반으로 새로운 디자인을 도입
인텔의 GPU 코어는 EU(Execution Unit)라는 벡터 코어로 구성됩니다. 1개의 EU는 2개의 4-way 벡터 유닛을 탑재합니다. FP32(32비트 부동소수점 연산) 4웨이 128비트 벡터 유닛입니다. EU는 2개의 벡터 유닛과 7개의 멀티 스레드 범용 레지스터(GRF) 명령 페처, 분기 장치가 포함됩니다.
프로토타입 칩은 EU 6개를 묶어 서브 슬라이스를 구성합니다. 서브 슬라이스는 EU뿐만 아니라 샘플러(텍스처 유닛) 및 L1/L2 캐시, 스레드 디스패처, 데이터 포트 등이 포함됩니다.
이번 칩은 3개의 서브 슬라이스가 1개의 Slice를 구성하는 것으로 보입니다. 다이 사진에선 SS0에서 SS2까지 3개의 EU가 보입니다. 3개의 EU의 서브 슬라이스 중 새로운 전력 제어 메커니즘이 구현된 것은 2개입니다. SS1과 SS2가 새로운 디자인의 EU입니다.
SS0는 비교를 위해 기존 방식대로 설계됐습니다. 3개의 SS로 구성된 Slice는 완전한 기능의 GPU 코어로, 그래픽 고정 기능 (FF : Fixed Function)와 명령 스트리머, L3 캐시 등을 포함합니다.
프로토 타입 칩
인텔 GPU 아키텍처의 예시
테스트 칩은 1개의 슬라이스에 총 3개의 서브 슬라이드, 18개의 eU가 탑재됩니다. 벡터 유닛인 FP32(32비트 부동 소수점 연산)의 유닛은 총 144개가 나옵니다. PC용 인텔 그래픽 중 보급형인 GT1은 96 FP32 유닛이 있습니다.
테스츠 칩은 클럭이 낮은 LP 공정에 144개의 유닛이 있으니 기존의 보급형 내장 그래픽 수준의 성능이라고 해도 될 겁니다. 또 일반적인 GPU 코어는 동영상 코덱을 비롯해 멀티미디어 코어가 포함되지만 이번 프로토타입 칩에도 들어 있는지는 정확하지 않습니다.
ISSCC에서 발표된 GPU 칩은 GPU 코어뿐만 아니라 제어 시스템과 I/O 버스를 포함한 시스템 에이전트가 탑재됩니다. 메모리 인터페이스는 호스트 측에 있습니다. 그래서 시스템 에이전트에 4MB의 대용량 페이징 캐시도 탑재됩니다. 호스트 PC는 FPGA 브릿지를 통해 연결됩니다. 이런 구성은 실증 실험용 프로토타입에 알맞습니다.
IVR을 활용한 상세한 전압/클럭 제어
인텔의 이번 테스트 칩에서 가장 큰 특징은 IVR을 이용해 상세한 V/F(Voltage / Frequency : 전압 / 클럭) 제어와 파워 게이팅을 수행한다는 점입니다. 전통적으로 GPU의 V/F 제어와 절전 기능은 CPU보다 약했습니다. 전통적인 그래픽 작업은 높은 부하가 일정 기간 계속되거나 아예 부하가 매우 가벼운 경우가 많았기 때문입니다. GPU 제조사도 GPU의 전력 제어에는 크게 신경쓰지 않았습니다.
그러나 인텔은 GPU 코어에 상세한 전력 제어를 도입해 성능 효율을 향상시킬 수 있음을 입증했습니다. 전력 제어에 뛰어난 인텔 CPU 코어의 노하우를 살려 CPU보다 더욱 선진적인 전력 제어를 GPU 코어에 도입해 어떤 효과가 나오는지를 보여주었습니다. GPU에서 크기가 작은 다양한 작업을 실행하면 이런 전력 제어의 효과가 더 커질 것입니다.
기본적인 아이디어는 GPU를 작은 블럭 단위로 나눠, 각각의 블럭이 최적의 클럭과 전력으로 작동하도록 하는 것입니다. 온칩(On-Die)에 통합된 IVR(통합 전압 레귤레이터)은 빠른 전압 전환을 가능하게 해줍니다. 아이들 상태의 블럭은 레지스터 등의 SRAM 데이터를 저장이 가능한 한계의 보존 전압까지 떨어트려 누설 전류를 억제합니다. 파워 게이트(PG)는 GPU에 분산된 PG 드라이버를 통해 웨이크 업 유닛이 안정적으로 제어합니다.
GPU 클럭/전압의 동적 제어와 슬립 파워 게이팅 제어의 개념도
IVR의 도입으로 유닛 단위 전압 전환이 가능
기존의 인텔 설계에서는 모든 GPU를 대상으로 IVR가 하나의 전압(Vgpu)으로 전력을 공급했습니다. 아래 슬라이드 왼쪽 그림에 나온대로입니다. 반면 이번 설계에서는 GPU의 연산 유닛인 EU와 주변 장치가 다른 전압으로 전력이 공급됩니다. 슬라이드의 오른쪽 그림대로요. 제각각 독립된 IVR이 할당됩니다.
새로운 설계의 전력 공급의 개념도
기존의 구현에선 컴퓨팅 집중 작업일때 EU의 부하가 높아져, GPU 전체의 전압이 올라가고 전환 클럭도 PLL의 클럭을 높게 잡습니다. 이때 EU 외에 다른 장치는 사용 부하가 낮아도 EU와 같은 전압과 클럭이 들어가 GPU 코어 전체의 소비 전력이 늘어나게 됩니다.
기존의 컴퓨팅 작업에서 전압과 클럭의 변화
반면 EU와 다른 유닛에 공급되는 클럭과 전압을 따로 제어하는 경우 보다 유연한 설정이 가능해집니다. EU의 작동 부하가 늘어난 만큼 EU의 전압만 늘리고 클럭을 2배로 높입니다. 개별적으로 응답성이 뛰어난 IVR을 구현해 전압을 단시간에 높이는 것이 가능해집니다.
ISSCC에서 발표된 독립적인 전압/클럭 변환 개념도
또 클럭은 배속으로 전환하며 PLL의 클럭을 재설정합니다. 인텔은 이를 EU 터보라 부릅니다. 베이스 클럭을 2x로 공급하고, 평소엔 그 클럭을 절반으로 낮춥니다. 터보 상태에선 원래대로인 2배로 바꿉니다. 결과적으로 사용량이 높고 낮음에 따라 신속하게 전압/클럭 전환이 가능합니다.
EU에 터보 클럭 공급
반대로 EU가 짧은 시간 동안 아이들 상태에 들어갔을 때는 EU의 전압을 낮추고 클럭 공급을 중지합니다. 기존에는 클럭 게이티할 때 전압을 낮추지 못했으나, ISSCC에서 나온 구현 방법에선 EU의 IR이 따로 독립되면서 SRAM의 데이터가 유지되는 하한선까지 EU의 전압을 낮춰 전력을 절감할 수 있습니다.
Retentive Sleep
또 EU마다 따로 IVR을 넣어 작동 최저 전압인 Vmin의 차이를 조정할 수도 있습니다. 프로세스 자체의 변화 뿐만 아니라 온도에 따른 차이도 있는데, IVR에서 동적으로 각각의 유닛마다 Vmin을 조정할 수 있습니다. Vmin을 단위로 최소 전압으로 구동 가능합니다.
블럭 단위의 Vmin 조정
2종류의 IVR을 GPU에 통합
이번 프로토타입 칩의 IVR은 2가지 VR을 통합한 하이브리드 설계를 사용했다는 특징이 있습니다. 인텔은 기존의 Switched Capacitor VR(SCVR) 뿐만 아니라 Digitally Controlled Low Dropout (DLDO)를 함게 사용합니다. 2종류의 IVR을 통해 다양한 전압 범위에서 높은 전압 변환 효율을 실현합니다.
DLDO과 SCVR의 두가지 IVR을 사용한 하이브리드 설계
정상 작동시엔 입출력 사이의 전위차가 작을때 효율이 좋은 DLDO를 씁니다. 1.15V의 입력 전압(Vin) 대비 0.785V ~ 1.11V 정도의 출력 전압(Vout)이 여기에 해당됩니다. MIM 캐패시터를 내장하는 SCVR은 출력 전압이 0.3V ~ 0.7V 낮은 경우에 사용합니다. 입력 대비 출력 비율이 3:2, 2:1, 3:1일때 씁니다.
DLDO와 DCVR의 두가지 IVR의 전력 효율
EU 내부에서는 SCVR를 6타일 배치했습니다. DLDO는 EU 중앙에 척추처럼 컨트롤러를 배치, DLDO로 제어되는 파워 게이트 (PG)가 EU 전체에 바둑판 모양처럼 배치됩니다. 1400개 이상의 PG가 배치됩니다.
DLDO 통합
새로운 디자인의 EU 12개는 EU 워크로드 점유율이 54%일 때 EU 터보 성능 향상은 최대 40%, 평균 37%가 됩니다. 점유율이 100%일 땐 EU 터보로 최대 32%, 평균 29%의 에너지 절감이 가능합니다. 또 EU 터보를 사용해 EU의 클럭을 높이면서 일부 EU를 파워 게이트함으로서 전력 절감과 성능 향상을 실현할 수 있습니다.
EU 터보의 성능 향상
EU 터보의 전력 절감
EU 터보와 게이팅 조합
이번에 인텔이 발표한 프로토타입 GPU는 상품화 수준은 아닙니다. 그러나 인텔 프로세서의 전력 제어 설계가 어떤 방향으로 가는지를 알 수 있다는 점에서 승미롭습니다.
인텔은 IVR 구현을 계속 시도하고 있으며, 하스웰 세대보다 발전된 디자인을 내놓았습니다. 그것도 CPU 뿐만 아니라 GPU에도 넣으려 합니다. 인텔의 절전 제어 기술은 드러나지 않은 장점이며, AMD가 빠르게 추격하는 부분이기도 합니다.