용어 및 기본 사항
대규모 모델 훈련은 일반적으로 단일 머신, 8-GPU 호스트를 사용하여 클러스터를 형성합니다. 모델에는 8*{A100, A800, H100, H800}이 포함됩니다. 아래는 일반적인 8*A100 GPU 호스트의 하드웨어 토폴로지입니다.
PCIe 스위치 칩
PCIe를 지원하는 CPU, 메모리, 스토리지(NVME), GPU, 네트워크 카드와 같은 장치는 PCIe 버스나 전용 PCIe 스위치 칩에 연결하여 상호연결성을 구현할 수 있습니다.
현재 PCIe 제품에는 5세대가 있으며, 최신 제품은 GenXNUMX입니다.
NVLink
정의
위키피디아에 따르면, NVLink는 Nvidia가 개발한 와이어 기반 직렬 다중 레인 근거리 통신 링크입니다. PCI Express와 달리 장치는 여러 개의 NVLink로 구성될 수 있으며, 장치는 중앙 허브 대신 메시 네트워킹을 사용하여 통신합니다. 이 프로토콜은 2014년 XNUMX월에 처음 발표되었으며 독점적인 고속 신호 상호 연결(NVHS)을 사용합니다.
요약하자면, NVLink는 동일한 호스트 내의 서로 다른 GPU 간의 고속 상호 연결 방법입니다. 성공적인 패킷 전송을 보장하고, 더 높은 성능을 제공하며, PCIe를 대체하는 단거리 통신 링크입니다. 여러 레인을 지원하며, 레인 수에 따라 링크 대역폭이 선형적으로 증가합니다. 동일한 노드 내의 GPU는 NVIDIA의 독점 기술을 활용하여 풀 메시 방식(스파인-리프 아키텍처와 유사)으로 NVLink를 통해 상호 연결됩니다.
진화: 세대 1/2/3/4
주요 차이점은 NVLink당 레인 수와 레인당 대역폭에 있습니다(제공된 수치는 양방향 대역폭입니다).
예 :
A100: 2개 레인/NVSwitch * 6개 NVSwitch * 50GB/s/레인 = 600GB/s 양방향 대역폭(300GB/s 단방향). 참고: 이는 한 GPU에서 모든 NVSwitch로의 총 대역폭입니다.
A800: 레인을 4개 줄여서 8레인 * 50GB/s/레인 = 양방향 대역폭 400GB/s(단방향 200GB/s)가 됩니다.
모니터링
실시간 NVLink 대역폭은 DCGM 메트릭을 기반으로 수집될 수 있습니다.
NV스위치
일반적인 8*A100 GPU 호스트 하드웨어 토폴로지는 아래 다이어그램을 참조하세요.
NVSwitch는 독립적인 외부 스위치가 아닌 GPU 모듈 내에 캡슐화된 NVIDIA 스위치 칩입니다.
아래는 Inspur의 실제 머신 이미지입니다. 100개의 상자는 XNUMX개의 AXNUMX GPU를 나타내고, 오른쪽의 XNUMX개의 두꺼운 방열판은 NVSwitch 칩을 덮습니다.
NVLink 스위치
NVSwitch는 스위치처럼 들리지만 실제로는 동일한 호스트 내에서 GPU를 연결하는 데 사용되는 GPU 모듈의 스위치 칩입니다.
2022년, NVIDIA는 이 칩을 NVLink Switch라는 실제 스위치로 출시했는데, 이는 호스트 간에 GPU 장치를 연결하도록 설계되었습니다. 이름은 혼동하기 쉽습니다.
HBM(고대역폭 메모리)
유래
전통적으로 GPU 메모리와 일반 메모리(DDR)는 마더보드에 장착되고 PCIe를 통해 프로세서(CPU, GPU)에 연결됩니다. 이는 PCIe에서 속도 병목 현상을 발생시키며 Gen4는 64GB/s를 제공하고 Gen5는 128GB/s를 제공합니다. 이를 극복하기 위해 일부 GPU 제조업체(NVIDIA뿐만 아니라)는 여러 개의 DDR 칩을 쌓아 GPU와 함께 패키징합니다. 이런 방식으로 각 GPU는 PCIe 스위치 칩을 통해 라우팅하지 않고도 자체 메모리와 상호 작용할 수 있어 속도가 크게 향상됩니다. 이 "고대역폭 메모리"는 HBM으로 약칭됩니다. HBM 시장은 현재 SK Hynix와 Samsung과 같은 한국 기업이 주도하고 있습니다.
Evolution: HBM 1/2/2e/3/3e
위키피디아에 따르면 AMD MI300X는 192TB/s 대역폭의 3GB HBM5.2 구성을 사용합니다. HBM3e는 HBM3의 향상된 버전으로, 속도는 6.4GT/s에서 8GT/s까지입니다.
대역폭 단위
대규모 GPU 트레이닝의 성능은 데이터 전송 속도와 직접 관련이 있습니다. 여기에는 PCIe 대역폭, 메모리 대역폭, NVLink 대역폭, HBM 대역폭, 네트워크 대역폭과 같은 다양한 링크가 포함됩니다. 네트워크 대역폭은 일반적으로 초당 비트(b/s)로 표현되며 일반적으로 단방향(TX/RX)을 나타냅니다. 다른 모듈의 대역폭은 일반적으로 초당 바이트(B/s) 또는 초당 트랜잭션(T/s)으로 표현되며 일반적으로 총 양방향 대역폭을 나타냅니다. 대역폭을 비교할 때 이러한 단위를 구별하고 변환하는 것이 중요합니다.
일반적인 8A100/8A800 호스트
Host Topology: 2-2-4-6-8-8
- 2개의 CPU(및 해당 메모리, NUMA)
- 2개의 스토리지 네트워크 카드(분산 스토리지, 인밴드 관리 등에 액세스하기 위한)
- 4 PCIe Gen4 스위치 칩
- 6개의 NVSwitch 칩
- GPU 8 개
- 8개의 GPU 전용 네트워크 카드
다음 다이어그램은 더 자세한 보기를 제공합니다.
스토리지 네트워크 카드
이것들은 PCIe를 통해 CPU에 직접 연결됩니다. 그 목적은 다음과 같습니다.
분산 저장소에서 데이터를 읽고 쓰는 작업(예: 훈련 데이터를 읽고 체크포인트를 쓰는 작업)
일반 노드 관리, SSH, 모니터링 등
공식 권장 사항은 BF3 DPU를 사용하는 것이지만 대역폭이 요구 사항을 충족하는 한 어떤 솔루션이든 작동합니다. 비용 효율적인 네트워킹을 위해 RoCE를 사용하고 최상의 성능을 위해 IB를 사용합니다.
NVSwitch Fabric: 노드 내 풀 메시
8개의 GPU는 6개의 NVSwitch 칩, 즉 NVSwitch 패브릭을 통해 풀 메시 구성으로 연결됩니다. 풀 메시의 각 링크는 n * bw-per-nvlink-lane의 대역폭을 갖습니다.
NVLink100를 사용하는 A3의 경우 레인당 50GB/s이므로 전체 메시의 각 링크는 12*50GB/s = 600GB/s(양방향)이고 단방향은 300GB/s입니다.
축소형 버전인 A800의 경우 12개 레인이 8개 레인으로 줄어들어 각 링크는 8*50GB/s = 400GB/s(양방향), 단방향은 200GB/s가 됩니다.
nvidia-smi topo를 사용하여 토폴로지 보기
아래는 8*A800 머신에서 nvidia-smi가 표시하는 실제 토폴로지입니다(네트워크 카드는 쌍으로 본딩되고 NIC 0~3은 본딩됨):
GPU 사이(왼쪽 상단 영역): 모두 NV8이며, NVLink 연결이 8개임을 나타냅니다.
NIC 간:
동일한 CPU에서: NODE는 NUMA를 교차할 필요는 없지만 PCIe 스위치 칩을 교차해야 함을 나타냅니다.
다른 CPU에서: SYS는 NUMA를 교차해야 함을 나타냅니다.
GPU와 NIC 사이:
동일한 CPU 및 동일한 PCIe 스위치 칩: NODE는 교차하는 PCIe 스위치 칩만 나타냅니다.
동일한 CPU이지만 다른 PCIe 스위치 칩이 있는 경우: NODE는 PCIe 스위치 칩과 PCIe 호스트 브리지가 교차함을 나타냅니다.
다양한 CPU에서: SYS는 NUMA, PCIe 스위치 칩 및 가장 긴 거리를 교차함을 나타냅니다.
GPU 트레이닝 클러스터 네트워킹: IDC GPU Fabric
GPU 노드 상호 연결 아키텍처:
컴퓨팅 네트워크:
GPU 네트워크 인터페이스 카드(NIC)는 랙 상단 스위치(리프)에 직접 연결됩니다. 이러한 리프 스위치는 풀 메시 토폴로지로 스파인 스위치에 연결되어 호스트 간 GPU 컴퓨트 네트워크를 형성합니다. 이 네트워크의 목적은 서로 다른 노드의 GPU 간 데이터 교환을 용이하게 하는 것입니다. 각 GPU는 PCIe 스위치 칩을 통해 NIC에 연결됩니다. GPU <–> PCIe 스위치 <–> NIC.
스토리지 네트워크:
CPU에 직접 연결된 두 개의 NIC는 다른 네트워크에 연결되어 주로 데이터 읽기/쓰기 작업과 SSH 관리를 위해 사용됩니다.
RoCE 대 InfiniBand:
컴퓨팅 및 스토리지 네트워크 모두 AI에 필요한 고성능을 달성하기 위해 RDMA가 필요합니다. 현재 두 가지 RDMA 옵션이 있습니다.
RoCEv2: 퍼블릭 클라우드 제공자는 일반적으로 이 네트워크를 8-GPU 호스트에 사용합니다(예: 6*8Gbps 구성의 CX100). 성능 요구 사항을 충족하는 동시에 비교적 저렴합니다.
InfiniBand(IB): 동일한 NIC 대역폭에서 RoCEv20보다 2% 이상 더 뛰어난 성능을 제공하지만 가격은 두 배나 비쌉니다.
데이터 링크 대역폭 병목 현상 분석:
주요 링크 대역폭은 다이어그램에 표시되어 있습니다.
호스트 내부 GPU 통신: 양방향 대역폭 600GB/s(단방향 300GB/s)의 NVLink를 활용합니다.
호스트 내부 GPU와 NIC 간 통신: 양방향 대역폭이 4GB/s(단방향 64GB/s)인 PCIe Gen32 스위치 칩을 사용합니다.
호스트 간 GPU 통신: 데이터 전송을 위해 NIC에 의존합니다. 국내 A100/A800 모델의 주류 대역폭은 100Gbps(12.5GB/s 단방향)로, 호스트 내 통신에 비해 성능이 상당히 낮습니다.
- 200Gbps(25GB/s): PCIe Gen4의 단방향 대역폭에 접근합니다.
- 400Gbps(50GB/s): PCIe Gen4의 단방향 대역폭을 초과합니다.
따라서 이러한 모델에서 400Gbps NIC를 사용하는 것은 그다지 효과적이지 않습니다. 400Gbps를 사용하려면 PCIe Gen5 성능을 최대한 활용해야 하기 때문입니다.
일반적인 8H100/8H800 호스트
GPU 보드 폼 팩터에는 두 가지 유형이 있습니다.
- PCIe Gen5
- SXM5: 더 높은 성능을 제공합니다.
H100 칩 레이아웃:
H100 GPU 칩의 내부 구조는 다음과 같습니다.
4nm 공정 기술.
가장 아랫줄은 총 양방향 대역폭이 18GB/s(4개 레인 * 900GB/s/레인)인 18개의 Gen25 NVLink 레인으로 구성됩니다.
가운데 파란색 부분이 L2 캐시입니다.
측면에는 GPU 메모리 역할을 하는 HBM 칩이 들어 있습니다.
호스트 내부 하드웨어 토폴로지:
A100 8-GPU 구조와 유사하지만 다음과 같은 차이점이 있습니다.
NVSwitch 칩의 수가 6개에서 4개로 줄었습니다.
CPU와의 연결은 PCIe Gen4 x16에서 PCIe Gen5 x16으로 업그레이드되어 양방향 대역폭은 128GB/s가 되었습니다.
네트워킹 :
A100과 유사하지만 표준 구성이 400Gbps CX7 NIC로 업그레이드되었습니다. 그렇지 않으면 PCIe 스위치와 NVLink/NVSwitch 간의 대역폭 격차가 더 커질 것입니다.
일반적인 4*L40S/8*L40S 호스트
L40S는 2023년에 출시될 예정인 차세대 비용 효율적인 다기능 GPU로, A100의 경쟁자로 포지셔닝되었습니다. 대규모 기초 모델을 훈련하는 데 적합하지는 않지만(나중에 설명) 거의 모든 다른 작업을 처리할 수 있다고 광고됩니다.
L40S와 A100 구성 및 기능 비교
L40S의 주요 특징 중 하나는 출시 시간이 짧다는 것입니다. 즉, 주문에서 납품까지의 기간이 A100/A800/H800에 비해 훨씬 짧습니다. 이는 다음과 같은 기술적, 비기술적 이유 때문입니다. FP64 및 NVLink 제거.
HBM 생산 용량(및 고급 패키징)에 의존하지 않는 GDDR6 메모리를 사용합니다.
비용이 낮은 데에는 여러 가지 요인이 있으며, 이에 대해서는 나중에 자세히 설명하겠습니다.
가장 큰 비용 절감은 GPU 자체에서 발생할 가능성이 높은데, 이는 특정 모듈이나 기능을 제거하거나 더 저렴한 대체 제품을 사용하기 때문입니다.
PCIe Gen4 스위치 계층 제거와 같은 전체 시스템 비용 절감. 4x/8x GPU와 비교했을 때 나머지 시스템 구성 요소의 비용은 거의 무시할 수 있습니다.
L40S와 A100의 성능 비교
공식적인 성능 비교는 다음과 같습니다.
성능: 1.2배에서 2배까지 (특정 시나리오에 따라 다름)
전력 소비량: L40S 두 대의 전력 소비량은 A100 한 대와 거의 같습니다.
L40S 호스트에 대한 공식 권장 사항은 4개가 아닌 8개의 GPU가 있는 단일 머신이라는 점에 유의하는 것이 중요합니다(이유는 나중에 설명). 따라서 일반적으로 두 개의 4L40S 장치와 단일 8A100 장치 간에 비교가 이루어집니다. 또한 다양한 시나리오에서 많은 성능 개선에는 주요 전제 조건이 있습니다. 즉, 네트워크는 200Gbps RoCE 또는 IB 네트워크여야 하며, 다음에 설명하겠습니다.
L40S 시스템 조립
추천 아키텍처: 2-2-4
A100의 2-2-4-6-8-8 아키텍처와 비교했을 때 공식적으로 권장되는 L40S GPU 호스트 아키텍처는 2-2-4입니다. 단일 머신의 물리적 토폴로지는 다음과 같습니다.
가장 눈에 띄는 변화는 CPU와 GPU 사이의 PCIe 스위치 칩을 제거한 것입니다. NIC와 GPU는 모두 CPU의 내장 PCIe Gen4 x16(64GB/s)에 직접 연결됩니다.
- 2개의 CPU(NUMA)
- 2개의 듀얼 포트 CX7 NIC(각 NIC 2*200Gbps)
- 4개의 L40S GPU
또한, 하나의 듀얼 포트 스토리지 NIC만 제공되며, CPU 중 하나에 직접 연결됩니다.
이 구성은 각 GPU에 평균 200Gbps의 네트워크 대역폭을 제공합니다.
비추천 아키텍처: 2-2-8
표시된 대로 4개의 GPU를 탑재한 단일 머신에 비해 8개의 GPU를 탑재한 단일 머신에는 PCIe Gen5 스위치 칩 XNUMX개가 필요합니다.
현재 단일 PCIe Gen5 스위치 칩의 가격은 10,000달러라고 합니다(확인되지는 않았지만). 단일 머신에 칩이 2개 필요하기 때문에 비용 효율성이 낮습니다.
PCIe 스위치를 생산하는 제조업체는 단 하나뿐이며, 생산 용량이 제한적이고 리드 타임이 깁니다.
GPU당 네트워크 대역폭이 절반으로 줄어듭니다.
네트워킹
공식 권장 사항은 4Gbps RoCE/IB 네트워킹과 결합된 200개 GPU 모델입니다.
데이터 링크 대역폭 병목 현상 분석
예를 들어 동일한 CPU 아래에 두 개의 L40S GPU를 사용하는 경우 두 가지 가능한 연결 옵션이 있습니다.
- 직접 CPU 처리:
경로: GPU0 <–PCIe–> CPU <–PCIe–> GPU1
대역폭: 양방향 대역폭이 4GB/s(단방향 16GB/s)인 PCIe Gen64 x32.
CPU 처리 병목 현상: 추후 결정.
- CPU 처리 우회:
경로: GPU0 <–PCIe–> NIC <– RoCE/IB 스위치 –> NIC <–PCIe–> GPU1
대역폭: 양방향 대역폭이 4GB/s(단방향 16GB/s)인 PCIe Gen64 x32.
GPU당 평균 대역폭: 각 GPU에는 단방향 200Gbps 네트워크 포트가 있으며, 이는 25GB/s에 해당합니다.
NCCL 지원: 최신 버전의 NCCL은 L40S에 맞춰 조정되었으며, 기본적으로 데이터를 외부로 라우팅하고 되돌려 보냅니다.
이 방법은 더 길어 보이지만 NIC와 스위치가 200Gbps RoCE/IB 네트워크로 적절히 구성된 경우 첫 번째 방법보다 더 빠르다고 합니다. 이 네트워크 아키텍처에서는 대역폭이 충분하면 두 GPU 간의 통신 대역폭과 지연 시간이 동일 머신 내에 있든 동일 CPU에 있든 일관됩니다. 이를 통해 클러스터의 수평적 확장이 가능합니다.
비용 및 성능 고려 사항:
GPU 머신의 비용은 감소합니다. 그러나 네트워크 대역폭 요구 사항이 낮은 작업의 경우 NVLINK 비용이 네트워크로 효과적으로 이전됩니다. 따라서 L200S를 사용한 다중 GPU 트레이닝의 성능을 최대한 활용하려면 40Gbps 네트워크가 필수적입니다.
방법 2의 대역폭 병목 현상:
동일한 호스트 내의 GPU 간 대역폭 병목 현상은 NIC 속도에 따라 결정됩니다. 권장되는 2*CX7 구성에서도:
- L40S: 200Gbps(단방향 NIC 속도)
- A100: 300GB/s(단방향 NVLINK3) == 12x200Gbps
- A800: 200GB/s(단방향 NVLINK3) == 8x200Gbps
L40S의 GPU 간 대역폭은 A12 NVLINK보다 100배, A8 NVLINK보다 800배 느리기 때문에 데이터 집약적인 기초 모델 학습에는 적합하지 않습니다.
테스트 고려 사항:
앞서 언급했듯이, 단일 4-GPU L40S 머신을 테스트할 때에도 최적의 GPU 간 성능을 달성하려면 200Gbps 스위치가 필요합니다.
관련 상품:
- NVIDIA MMA4Z00-NS400 호환 400G OSFP SR4 플랫 탑 PAM4 850nm 30m on OM3/50m on OM4 MTP/MPO-12 다중 모드 FEC 광 트랜시버 모듈 $650.00
- NVIDIA MMA4Z00-NS-FLT 호환 800Gb/s 트윈 포트 OSFP 2x400G SR8 PAM4 850nm 100m DOM 듀얼 MPO-12 MMF 광 트랜시버 모듈 $850.00
- NVIDIA MMA4Z00-NS 호환 800Gb/s 트윈 포트 OSFP 2x400G SR8 PAM4 850nm 100m DOM 듀얼 MPO-12 MMF 광 트랜시버 모듈 $750.00
- NVIDIA MMS4X00-NM 호환 800Gb/s 트윈 포트 OSFP 2x400G PAM4 1310nm 500m DOM 듀얼 MTP/MPO-12 SMF 광 트랜시버 모듈 $1100.00
- NVIDIA MMS4X00-NM-FLT 호환 800G 트윈 포트 OSFP 2x400G 플랫 탑 PAM4 1310nm 500m DOM 듀얼 MTP/MPO-12 SMF 광 트랜시버 모듈 $1200.00
- NVIDIA MMS4X00-NS400 호환 400G OSFP DR4 플랫 탑 PAM4 1310nm MTP/MPO-12 500m SMF FEC 광 트랜시버 모듈 $800.00
- Mellanox MMA1T00-HS 호환 200G Infiniband HDR QSFP56 SR4 850nm 100m MPO-12 APC OM3/OM4 FEC PAM4 광 트랜시버 모듈 $200.00
- NVIDIA MFP7E10-N010 호환 10m(33ft) 8 섬유 낮은 삽입 손실 암-암 MPO 트렁크 케이블 극성 B APC-APC LSZH 다중 모드 OM3 50/125 $47.00
- NVIDIA MCP7Y00-N003-FLT 호환 3m(10피트) 800G 트윈 포트 OSFP - 2x400G 플랫 탑 OSFP InfiniBand NDR 브레이크아웃 DAC $275.00
- NVIDIA MCP7Y70-H002 호환 2m(7피트) 400G 트윈 포트 2x200G OSFP - 4x100G QSFP56 패시브 브레이크아웃 직접 연결 구리 케이블 $155.00
- NVIDIA MCA4J80-N003-FTF 호환 3m(10피트) 800G 트윈 포트 2x400G OSFP - 2x400G OSFP InfiniBand NDR 활성 구리 케이블, 한쪽 끝은 평면 상단, 다른 쪽 끝은 핀형 상단 $600.00
- NVIDIA MCP7Y10-N002 호환 가능한 2m(7피트) 800G InfiniBand NDR 트윈 포트 OSFP - 2x400G QSFP112 브레이크아웃 DAC $200.00