체인은 가장 약한 링크만큼 강력하며 AI/ML 인프라는 가장 느린 구성 요소만큼 빠릅니다. GPU를 사용하여 기계 학습 모델을 훈련하는 경우 약한 링크가 스토리지 솔루션이 될 수 있습니다. 그 결과는 제가 "GPU 부족 문제"라고 부르는 것입니다. GPU 부족 문제는 네트워크 또는 스토리지 솔루션이 GPU를 완전히 활용할 수 있을 만큼 빠르게 훈련 로직에 훈련 데이터를 제공할 수 없을 때 발생합니다. 증상은 꽤 분명합니다. GPU를 모니터링하는 경우 GPU가 완전히 활용되는 데 결코 가까워지지 않는다는 것을 알 수 있습니다. 훈련 코드를 계측한 경우 총 훈련 시간이 IO에 의해 좌우된다는 것을 알 수 있습니다.
불행하게도 이 문제로 고민하고 있는 사람들에게는 나쁜 소식이 있습니다. 이 문제가 앞으로 몇 년 동안 어떻게 더 악화될 것인지 이해하기 위해 GPU를 통해 이루어지고 있는 몇 가지 발전을 살펴보겠습니다.
GPU가 점점 빨라지고 있습니다. 원시 성능이 향상될 뿐만 아니라 메모리와 대역폭도 증가합니다. Nvidia의 최신 GPU의 세 가지 특징을 살펴보겠습니다.
GPU | 성능 | 메모리 | 메모리 대역폭 |
---|---|---|---|
A100 | 624테라플롭 | 40GB | 1,555GB/초 |
H100 | 1,979테라플롭스 | 80GB | 3.35TB/초 |
H200 | 1,979테라플롭스 | 141GB | 4.8TB/초 |
위 표에서는 A100용 PCIe(Peripheral Component Interconnect Express) 소켓 솔루션과 H100 및 H200용 SXM(Server PCI Express Module) 소켓 솔루션에 맞는 통계를 사용합니다. A100에 대한 SXM 통계는 존재하지 않습니다. 성능과 관련하여 부동 소수점 16 Tensor Core 통계가 비교에 사용됩니다.
위의 통계에 대한 몇 가지 관찰은 주목할 가치가 있습니다. 먼저 H100과 H200은 동일한 성능(1,979 TFLOPS)을 갖고 있어 A100보다 3.17배 향상됐다. H100은 A100보다 두 배 많은 메모리를 갖고 있으며 메모리 대역폭도 비슷한 양만큼 증가했습니다. 그렇지 않으면 GPU가 스스로 고갈될 것입니다. H200은 무려 141GB의 메모리를 처리할 수 있으며 메모리 대역폭도 다른 GPU에 비해 비례적으로 증가했습니다.
각 통계를 더 자세히 살펴보고 이것이 머신러닝에 어떤 의미인지 논의해 보겠습니다.
성능 - 테라플롭(TFLOP)은 초당 1조(10^12) 부동 소수점 연산을 의미합니다. 이는 1 뒤에 0이 12개 있는 1입니다(1,000,000,000,000). 모델 교육 중에 발생하는 부동 소수점 연산에는 간단한 텐서 수학과 손실 함수(그라디언트라고도 함)에 대한 첫 번째 파생이 포함되므로 TFLOP를 기가바이트 단위의 IO 수요와 동일시하기가 어렵습니다. 그러나 상대적인 비교는 가능합니다. 위의 통계를 보면 둘 다 1,979 TFLOPS로 성능을 발휘하는 H100과 H200이 3배 더 빠르다는 것을 알 수 있습니다. 다른 모든 것이 따라잡을 수 있다면 잠재적으로 데이터를 3배 더 빠르게 소비할 수 있습니다.
GPU 메모리 - 비디오 RAM 또는 그래픽 RAM이라고도 합니다. GPU 메모리는 시스템의 주 메모리(RAM)와 분리되어 있으며 그래픽 카드에서 수행되는 집약적인 그래픽 처리 작업을 처리하도록 특별히 설계되었습니다. GPU 메모리는 모델을 훈련할 때 배치 크기를 결정합니다. 과거에는 학습 로직을 CPU에서 GPU로 이동할 때 배치 크기가 줄어들었습니다. 그러나 GPU 메모리가 용량 측면에서 CPU 메모리를 따라잡으면 GPU 훈련에 사용되는 배치 크기가 늘어납니다. 성능과 메모리 용량이 동시에 증가하면 결과적으로 1GB의 훈련 데이터가 더 빠르게 처리되는 더 큰 요청이 발생합니다.
메모리 대역폭 - GPU 메모리 대역폭을 메모리와 계산 코어를 연결하는 "고속도로"로 생각하십시오. 단위 시간당 전송할 수 있는 데이터의 양을 결정합니다. 고속도로가 넓어지면 주어진 시간에 더 많은 자동차가 지나갈 수 있는 것처럼, 메모리 대역폭이 높을수록 메모리와 GPU 간에 더 많은 데이터가 이동할 수 있습니다. 보시다시피, 이러한 GPU의 설계자는 메모리에 비례하여 각 새 버전의 메모리 대역폭을 늘렸습니다. 따라서 칩의 내부 데이터 버스는 병목 현상이 발생하지 않습니다.
2023년 8월 엔비디아는
Grace Hopper Superchip의 모든 사양은 이전 칩에 비해 개선되었지만 AI/ML 엔지니어에게 가장 중요한 혁신은 통합 메모리입니다. Grace Hopper는 GPU에 CPU 메모리에 대한 전체 액세스 권한을 부여합니다. 과거에는 훈련에 GPU를 사용하려는 엔지니어가 먼저 데이터를 시스템 메모리로 가져온 다음 거기에서 데이터를 GPU 메모리로 이동해야 했기 때문에 이는 중요합니다. Grace Hopper를 사용하면 GPU에 데이터를 가져오기 위해 CPU 메모리를 바운스 버퍼로 사용할 필요가 없습니다.
몇 가지 주요 GPU 통계와 Grace Hopper의 기능을 간단히 비교하는 것은 GPU를 업그레이드하고 다른 모든 것이 유지되는지 확인하는 책임을 맡은 사람에게는 약간 두려운 일입니다. 스토리지 솔루션은 이러한 GPU 개선을 따라잡기 위해 더 빠른 속도로 데이터를 제공해야 합니다. 배고픈 GPU 문제에 대한 일반적인 솔루션을 살펴보겠습니다.
조직이 기존 스토리지 솔루션을 교체하거나 업그레이드할 필요가 없는 이 문제에 대한 일반적이고 확실한 솔루션이 있습니다. 기존 스토리지 솔루션을 그대로 유지하여 조직에 필요한 모든 엔터프라이즈 기능을 활용할 수 있습니다. 이 스토리지 솔루션은 조직의 모든 비정형 데이터를 보유하는 데이터 레이크일 가능성이 높습니다. 따라서 용량이 상당히 클 수 있으며 총 소유 비용을 고려해야 합니다. 또한 중복성, 안정성 및 보안을 위해 활성화된 많은 기능이 있으며, 이는 모두 성능에 영향을 미칩니다.
그러나 수행할 수 있는 작업은 컴퓨팅 인프라와 동일한 데이터 센터에 있는 스토리지 솔루션을 설정하는 것입니다. 이상적으로는 컴퓨팅과 동일한 클러스터에 있는 것입니다. 사용 가능한 최고의 저장 장치를 갖춘 고속 네트워크가 있는지 확인하십시오. 여기에서 ML 학습에 필요한 데이터만 복사합니다.
아마존이 최근 발표한
위에서 설명한 일반적인 솔루션을 사용하려면 AWS가 더 높은 비용으로 특수 버킷을 제공하여 S3 스토리지 솔루션을 사용자 정의해야 했습니다. 또한 MinIO 고객이 아닌 일부 조직에서는 위에서 설명한 간단한 작업을 수행하는 특수 스토리지 솔루션을 구입하고 있습니다. 불행하게도 상대적으로 간단한 문제를 해결하려면 새로운 제품이 필요하기 때문에 기존 인프라에 복잡성이 추가됩니다.
아이러니한 점은 MinIO 고객이 항상 이 옵션을 가지고 있다는 것입니다. NVMe 드라이브가 있는 고속 네트워크에 MinIO를 새로 설치하면 위에서 설명한 것과 똑같은 작업을 수행할 수 있습니다. MinIO는 소프트웨어 정의 스토리지 솔루션입니다. 동일한 제품이 다양한 스토리지 장치를 사용하여 베어메탈 또는 선택한 클러스터에서 실행됩니다. 기업 데이터 레이크가 HDD가 포함된 베어메탈에서 MinIO를 사용하고 ML이 아닌 모든 데이터에 대해 제대로 작동하는 경우 이를 교체할 이유가 없습니다. 그러나 GPU를 사용하기 때문에 ML에 사용되는 데이터세트에 더 빠른 IO가 필요한 경우 이 게시물에서 설명한 접근 방식을 고려해 보세요. MinIO의 고속 인스턴스에 사용할 ML 데이터의 복사본을 만드십시오. MinIO의 강화된 설치에는 골드 복사본이 항상 존재해야 합니다. 이를 통해 MinIO의 고속 인스턴스에서 복제 및 암호화와 같은 기능을 비활성화하여 성능을 더욱 향상시킬 수 있습니다. MinIO를 사용하면 데이터 복사가 쉽습니다.
MinIO는 배고픈 GPU를 공급하는 데 필요한 성능을 제공합니다.
다운로드
여기에도 나타납니다.