고성능 GPU와 동급. 자비에르(Xavier) SoC
NVIDIA의 차세대 SoC(System on a Chip)인 자비에르(Xavier)가 보이기 시작했습니다. 자비에르는 덴버를 개선한 CPU 코어와 차세대 GPU 아키텍처인 볼타(Volta) 코어를 탑재합니다. 자비에르는 차세대 차량용 컴퓨터의 SoC로 매우 높은 성능을 자랑합니다. 연산 성능으로 보자면 볼타가 기존의 NVIDIA GPU와 달리 딥 러닝에 더 최적화된 아키텍처가 될 가능성도 있습니다.
딥 러닝에 의한 AI에 집중하는 NVIDIA
NVIDIA는 도쿄에서 개최된 기술 컨퍼런스 GTC JAPAN 2016의 기조 연설에서 자비에르를 소개했습니다. 자비에르 자체는 지난주에 열린 GTC Europe 2016에서 발표됐습니다. 자비에르는 기존의 테그라 계열과 마찬가지로 ARM CPU 코어 기반 SoC입니다. 그러나 지금까지의 테그라가 하이엔드 GPU에 비해 작은 코어였던 반면, 자비에르는 상당한 대형 다이의 SoC가 될 것으로 보입니다.
테그라는 원래 모바일 SoC로 시작됐으나 NVIDIA의 목표가 모바일에서 자동차로 바뀌면서 지금은 자동차 컴퓨터 칩의 분위기가 더 강해졌습니다. 그러나 현재의 SoC인 파커(Parker)도 전체 구성은 하이엔드 모바일 SoC와 그리 크게 다르진 않습니다. 허나 자비에르는 NVIDIA가 자동차 AI 슈퍼 컴퓨터라고 부를 정도로 매우 강력한 SoC입니다.
70 억 트랜지스터의 SoC인 자비에르
GTC Japan의 기조 연설에서 NVIDIA의 Jen-Hsun Huang(젠슨 황. Co-founder, President and CEO, NVIDIA)는 자비에르가 70억 개의 트랜지스터를 탑재한다고 밝혔습니다. 70억 개라는 트랜지스터는 NVIDIA의 GPU 중 지포스 GTX 1080(GP104)"의 72억에 필적하는 숫자로, 고성능 GPU 클래스의 트랜지스터가 됩니다. SoC와 비교하자면 애플 아이폰 7에 탑재된 애플 A10 퓨전이 33억개니 2배 이상입니다.
NVIDIA의 Jen-Hsun Huang(젠슨 황. Co-founder, President and CEO, NVIDIA)
자비에르는 16nm 공정으로 제조됩니다. 같은 16nm 공정 노드에서 제조되는 GP104의 다이는 314제곱mm, A10의 다이는 125제곱mm니 자비에르의 다이가 250제곱mm 이상이 될 가능성이 높습니다. 모바일 및 임베디드 용 SoC는 기존에 100제곱mm 이하의 다이 크기가 일반적이며, 애플의 A10이 100제곱mm 이상 크기의 칩은 제한됩니다. NVIDIA도 모바일을 주요 목표로 했던 테그라 4까지는 다이 크기를 80제곱mm로 억제했으나, 자비에르는 자동차 시장에서 고성능 프로세서의 수요에 대응하기 위해 다이를 크게 키운 것으로 보입니다.
덴버 CPU 코어를 진화시킨 커스텀 코어
자비에르는 8개의 커스텀 ARMv8 CPU 코어, 512 코어 V볼터 GPU 코어를 탑재합니다. 또한 듀얼 8K HDR 지원 비디오 프로세서, 새로운 디자인의 컴퓨터 비전 가속기를 탑재합니다. 성능은 딥 러닝의 추론(inference)에서 많이 쓰이는 INT8 오퍼레이션에 20 TOPS(trillion operations per second)고, CPU 정수 연산에서는 160 SPECINT가 나옵니다.
1개의 칩에 2개의 SoC와 2개의 GPU를 탑재한 덴버 PX2와 같거나 그 이상의 성능으로, 딥 러닝에서 20TOPS의 성능을 내는 자비에르
NVIDIA는 자체 마이크로 아키텍처인 ARMv8 CPU 코어 덴버를 갖고 있습니다. 덴버는 테그라 K1(로간) 64비트 버전에 탑재된 최신 테그라로, 파커에도 내장된 바 있습니다. 테그라 K1은 듀얼코어, 파커는 덴버 듀얼코어에 Cortex-A57 4코어의 멀티 코어 구성입니다. ARM의 big.LITTLE과 비슷하게 고성능 덴버와 저전력 코어의 결합입니다. 파커의 덴버 코어는 마이크로 아키텍처로 봤을 때 초기 덴버와 거의 같으나, 덴버의 큰 특징인 동적 최적화가 대폭 강화됐다고 합니다.
자비에르 CPU 코어도 덴버 코어라고 합니다. NVIDIA 관계자에 의하면 "덴버는 우리가 개발한 최초의 ARM 코어입니다. 자비에르 CPU 코어는 이를 따르는 CPU 코어지요. 그러나 단순히 덴버를 재사용한 게 아니라 많은 새 기능이 추가됐습니다. 덴버의 확장보다는 진화라고 봐야 하는 CPU 코어입니다."라고 합니다.
8코어라는 숫자를 보아하면 자비에르가 고성능 코어와 저전력 코어를 함께 구성했을 가능성이 높습니다. SPECINT 값을 보면 나름대로 고성능에 맞춘 구성일 듯 합니다.
딥 러닝 성능이 비정상적으로 높은 자비에르
자비에르의 가장 큰 비밀은 딥 러닝 관련 성능인데, 이게 비정상적으로 높습니다. 딥 러닝은 크게 신경망 모델을 구축하는 훈련(training) 단계와, 그 결과를 인식하는 추론(inference) 단계가 있습니다. 훈련은 데이터센터에서 주로 처리하지만 추론은 단말기에서 수행하기에 전력 사용량에 제약이 걸립니다. 따라서 추론 단계의 데이터를 줄이기 위해 현재는 INT8을 쓰는 추세입니다.
NVIDIA는이 흐름에 맞춰 추론 단계의 GPU에 INT8 특수 파이프 라인을 통합했습니다. 구체적으로는 테슬라 P4(파스칼 GP104)에 새로운 명령인 dp4a를 통합했습니다(상위 모델인 테슬라 P40-파스칼 GP102에도 포함). 이는 8비트 벡터 연산 명령입니다.
새로운 테슬라 p4/40은 INT8 가속이 더해졌습니다.
NVIDIA의 GPU 레지스터는 32비트로 8비트 정수 데이터가 4개 포함됩니다. 두 레지스터가 4개씩 8비트 정수를 곱하고 그 결과에 INT32(32비트 정수)를 더하며 레지스터 값도 더합니다. 하나의 명령에 4x 4+로 총 8개의 연산을 수행하는 8연산/사이클 처리입니다. FP32(32비트 부동소수점)에선 2연산/사이클 처리니 INT8는 FP32의 4배 처리량을 수행합니다.
다양하게 나뉘는 NVIDIA GPU
데이터 센터용 GPU는 FP16. 클라이언트 GPU는 INT8
NVIDIA의 INT8 SIMD 구현
NVIDIA는 훈련 단계에서 테슬라 P100(파스칼 GP100) 등의 GPU와 모바일 용 GPU에 FP16을 구현했습니다. 훈련 단계에서도 데이터 정확도를 줄인 FP16의 이용이 늘어나기 때문입니다. 그러나 FP16는 딥 러닝뿐만 아니라 모바일 그래픽에서의 사용도 상정하고 있으며, 일반 덧셉과 곱셈 등의 정수 연산을 지원하는 범용 분야입니다. 반면 INT8의 구현은 딥 러닝의 추론 단계에 초점을 맞춘 구현입니다.
NVIDIA의 FP16 SIMD 구현
큰 틀에서 보면 GPU는 원래 128비트의 4웨이 SIMD 연산 유닛으로 출발했습니다. 그러나 GPU 컴퓨팅으로 방향을 바꾸면서 연산 정밀도를 FP32로 통일하고 단순화해 플로우 컨트롤을 간단히 바꿨습니다. 이제는 딥 러닝 등의 새로운 요소로 GPU가 다양한 정밀도를 지원하게 됐습니다. FP16과 INT8는 32비트 스칼라 파이프라인(실제로는 SIMD나 프레디케이션으로 분기 지원)에서 SIMD 컨트롤을 수행합니다. SIMD에서 SIMT(Single Instruction, Multiple Thread)로 전환한 GPU가 다시 SIMD를 수집하기 시작했습니다.
딥 러닝에 최적화가 진행되는 볼타
NVIDIA는 자비에르의 딥 러닝 성능이 20TOPS라 발표했습니다. 이것이 INT8일 경우니까 이걸 지원하는 NVIDIA GPU와 비교하면 테슬라 P4(GP104)의 22TOPS에 가깝습니다. 테슬라 P4는 2,560개의 FP32 연산 유닛을 탑재하고 최대 1,063MHz로 동작합니다. 2560 코어가 각각 4웨이의 INT8를 실행해 22TOPS를 냅니다.
반면 자비에르의 GPU는 512 코어 구성으로 테슬라 P4와 비교하면 코어 수는 약 1/5입니다. 자비에르의 GPU 코어는 테슬라 P4와 비슷한 INT8 구현에 1GHz로 작동하면 4TOPS밖에 되지 않습니다. 따라서 자비에르의 INT8의 가속은 지금의 파스칼과는 다른 구현일 가능성이 높습니다.
어디까지나 가정이지만, 볼타 세대의 GPU 코어 구성이 기존 NVIDIA의 FP32 연산 코어와 다를 수 있습니다. 1코어 4웨이의 INT8를 4개 병렬 실행할 수 있다면, 1.2GHz로 동작하는 512 코어의 GPU에서 20TOPS을 실현할 수 있다는 계산이 나옵니다. 또 다른 가정은 INT8에 특화된 가속기를 따로 탑재했다는 것입니다. 자비에르는 컴퓨터 비전 가속기를 탑재했으니 낮은 정밀도에 특화된 엔진이 탑재됐을 가능성도 있습니다.
어쨌든 분명한 건 볼타 세대의 GPU 코어(및 주변 장치)가 딥 러닝을 목표로 더욱 최적화 된다는 것입니다. NVIDIA는 목표 시장을 확정하고 그에 대한 최적화를 빠른 속도로 진행 중이며, 이번에도 FP16과 INT8에 대한 대응이 매우 빠릅니다. 그리고 볼타 세대에선 적어도 INT8에 대한 최적화가 더욱 진행될 것입니다.