제5장. GPU 기반 스토리지 I/O 최적화
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
AI 워크로드에서 GPU에 데이터를 공급하는 것은 컴퓨팅 자체만큼 중요합니다. 수천 개의 GPU에서 100조 개의 매개변수를 가진 모델을 훈련하는 시나리오를 생각해 보십시오. 이러한 모델은 토큰, 이미지, 오디오, 비디오 등을 포함한 수십억 개의 훈련 샘플을 처리할 수 있습니다.
이는 방대한 양의 데이터를 스토리지에서 읽어내어 가능한 한 빠르게 GPU에 공급해야 함을 의미합니다. 스토리지 파이프라인이 느리다면 GPU는 자원이 부족해져 유휴 상태에 빠지게 됩니다. 이로 인해 앞서 논의한 정교한 통신 최적화에도 불구하고 낮은 활용률만 초래됩니다.
본 장에서는 스토리지 및 입력 파이프라인 최적화를 다룹니다. 구체적으로 디스크나 원격 스토리지에서 데이터를 효율적으로 읽는 방법, 이를 전처리하는 방법, 그리고 GPU 연산과 I/O 작업을 중첩시키는 방법을 보여줍니다.
빠른 스토리지와 데이터 로컬리티
대규모 모델 훈련 작업은 일반적으로 방대한 데이터셋을 읽어야 합니다. 대규모 언어 모델의 경우 수십억에서 수조 개의 훈련 샘플을 처리하는 것이 일반적입니다. 이는 언어 모델의 경우 테라바이트 단위의 텍스트 데이터, 비전 모델의 경우 페타바이트 단위의 이미지 데이터에 해당합니다.
초대규모 환경에서는 수천에서 수백만 개의 GPU가 수개월 동안 동시에 가동될 수 있으므로, 스토리지 시스템은 지속적으로 막대한 처리량을 제공해야 합니다. 랙 내부에 NVMe SSD를 배치하거나 랙 로컬 스위치 토폴로지와 함께 NVMe over Fabrics(NVMe-oF)를 사용하면 네트워크 홉을 최소화하고 성능 일관성을 향상시킬 수 있습니다.
데이터가 NFS 서버나 클라우드 객체 저장소(예: Amazon S3)와 같은 네트워크 연결 저장소(NAS)에 존재하는 경우, 모든 컴퓨팅 노드에서 합산된 읽기 대역폭이 충분한지 확인해야 합니다. 모델과 배치 크기에 따라 각 GPU가 200MB/s의 훈련 데이터를 처리해야 하는 시나리오를 가정해 보겠습니다. 총 8개의 GPU가 있다면 약 1.6GB/s의 총 대역폭이 필요합니다. Blackwell 및 Rubin과 같은 최신 하이엔드 GPU는 포화 상태를 유지하기 위해 더 많은 대역폭을 요구합니다.
NVIDIA Grace Blackwell GB200/GB300 NVL72 랙은 72개의 Blackwell GPU를 하나의 NVLink 도메인으로 연결합니다. 각 GPU가 200MB/s의 훈련 데이터를 처리해야 할 경우, 72개 GPU 모두를 가동시키려면 총 14~20GB/s의 스토리지 처리량이 필요합니다. 이러한 초고성능 워크로드에는 스토리지 솔루션도 이에 맞춰 확장되어야 합니다.
워크로드가 더 무거운 미디어나 다중 모달 샘플을 스트리밍하는 경우, 측정된 샘플당 바이트 수와 초당 샘플 수를 기준으로 보정하십시오. 이러한 경우 총 수요가 훨씬 더 높을 수 있습니다. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access