수년 전에 충분한 데이터로 AI 워크로드를 훈련하고 컨벌루션 신경망을 사용하는 것이 점차 주류가 되고 있으며 전 세계 주요 HPC(고성능 컴퓨팅) 센터에서 수년 동안 그렇게 해 왔다고 언급했습니다. 이 로드를 NVIDIA의 GPU에 맡기세요. 시뮬레이션, 모델링 등의 작업에서는 GPU 성능이 상당히 뛰어납니다. 본질적으로 HPC 시뮬레이션/모델링과 AI 훈련은 실제로 일종의 조화 수렴이며, 대규모 병렬 프로세서인 GPU는 이러한 유형의 작업을 수행하는 데 특히 좋습니다.
그러나 2012년부터 공식적으로 AI 혁명이 일어났고, 이미지 인식 소프트웨어는 최초로 정확도를 인간을 넘어선 수준으로 향상시켰습니다. 그래서 유사한 GPU에서 HPC와 AI를 효율적으로 처리하는 공통성이 얼마나 오래 지속될 수 있을지 매우 궁금합니다. 그래서 2019년 여름, 모델의 개선과 반복을 통해 혼합 정밀도 수학 단위를 사용하여 Linpack 벤치마크에서 FP64 계산과 동일한 결과를 얻으려고 했습니다. NVIDIA는 이듬해 'Ampere' GA100 GPU를 출시하기 전에 다시 한번 HPC와 AI의 처리 성능을 테스트해 보았습니다. 당시 Nvidia는 아직 "Ampere" A100 GPU를 출시하지 않았기 때문에 그래픽 카드 거대 기업은 혼합 정밀도 텐서 코어에서 AI 모델을 훈련하는 쪽으로 공식적으로 기울지 않았습니다. 물론 이제 대답은 명확해졌습니다. FP64 벡터 장치의 HPC 워크로드는 GPU 성능을 극대화하기 위해 약간의 아키텍처 조정이 필요합니다. 하지만 그 당시에는 모든 것이 가능했습니다.
올해 초 Nvidia의 “Hopper” GH100 GPU가 출시되면서 AI와 HPC 간의 세대 간 성능 향상 격차가 더 커졌습니다. 뿐만 아니라 최근 가을 GTC 2022 컨퍼런스에서 Nvidia 공동 창립자이자 CET인 Huang Jensen은 AI 워크로드 자체도 다양해지면서 Nvidia가 CPU 사업을 탐색하기 시작했다고 말했습니다. GPU 지향 최적화 확장 메모리 컨트롤러라고 합니다.
이 문제는 나중에 자세히 논의하겠습니다.
가장 명확한 판단부터 시작하겠습니다. Nvidia가 날씨 모델링, 유체 역학 계산, 유한 요소 분석, 양자 색역학 및 기타 고강도 수학적 시뮬레이션과 같은 64비트 부동 소수점 HPC 애플리케이션을 지원하기 위해 GPU가 더 강력한 FP64 성능을 갖기를 원한다면 가속기의 설계 아이디어는 다음과 같아야 합니다. 예를 들어, 텐서 코어나 FP32 CUDA 코어(주로 CUDA 아키텍처에서 그래픽 셰이더로 사용됨)가 없는 제품을 만듭니다.
그런 제품을 구매하려는 고객은 수백 명에 불과하므로 칩 하나의 가격이 수만 달러, 심지어 수십만 달러가 될 수도 있습니다. 그래야만 설계 및 제조 비용이 발생할 수 있습니다. 보장됩니다. 더 크고 수익성이 높은 비즈니스를 구축하기 위해 Nvidia는 벡터 수학 기능이 CPU보다 더 강력한 보다 일반적인 아키텍처를 설계해야 합니다.
그래서 NVIDIA는 15년 전 HPC 애플리케이션용 제품 설계에 대해 진지하게 결정한 이후로 지진 처리, 신호 처리 및 유전체학에 사용되는 단정밀도 데이터를 포함하여 FP32 부동 소수점 수학 연산을 사용하는 HPC 시나리오에 집중해 왔습니다. 유형의 워크로드 및 처리 작업을 수행하고 GPU의 FP64 기능을 점진적으로 개선합니다.
2012년 7월 출시된 K10 가속기에는 게이밍 그래픽 카드에 사용되는 GPU와 똑같은 '케플러' GK104 GPU 2개가 탑재됐다. 1536개의 FP32 CUDA 코어가 있으며 전용 FP64 코어를 사용하지 않습니다. FP64 지원은 순전히 소프트웨어에서만 수행되므로 눈에 띄는 성능 향상은 없습니다. 듀얼 GK104 GPU는 FP32 작업에서 4.58테라플롭, FP64에서 190기가플롭(24:1 비율)으로 수행됩니다. 2012년 말 SC12 슈퍼컴퓨팅 컨퍼런스에서 출시된 K20X는 GK110 GPU를 탑재해 FP32 성능이 3.95테라플롭스, FP64 성능이 1.31테라플롭스로 비율이 3:1로 높아졌다. 이때쯤이면 이 제품은 HPC 애플리케이션과 학술/대규모 컴퓨팅 공간에서 AI 모델을 훈련하는 사용자를 위한 초기 가용성을 갖추게 됩니다. K80 GPU 가속기 카드는 GK110B GPU 2개를 사용하는데, 이는 엔비디아가 당시 최고급 '맥스웰' GPU에 FP64 지원을 추가하지 않았기 때문에 당시 GK110 B가 가장 인기 있고 비용 효율적인 옵션이 되었기 때문입니다. K80의 FP32 성능은 8.74테라플롭스, FP64 성능은 2.91테라플롭스로 여전히 3대1 비율을 유지하고 있다.
"Pascal" GP100 GPU에는 FP16 혼합 정밀도 표시기의 도입으로 HPC와 AI의 격차가 더욱 넓어졌지만 벡터 FP32 대 벡터 FP64의 비율은 더욱 2:1로 변환되었으며, 이후에는 " Volta "GV100" Ampere' GA100 및 'Hopper' GH100과 같은 최신 GPU에서 유지되었습니다. Volta 아키텍처에서 NVIDIA는 처음으로 고정 행렬 Lei small을 갖춘 Tensor Core 행렬 수학 단위를 도입했습니다. 이는 부동 소수점(및 정수) 컴퓨팅 기능을 크게 향상시켰으며 아키텍처에서 벡터 단위를 계속 유지했습니다.
이러한 텐서 코어는 점점 더 큰 행렬을 처리하는 데 사용되지만 특정 작업 정확도는 점점 낮아지고 있으므로 이러한 유형의 장비는 극도로 과장된 AI 로드 처리량을 달성했습니다. 이는 물론 머신러닝 자체의 모호한 통계적 특성과 분리될 수 없으며 대부분의 HPC 알고리즘에서 요구하는 고정밀 수학과도 큰 격차를 남깁니다. 아래 그림은 AI와 HPC 사이의 성능 격차를 로그로 표현한 것입니다. 두 가지 사이의 추세 차이를 이미 볼 수 있을 것입니다.
로그 형식은 그다지 충격적이지 않습니다. 실제 비율을 사용하여 다시 살펴보겠습니다.
시스템 디자인의 예술: HPC 및 AI 애플리케이션이 주류가 되면 GPU 아키텍처는 어디에 있어야 할까요? 가다?
모든 HPC 애플리케이션을 텐서 코어에 맞게 조정할 수 있는 것은 아니며 모든 애플리케이션이 수학적 연산을 텐서 코어로 전송할 수 있는 것은 아니므로 NVIDIA는 여전히 GPU 아키텍처에 일부 벡터 단위를 유지합니다. 또한 많은 HPC 조직은 실제로 HPL-AI와 같은 반복 솔버를 개발할 수 없습니다. Linpack 벤치마크 테스트에 사용된 HPL-AI 솔버는 FP16과 FP32 연산이 포함된 일반 HPL Linpack과 약간의 FP64 연산을 사용하여 순수 FP64 무차별 대입 계산과 동일한 답으로 수렴합니다. 이 반복 솔버는 Oak Ridge 국립 연구소의 Frontier 슈퍼컴퓨터에서 6.2배, RIKEN 연구소의 Fugaku 슈퍼컴퓨터에서 4.5배의 효과적인 속도 향상을 제공할 수 있습니다. 더 많은 HPC 애플리케이션이 자체 HPL-AI 솔버를 받을 수 있다면 AI와 HPC의 '분리' 문제가 해결될 날이 올 것이라고 믿습니다.
그러나 동시에 많은 워크로드에서 FP64 성능은 여전히 유일한 결정 요소입니다. 그리고 강력한 AI 컴퓨팅 파워로 많은 돈을 벌어온 엔비디아가 단기간에 HPC 시장을 장악할 시간은 분명 많지 않을 것이다.
NVIDIA의 GPU 아키텍처는 허용 가능한 HPC 성능을 유지하면서 더 높은 AI 성능을 주로 추구하는 것을 볼 수 있습니다. 이 두 가지 접근 방식은 고객이 3년마다 하드웨어를 업데이트하도록 안내합니다. 순수한 FP64 성능 관점에서 Nvidia GPU의 FP64 처리량은 2012년부터 2022년까지 10년 동안 K20X의 1.3테라플롭에서 H100의 30테라플롭으로 22.9배 증가했습니다. 텐서 코어 매트릭스 유닛을 반복 솔버와 함께 사용할 수 있다면 증가폭은 45.8배에 달할 수 있습니다. 하지만 정밀도가 낮은 대규모 병렬 컴퓨팅만 필요한 AI 교육 사용자라면 FP32에서 FP8로의 성능 변화가 과장된 것입니다. FP32의 컴퓨팅 성능은 초기 3.95테라플롭에서 FP8 스파스의 4페타플롭으로 증가했습니다. 이는 1012.7배 향상된 것입니다. 그리고 당시 K20X GPU에 탑재된 FP64로 인코딩된 AI 알고리즘(당시 주류 관행)과 비교해 보면 지난 10년간의 성능 향상은 2배에 불과하다.
분명히 둘 사이의 성능 차이는 엄청나다고 설명할 수 없습니다. 황런쉰 본인도 현재의 AI 진영 자체가 다시 둘로 나뉘어져 있다고 언급했다. 한 가지 유형은 대규모 언어 모델이라고도 알려진 변환기 모델이 지원하는 거대한 기본 모델입니다. 이러한 모델의 매개변수 수가 급격히 증가하고 있으며 하드웨어에 대한 수요도 증가하고 있습니다. 이전 신경망 모델과 비교할 때 오늘날의 변환기 모델은 아래 그림과 같이 완전히 다른 시대를 나타냅니다.
이 그림이 조금 흐릿한 점 양해해 주시기 바랍니다. 그러나 요점은 다음과 같습니다. 변환기 포함 AI 모델의 경우 컴퓨팅 요구 사항이 2년 만에 8배 증가했지만 변환기가 포함된 AI 모델의 경우 컴퓨팅 요구 사항이 2년 만에 275배 증가했습니다. 부동 소수점 연산을 처리에 사용하는 경우 수요를 충족하려면 시스템에 100,000개의 GPU가 있어야 합니다(이는 큰 문제가 아닙니다). 하지만 FP4 정밀도로 전환하면 연산량이 2배로 늘어나게 됩니다. 향후 GPU가 1.8nm 트랜지스터를 사용하게 되면 연산 능력은 약 2.5배 증가하므로 여전히 약 55배의 격차가 있습니다. FP2 작업을 구현할 수 있다면(이러한 정확도가 문제를 해결하는 데 충분하다고 가정) 계산량이 절반으로 줄어들 수 있지만 이를 위해서는 최소 250,000개의 GPU를 사용해야 합니다. 더욱이, 대규모 언어 변환기 모델은 확장하기 어려운 경우가 많으며, 특히 경제적으로 실현 가능하지 않습니다. 따라서 이러한 유형의 모델은 핵무기가 강대국의 손에 있는 것과 마찬가지로 거대 기업의 전유물이 되었습니다.
"디지털 경제 엔진"으로서의 추천 시스템은 계산량의 기하급수적인 증가뿐만 아니라 대규모 언어 모델이나 심지어 GPU의 메모리 용량을 훨씬 초과하는 데이터 규모도 필요합니다. Huang Renxun은 이전 GTC 기조연설에서 다음과 같이 언급했습니다.
"대규모 언어 모델에 비해 추천 시스템을 처리할 때 각 컴퓨팅 단위가 직면하는 데이터의 양은 훨씬 더 큽니다. 분명히 추천 시스템은 더 빠른 메모리 속도를 요구할 뿐만 아니라 10배의 메모리 속도도 필요합니다. 대규모 언어 모델 메모리 용량 대규모 언어 모델은 시간이 지남에 따라 기하급수적인 증가를 유지하고 지속적인 컴퓨팅 성능을 요구하지만 추천 시스템도 이러한 증가율을 유지하고 더 큰 언어 모델과 권장 사항을 계속 사용합니다. 오늘날의 AI 모델은 다양한 컴퓨팅 요구 사항을 가지고 있습니다. 추천 시스템은 모든 기사, 모든 비디오 및 모든 소셜 게시물에 대해 수십억 명의 사용자와 수십억 개의 항목으로 확장될 수 있습니다. 각 임베딩 테이블은 10개를 포함할 수 있습니다. 테라바이트 단위의 데이터를 처리해야 하며 추천 시스템을 처리할 때 네트워크의 일부 부분에서는 데이터 병렬 처리가 필요하며, 이는 모델 병렬 처리를 구현하는 데 더 높은 요구 사항을 제시합니다. "
아래 그림과 같이 추천 시스템의 기본 아키텍처입니다.
특별함을 이해하고 결정하기 위해. 메모리 용량과 대역폭 문제로 인해 NVIDIA는 "Grace" Arm 서버 CPU를 Hopper GPU와 긴밀하게 결합했습니다. 또한 필요한 메인 메모리의 양이 매우 크다면 Grace는 실제로는 단지 Hopper의 메모리 컨트롤러일 뿐이라는 농담도 합니다. 그러나 장기적으로는 NVLink 프로토콜을 실행하는 여러 CXL 포트를 Hooper의 차세대 GPU에 연결할 수도 있습니다.
그래서 NVIDIA가 생산하는 Grace-Hopper 슈퍼 칩은 "어린이" 수준의 CPU 클러스터를 거대한 "성인" 수준의 GPU 가속 클러스터에 배치하는 것과 같습니다. 이러한 Arm CPU는 기존 C++ 및 Fortran 워크로드를 지원할 수 있지만 가격이 책정됩니다. 하이브리드 클러스터의 CPU 부분 성능은 클러스터 GPU 성능의 10분의 1에 불과하지만 비용은 3~3배입니다. 기존 순수 CPU 클러스터의 5배입니다.
그런데, 우리는 NVIDIA가 내린 모든 엔지니어링 선택을 존중하고 이해합니다. Grace도 뛰어난 CPU이고, Hopper도 뛰어난 GPU입니다. 이 둘의 조합은 분명 좋은 결과를 낳을 것입니다. 하지만 이제 동일한 플랫폼에 서로 다른 세 가지 워크로드가 있으며 각각 아키텍처를 다른 방향으로 끌어갑니다. 고성능 컴퓨팅, 대규모 언어 모델 및 추천 시스템, 이 세 가지 형제는 각자의 특성을 갖고 있으며 비용 효율적인 방식으로 동시에 아키텍처를 최적화하는 것은 불가능합니다.
그리고 HPC가 점차 입지를 잃어가는 동안 AI가 큰 이점을 갖고 있다는 것은 분명합니다. 이러한 상황은 거의 10년 동안 지속되었습니다. HPC가 변환을 완료하려면 코드가 FP64에서 기존 C++ 및 Fortran 코드 실행을 계속 고집하기보다는 추천 시스템 및 대규모 언어 모델에 더 가까워져야 합니다. 그리고 HPC 고객은 AI 고객에 비해 모든 작업에 대해 프리미엄을 갖고 있는 것이 분명합니다. 따라서 HPC 전문가가 물리적 세계를 낮은 정확도로 모델링할 수 있는 반복 솔버에 대한 보편적인 개발 방법을 찾아내지 않는 한 이러한 수동적 상황을 되돌리기는 어려울 것입니다.
수십년 동안 우리는 자연 자체가 수학적 법칙을 따르지 않는다고 늘 느껴왔습니다. 우리는 자연의 영향을 설명하기 위해 고정밀 수학을 사용해야 하거나, 객관적 현실을 설명하기 위해 부적절한 언어를 사용하고 있습니다. 물론 자연은 우리가 상상하는 것보다 더 미묘할 수 있으며, 반복 솔버는 우리가 모델링하려는 현실에 더 가깝습니다. 그렇다면 10년 전 HPC와 AI의 우연한 우연보다 더 큰 행운이 인류에게 축복이 될 수도 있다.
결국 세상에 길은 없습니다. 걷는 사람이 많아지면 길이 됩니다.
위 내용은 시스템 디자인 기술: HPC와 AI 애플리케이션이 주류가 되면 GPU 아키텍처는 어디로 가야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!