OpenAI

NVIDIA H100 GPU MLPerf Training 기록 경신

openaichat 2023. 7. 8. 21:28
반응형

NVIDIA AI 플랫폼과 H100 Tensor Core GPU는 MLPerf Training v3.0에서 기록을 세우며 탁월한 성능을 보여주었습니다. NVIDIA H100 Tensor Core GPU는 이전에 MLPerf Training에 처음 등장한 지 단 6개월 만에 모든 MLPerf Training v3.0 워크로드에서 가속기 당 성능 기록을 세웠습니다. 동일한 하드웨어에서 소프트웨어 개선만으로도 성능이 최대 17% 향상되었습니다. MLPerf Training v2.1에서 NVIDIA A100 Tensor Core GPU 제출과 비교해 보면, 최신 H100 제출은 가속기 당 최대 3.1배의 성능 향상을 이루었습니다.

NVIDIA는 이번 라운드에서 최대 768개의 H100 GPU를 사용한 NVIDIA "Pre-Eos" AI 슈퍼컴퓨터 결과를 제출했습니다. 또한 NVIDIA HGX H100 인프라를 사용하는 클라우드 서비스 제공업체 CoreWeave와 공동으로 최대 3,584개의 H100 GPU를 사용한 제출도 이루었습니다.

이러한 제출을 통해 NVIDIA AI 플랫폼과 H100 GPU는 새로운 LLM 워크로드를 포함한 모든 워크로드에서 대규모 훈련 시간 기록을 세웠습니다. 아래는 NVIDIA 플랫폼과 H100 Tensor Core GPU에서 설정된 최대 규모의 훈련 시간 기록입니다.

- 대형 언어 모델 (GPT-3): 10.9 분
- 자연어 처리 (BERT): 0.13 분 (8초)
- 추천 시스템 (DLRMv2): 1.61 분
- 무거운 객체 탐지 (Mask R-CNN): 1.47 분
- 가벼운 객체 탐지 (RetinaNet): 1.51 분
- 이미지 분류 (ResNet-50 v1.5): 0.18 분 (11초)
- 이미지 세분화 (3D U-Net): 0.82 분 (49초)
- 음성 인식 (RNN-T): 1.65 분

이러한 성과는 NVIDIA AI 플랫폼과 H100 Tensor Core GPU의 소프트웨어 최적화 노력에 기반합니다.

NVIDIA는 MLPerf Training v3.0 결과를 통해 NVIDIA AI 플랫폼과 H100 Tensor Core GPU의 탁월한 성능을 입증했습니다. 이 성능 향상은 NVIDIA의 지속적인 소프트웨어 최적화와 엔지니어링 노력에 기인합니다.

NVIDIA AI 플랫폼은 AI 모델 훈련에 필요한 대규모 연산 작업을 지원하기 위해 최첨단 기술을 결합한 종합적인 솔루션입니다. NVIDIA의 H100 Tensor Core GPU는 텐서 연산에 특화되어 있으며, AI 모델 훈련에 필요한 고성능 연산을 제공합니다. 이러한 GPU들을 NVIDIA의 DGX 시스템에 통합하여 최적의 성능과 확장성을 제공합니다.

MLPerf Training v3.0에서 NVIDIA는 여러 워크로드에 대한 최고 성능 기록을 세웠습니다. 대형 언어 모델(GPT-3), 자연어 처리(BERT), 추천 시스템(DLRMv2), 객체 탐지(Mask R-CNN 및 RetinaNet), 이미지 분류(ResNet-50 v1.5), 이미지 세분화(3D U-Net), 음성 인식(RNN-T) 등 다양한 AI 응용 분야에서 뛰어난 성능을 보였습니다.

이러한 결과는 AI 모델 훈련에 있어서 NVIDIA AI 플랫폼과 H100 Tensor Core GPU의 엄청난 처리 능력과 탁월한 가속화 기술을 입증합니다. 이를 통해 AI 개발자와 연구자들은 보다 빠르고 효율적인 모델 훈련을 통해 더욱 높은 품질의 AI 응용 프로그램을 구축할 수 있게 되었습니다.

NVIDIA 소프트웨어가 MLPerf 결과에 기여


NVIDIA의 MLPerf Training v3.0 제출에는 기존 및 업데이트된 MLPerf Training 워크로드에서 성능을 향상시키고 새로운 LLM 테스트에서 우수한 결과를 실현하기 위한 다양한 최적화가 포함되었습니다.

대형 언어 모델


새로 추가된 LLM 워크로드는 1750억 개의 매개 변수로 구성된 최첨단 대형 언어 모델을 대표합니다. 이 모델을 훈련시키기 위해서는 계산, GPU 메모리 대역폭 및 노드 간 및 노드 내 연결 능력을 포함한 AI 슈퍼컴퓨터의 모든 부분에 대한 전반적인 최적화가 필요합니다.

실제로 이 워크로드는 매우 요구 사항이 높아서 가장 작은 규모의 NVIDIA 제출에서도 Pre-Eos 시스템의 최신 H100 Tensor Core GPU 512개를 사용하여 훈련 시간을 64.3분으로 달성했습니다. 동일한 Pre-Eos 시스템에서 768개의 GPU로 확장하면 시간 단축 효율성을 고려한 거의 선형적인 스케일링으로 훈련 시간을 44.8분으로 줄일 수 있었습니다.

NVIDIA와 CoreWeave는 또한 CoreWeave의 NVIDIA HGX H100 인프라를 사용하여 LLM 워크로드에 대한 공동 제출을 진행했습니다. 768개 GPU, 1,536개 GPU 및 3,584개 GPU를 사용한 다양한 규모의 제출이 이루어졌습니다. CoreWeave의 HGX H100 인프라에서의 768개 GPU 제출은 768개 GPU Pre-Eos 제출과 거의 동일한 성능을 보여주어 NVIDIA AI 플랫폼이 온프레미스와 상용 클라우드 인스턴스에서 모두 우수한 성능을 제공함을 보여주었습니다.

또한 NVIDIA와 CoreWeave는 3,584개 GPU에서 LLM 결과를 제출하여 훈련 시간이 단 10.9분으로 달성되었습니다. 이는 H100 GPU에서 768개 GPU 제출과 비교했을 때 4배 이상의 가속을 나타내며, 수백 대수에서 수천 대로 확장할 때에도 89%의 성능 스케일링 효율성을 보여줍니다.

MLPerf LLM 제출에서 사용된 소프트웨어 스택에는 NVIDIA NeMo 프레임워크와 NVIDIA Transformer Engine 라이브러리, NVIDIA cuBLAS 라이브러리가 포함되어 있으며, 이러한 라이브러리를 통해 NVIDIA H100 GPU에서 레이어별로 8비트 부동 소수점 정밀도(FP8)를 지능적으로 활용하였습니다.

NVIDIA는 MLPerf Training v3.0에서 BERT NLP 워크로드에서 H100 가속기 당 성능을 17% 향상시켰습니다. 또한 NVIDIA와 CoreWeave는 BERT 결과를 최대 3,072개의 H100 GPU로 제출하여 훈련 시간을 기록적인 0.134분(단 8초)로 달성했습니다.

이러한 성능을 공개된 NVIDIA 소프트웨어에서 실현하기 위해 cuDNN 라이브러리에서는 NVIDIA Transformer Engine 라이브러리에서 사용되는 퓨즈드 플래시 어텐션(fused Flash Attention)에 FP8 I/O 지원을 도입했습니다. cuDNN 퓨즈드 플래시 어텐션은 Flash Attention I/O를 위한 팩드 시퀀스 포맷도 지원하여 BERT가 패딩 토큰에 계산을 낭비하지 않고 높은 효율성으로 훈련될 수 있게 합니다. cuDNN Developer Guide에서 cuDNN 퓨즈드 플래시 어텐션에 대한 자세한 내용과 문서를 참조하십시오.

BERT를 위해 수행된 주요 성능 최적화


데이터 전처리


매우 대규모로 모델을 훈련할 때 CPU에서의 데이터 전처리는 상당한 오버헤드를 초래할 수 있습니다. 이전 반복에서 수행되는 연산과 다음 반복을 위한 데이터 전처리를 겹쳐서 수행하여 반복 시간을 3% 감소시켰습니다.

더 빠른 난수 생성


BERT Multi-Head Attention에서는 드롭아웃 레이어의 온라인 난수 생성이 여러 헤드 어텐션 연산이 하나의 커널로 퓨즈되면 병목이 되기 시작합니다. 이는 최근 NVIDIA GPU 아키텍처의 Tensor Core 처리량이 난수 생성 속도보다 빠르게 증가했기 때문에 더욱 두드러집니다.

난수 생성 병목을 줄이기 위해 이번 MLPerf 라운드에서는 난수 생성의 쓰레기 비교에 낮은 정밀도 정수 형식(32비트 대신 8비트)을 사용하는 최적화를 도입하여 난수 생성 처리량을 4배 증가시켰습니다. 특히, 난수 생성기에서 생성된 128비트 난수를 32비트 정수 4개로 변환하는 대신 8비트 정수 16개로 변환합니다. 이 최적화는 헤드 어텐션 블록의 난수 생성 오버헤드를 크게 줄이며, 단일 노드 제출에서 전체 애플리케이션 성능을 4% 향상시킵니다. 이 최적화는 모델의 정확도나 출력 품질에 영향을 주지 않습니다.

CUDA 그래프


이번 제출에서는 cuDNN 퓨즈드 플래시 어텐션과 Transformer Engine 라이브러리에서 그래프 캡처 지원을 통해 8개 GPU에서의 대규모 배치 시나리오에 대해 CUDA 그래프를 사용하도록 설정했습니다. 이는 헤드 어텐션의 난수 생성기의 시드와 오프셋 변수를 신중하게 처리함을 요구했습니다.

FP16과 FP8 형식 간 변환을 줄이기 위한 최적화가 이루어졌습니다. 또한 cuBLAS 라이브러리의 최적화로 인해 H100의 GEMM 알고리즘 휴리스틱과 GEMM과 gelu 연산의 퓨전 지원이 개선되어 전체 애플리케이션 성능이 5% 향상되었습니다. 이러한 최적화는 BERT의 단일 노드 성능을 H100 프리뷰 제출과 비교하여 17% 향상시켰습니다.

ResNet-50 v1.5


MLPerf Training v3.0에서 NVIDIA와 CoreWeave는 최대 3,584개의 H100 Tensor Core GPU를 사용하여 새로운 기록인 0.183분(약 11초)의 대규모 훈련 시간을 달성했습니다. 또한 H100 가속기 당 성능은 소프트웨어 개선을 통해 이전 제출과 비교하여 8.4% 향상되었습니다.

ResNet-50 v1.5 워크로드의 주요 개선 사항

NVSHMEM을 이용한 GroupBatchNorm


이번 라운드에서는 NVIDIA NVSHMEM 라이브러리를 사용하여 더 빠른 GroupBatchNorm 커널을 구현하고, GPU 간 통신 지연 시간을 5배 이상 줄였습니다. 이 새로운 커널은 또한 고대역폭의 인터 GPU NVIDIA NVLink 연결을 활용하여 통신을 가속화할 수 있습니다. 이 최적화로 인해 가장 큰 규모의 제출에서 전체 성능이 6% 향상되었습니다.

cuDNN 라이브러리의 최적화


cuDNN 라이브러리는 NVIDIA H100 GPU의 텐서 코어 처리량을 효과적으로 활용하기 위해 개선된 컨볼루션 커널을 개발했습니다. 이 커널은 단일 노드와 효율적인 규모의 제출에서 모두 5% 더 높은 성능을 제공했습니다.

RetinaNet


NVIDIA는 최대 768개의 H100 Tensor Core GPU를 사용하여 RetinaNet에 대한 결과를 제출하여 이 벤치마크의 새로운 성능 기록인 1.51분을 달성했습니다. H100 가속기 당 성능도 이전 제출과 비교하여 향상되었습니다.

옵티마이저에서 FP32 마스터 가중치 지원


NVIDIA의 MLPerf Training v3.0 RetinaNet 제출에서는 PyTorch Automatic Mixed Precision (AMP)을 사용하여 FP16과 같은 낮은 정밀도 데이터 유형에 대한 NVIDIA H100 GPU의 높은 처리량을 활용했습니다.

그러나 모델 매개 변수는 여전히 FP32로 유지되기 때문에 PyTorch AMP는 텐서 연산을 수행하는 동안 FP16과 FP32 데이터 유형 간의 동적 형 변환 작업을 삽입합니다.

이러한 오버헤드를 피하기 위해 옵티마이저는 "마스터 가중치"라고 불리는 FP32로 저장된 별도의 모델 매개 변수 집합을 유지합니다. 모델 매개 변수는 전체적으로 FP16로 변환되어 동적 형 변환 작업을 삽입하지 않고도 됩니다. 옵티마이저는 역전파 과정에서 얻은 FP16 그래디언트를 사용하여 마스터 가중치를 업데이트할 수 있습니다. 이 최적화는 훈련 성능을 10% 향상시켰습니다.

데이터 전처리


NVIDIA의 RetinaNet 제출은 NVIDIA Data Loading Library (DALI)를 사용하여 이미지, 비디오, 음성을 디코딩하고 보강하는 이식 가능한 오픈 소스 라이브러리를 활용했습니다.

MLPerf Training v3.0에서 NVIDIA 제출은 데이터 로딩과 변수 크기가 다양한 이미지의 전처리를 위해 DALI를 사용했습니다. NVIDIA Nsight Systems를 사용하여 대규모 훈련 실행을 프로파일링한 결과, DALI에서 메모리 재할당 작업이 훈련 반복의 다른 프로세스에서 다른 시간에 발생하여 훈련 반복 지연이 발생했습니다.

DALI 이미지 디코더의 메모리 관리 작업이 주요 지연의 원인 중 하나였습니다. 이를 최적화하기 위해 데이터 세트에서 가장 큰 이미지 크기에 대한 힌트를 제공하여 이 최적화로 성능을 10% 향상시켰습니다.

cuDNN의 최적화


cuDNN 라이브러리는 NVIDIA H100 네 번째 세대 텐서 코어를 더 잘 활용하기 위해 개선된 커널을 갖추고 있습니다. 이러한 커널은 RetinaNet 제출에서 컨볼루션 성능을 향상시켜 대규모 제출에서 특히 작은 크기의 컨볼루션에 대한 성능을 최대 7.5% 향상시켰습니다.

3D U-Net


NVIDIA는 432개의 H100 Tensor Core GPU를 사용하여 3D U-Net에 대한 결과를 제출하여 훈련 시간의 새로운 기록인 0.82분(49초)을 달성했습니다. H100 가속기 당 성능도 이전 라운드와 비교하여 8.2% 향상되었습니다.

대규모 훈련에서 더 빠른 GroupBatchNorm 커널은 주요 최적화 포인트 중 하나였습니다.

가장 큰 규모의 3D U-Net 제출에서는 인스턴스 정규화 작업에서 네 개의 GPU 간에 텐서 평균과 분산의 축소를 수행해야 했습니다. GroupBatchNorm 커널을 사용하여 인스턴스 정규화를 구현함으로써 1.5%의 성능 향상을 이루어냈습니다.

Mask R-CNN


이번 라운드에서 NVIDIA는 최대 384개의 H100 GPU를 사용하여 Mask R-CNN 결과를 제출하였으며, 새로운 훈련 시간 기록인 1.47분을 달성했습니다. H100 가속기 당 성능도 이전 제출과 비교하여 6.1% 향상되었습니다.

이번 최적화에서는 강력한 H100 GPU의 성능을 더욱 효과적으로 활용하기 위해 CPU 병목 현상을 줄이는 데 초점을 맞췄습니다.

더 빠른 평가 과정


평가 과정은 추론 결과를 수집한 후에 점수를 계산합니다. H100 GPU는 이전 세대의 A100 GPU보다 훈련 속도가 훨씬 빠르기 때문에 평가가 중요한 성능 병목 지점이 되었습니다.

이번 라운드에서는 각각의 추론 결과를 JSON으로 인코딩한 후 결과를 한 랭크에서 수집하기 전에 JSON 인코딩의 문자열을 연결하여 추론 결과의 JSON 인코딩과 디코딩을 통과시키지 않고 형성하였습니다. 이 방법은 인코딩과 디코딩보다 훨씬 빠르며, 평가 속도가 두 배로 향상되었습니다.

더 빠른 주석


이전 라운드에서 각 샘플에 대한 타깃 정보를 포함한 주석은 매우 큰 JSON 파일에서 로드되었습니다. 이 과정은 최대 5초까지 소요되었습니다. 주석을 직렬화된 텐서로 저장하고 로드함으로써 시작 시간을 80% 이상으로 줄였습니다.

주석은 훈련에 사용되기 전에 변환되어야 합니다. 각 이미지마다 변환을 독립적으로 수행하는 대신 동일한 변환을 적용하는 단일 전역 커널을 사용하여 모든 변환을 수행했습니다. 이 커널은 로드 중에 한 번 호출되며 각 에포크의 시작 부분에서 반복됩니다.

이러한 최적화로 CPU 작업량을 거의 20% 줄였습니다. Mask R-CNN은 CPU에 의해 제한되었기 때문에 훈련 성능이 거의 20% 향상되었습니다.

더 많은 CUDA 그래프


이전 라운드에서는 손실 계산을 제외한 모든 것을 CUDA 그래프로 만들었습니다. 손실 계산은 CPU 바운드되어 있어 전체 단계 시간의 40% 이상을 차지했습니다.

이번 라운드에서는 모델 전체를 CUDA 그래프로 만들어 훈련 처리량을 30% 이상 향상시켰습니다.

DLRM_DCNv2


DLRM_DCNv2는 MLPerf Training v3.0에서 새로운 벤치마크로 도입되었습니다. 이전 DLRM 벤치마크를 대체하며 다음과 같은 업데이트가 있습니다:

멀티 핫 데이터셋: 이전 DLRM 벤치마크는 원-핫 Criteo 데이터셋을 사용했습니다. 실제 추천 시스템의 실제 사용과 응용을 더 잘 대표하기 위해 DLRM_DCNv2는 멀티 핫 데이터셋을 채택했습니다. 멀티 핫 데이터셋은 원-핫 데이터셋에서 합성된 데이터셋입니다.
크로스 레이어: DLRM_DCNv2에서는 논문 "DCN V2: Improved Deep and Cross Network and Practical Lessons for Web-scale Learning to Rank Systems"에서 소개된 크로스 레이어를 도입했습니다.
Adagrad 옵티마이저: DLRM에서 사용되던 SGD 옵티마이저를 DLRM_DCNv2에서는 보다 현실적인 추천 시스템에서 더 일반적으로 사용되는 Adagrad 옵티마이저로 대체했습니다.
NVIDIA Merlin HugeCTR의 임베딩 컬렉션을 사용한 제출은 다양한 샤딩 전략을 지원하며 서로 다른 임베딩 샤드에 연결된 임베딩 작업을 가로로 퓨즈하여 우수한 성능을 제공합니다.

규모 확장 훈련에는 네트워크 패브릭의 계층 구조를 활용하기 위해 계층적 임베딩 전략을 사용했습니다. 이 접근법은 다음과 같은 이점을 제공합니다:

같은 노드 내의 임베딩 벡터는 NVIDIA NVLink 연결을 활용하여 노드 간의 InfiniBand 네트워킹을 통해 전송되어야 하는 바이트 수를 줄입니다.
줄어든 임베딩 벡터는 대상 GPU와 동일한 InfiniBand 레일을 공유하는 GPU에 배치되어 레일 최적화된 시스템에서 전송 지연을 최소화합니다.
NVIDIA 제출은 임베딩 컬렉션의 입력 분배를 위해 입력 분배 모듈을 사용하여 입력 데이터의 데이터 병렬 처리를 모델 병렬 처리로 변환합니다. 이를 위해 입력 데이터 패턴에 필요한 카테고리만 전송하여 입력 분배와 관련된 트래픽 양을 줄였습니다. 또한 입력 데이터를 사전에 미리 로드하고 분배하여 현재 반복에서 다음 반복의 입력 분배와 겹쳐서 수행하므로 훈련 처리량을 향상시켰습니다.

MLPerf Training v3.0 요약


NVIDIA AI 플랫폼은 MLPerf Training v3.0에서 최고의 성능을 제공하며, NVIDIA H100 GPU와 NVIDIA AI 플랫폼의 뛰어난 능력을 ResNet-50, BERT와 같은 성숙한 네트워크부터 GPT-3 175B와 같은 첨단 LLM까지 다양한 워크로드에 적용할 수 있음을 강조합니다. NVIDIA와 CoreWeave의 공동 제출은 CoreWeave의 공개 클라우드 인프라인 NVIDIA HGX H100 인프라에서도 뛰어난 성능을 보여주어 NVIDIA 플랫폼과 H100 GPU가 공개 가능한 클라우드 인프라에서도 높은 성능을 제공함을 입증했습니다.

NVIDIA 플랫폼은 최고의 성능과 최대의 다양성을 제공하며, 어디에서나 사용할 수 있습니다. NVIDIA MLPerf 제출에 사용된 모든 소프트웨어는 MLPerf 저장소에서 사용할 수 있으므로 이러한 결과를 재현할 수 있습니다. 이러한 결과를 달성하기 위해 사용된 모든 NVIDIA AI 소프트웨어는 엔터프라이즈급 소프트웨어 패키지인 NVIDIA AI Enterprise에서도 사용할 수 있습니다.

NVIDIA H100 GPU를 사용하여 MLPerf Training 기록을 경신


인공지능(AI) 기반 애플리케이션의 급속한 확장의 핵심은 강력한 AI 모델에 있습니다. 이러한 모델을 배포하기 위해서는 방대한 양의 AI 컴퓨팅 파워가 필요한 훈련 과정을 거쳐야 합니다. AI 훈련은 지속적인 과정으로, 모델은 새로운 데이터로 계속해서 재훈련되어 고품질의 결과를 보장합니다. 더 빠른 모델 훈련은 AI 기반 애플리케이션을 보다 신속하게 배포할 수 있어 가치 창출 시간을 단축시킵니다.

NVIDIA H100 GPU를 활용하여 MLPerf Training에서 기록을 경신했습니다. MLPerf Training은 인기 있는 AI 사용 사례를 대상으로한 표준화된 벤치마크로, 컴퓨터 비전, 자연어 처리, 추천 시스템 등 다양한 영역을 포함합니다. 이번 MLPerf Training v3.0에서는 GPT-3 175B 모델을 기반으로 한 새로운 대형 언어 모델(LLM) 테스트가 도입되었으며, 업데이트된 DLRM 테스트도 포함되어있습니다.

NVIDIA의 AI 플랫폼과 H100 Tensor Core GPU는 MLPerf Training v3.0에서 새로운 성적을 세웠습니다. H100 Tensor Core GPU는 가속기 당 최고 성능을 달성하며, 모든 벤치마크에서 가장 빠른 훈련 시간을 보여줍니다. H100 GPU는 이전 라운드와 비교하여 가속기 당 성능을 최대 3.1배 더 향상시켰습니다.

이번 라운드에서 NVIDIA는 최대 768개의 H100 GPU를 사용하여 MLPerf 결과를 제출하였으며, 모든 워크로드에서 시간 단축 기록을 세웠습니다. 특히, 새롭게 도입된 LLM 워크로드에서는 10.9분의 훈련 시간을 달성하여 높은 성능을 보여주었습니다. 또한 BERT, ResNet-50, Mask R-CNN 등의 워크로드에서도 기존 성적을 향상시키는 결과를 얻었습니다.

NVIDIA는 MLPerf Training v3.0에서 소프트웨어 최적화를 통해 이러한 성과를 이끌어냈습니다. 예를 들어, cuDNN 라이브러리에서는 FP8 I/O 지원을 도입하여 성능을 향상시켰습니다. 또한 데이터 전처리, 난수 생성, CUDA 그래프 등의 다양한 영역에서 최적화를 수행하여 훈련 성능을 향상시켰습니다.

NVIDIA의 MLPerf Training v3.0 결과는 AI 훈련에 필요한 뛰어난 성능을 제공하고, 빠른 모델 훈련을 통해 가치 창출 시간을 단축시키는 데 기여하고 있습니다. 이러한 성과는 NVIDIA의 AI 플랫폼과 H100 Tensor Core GPU의 우수한 능력을 입증하며, 미래의 AI 응용 프로그램 발전을 지원합니다.


반응형