본문으로 건너뛰기

GB300 NVL72를 위한 Ray 랙 단위 배치

Ray가 GB300 NVL72의 GPU를 같은 NVLink Domain에 배치해 VLA 학습 반복 처리량을 1.13배 높였다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

NVIDIA GB300 NVL72는 72개 Blackwell GPU와 36개 Grace CPU를 한 랙의 NVLink Domain으로 연결해 GPU당 1,800 GB/s all-to-all bandwidth를 제공한다. Ray의 기존 Placement Group은 개별 노드 단위 배치만 이해했지만, 새 NVLink Domain-Aware Placement Groups는 여러 노드의 bundle을 하나의 랙 안에 STRICT_PACK으로 모아 NVLink를 통한 collective communication을 유도한다. NVIDIA GEAR와 수행한 512개 GPU 규모 VLA 학습에서 Domain-aware 배치를 적용한 실행은 초당 반복 횟수가 1.13배 높았고, 장애 때 같은 Domain의 여유 노드를 대체 자원으로 사용할 수 있었다. 현재는 STRICT_PACK만 지원하며, 향후 STRICT_SPREAD와 랙·데이터센터·가용 영역을 연결하는 nested topology로 확장될 예정이다.

빠른 이해

새로운 점

Ray Placement Group에 NVLink Domain 단위의 STRICT_PACK 제약을 추가해 랙 단위 GPU locality와 장애 복구 의도를 함께 보존한다.

핵심 메커니즘

사용자가 GPU와 CPU 요구량을 가진 여러 bundle을 정의하고 node-id에는 PACK, gpu-domain에는 STRICT_PACK을 지정하면 Ray가 bundle을 여러 노드에 나누되 하나의 NVLink Domain 안에 모은다. 이 배치로 actor 간 all_reduce와 메모리 교환이 도메인 밖의 InfiniBand나 RoCE 경로보다 빠른 NVLink 경로를 우선 사용하고, 노드 장애가 발생하면 같은 Domain의 여유 노드로 bundle을 대체한다. GB300 VLA 학습에서는 512개 GPU와 128개 노드를 8개 그룹으로 나누어 비교했으며, Domain-aware 배치를 적용한 실행의 초당 반복 횟수가 1.13배 높았다.

핵심 수치

  • GB300 NVL72 GPU 수: 72개 NVIDIA Blackwell GPU- 랙 단위 NVLink scale-up 시스템
  • GB300 NVL72 CPU 수: 36개 NVIDIA Grace CPU- GB300 NVL72 구성
  • GPU당 all-to-all 대역폭: 1,800 GB/s- GB200 및 GB300 NVL72
  • 비교 학습 규모: 512개 GPU, 128개 노드- 64개 GPU와 16개 노드로 구성된 그룹 8개
  • 학습 반복 처리량: 1.13배- NVLink Domain-aware 배치를 적용한 두 번째 실행이 첫 번째 실행보다 빠름

섹션별 상세

01

GB300 NVL72의 랙 단위 GPU 연결

기존 DGX H100과 DGX H200은 한 노드에 8개 GPU를 탑재하고 노드 사이 통신에 주로 InfiniBand나 RoCE를 사용했다. NVIDIA GB200 NVL72와 GB300 NVL72는 이 구조를 확장해 한 랙 안의 72개 NVIDIA Blackwell GPU와 36개 NVIDIA Grace CPU를 NVIDIA NVLink scale-up fabric으로 연결한다. 각 GPU는 all-to-all 방식으로 1,800 GB/s 대역폭을 사용하므로 collective communication과 메모리 전송이 중심인 작업에서 랙 전체가 하나의 계산 자원처럼 협력할 수 있다. 이 통신 구조를 효과적으로 활용하려면 애플리케이션의 작업 단위가 같은 랙, 즉 하나의 NVLink Domain 안에 배치되어야 한다.
NVIDIA GB300 랙의 구성 예시로, 상단과 하단에 10개의 Compute Tray와 8개의 Compute Tray가 배치되고 가운데에 9개의 NVLink Switch Tray가 놓인 구조를 나타낸다.
Diagram랙 내부가 Compute Tray와 NVLink Switch Tray로 층층이 구성되어 있음을 보여준다. 중앙의 NVLink Switch Tray가 여러 Compute Tray 사이의 연결을 담당하는 구조로 읽히며, GB300 NVL72가 개별 서버가 아니라 랙 단위의 NVLink Domain으로 작동한다는 본문의 설명과 연결된다.
상단과 하단의 GPU 1~6, GPU 35~36 및 중간의 9개 NVLink Switch Tray가 다수의 연결선으로 이어진 GB300 NVL72 all-to-all 토폴로지다.
Diagram72개 GPU가 여러 NVLink Switch Tray를 통해 서로 연결되는 랙 단위 통신 구조를 나타낸다. GPU가 특정 인접 GPU에만 연결되는 것이 아니라 스위치 계층을 거쳐 all-to-all 통신을 수행하므로, 관련 actor를 동일한 랙에 배치하는 것이 collective operation의 통신 경로를 줄이는 핵심 조건이 된다.
02

Ray 스케줄링에 토폴로지 제약 추가

기존 Ray Placement Group은 개별 노드에 연결된 가속기 종류와 노드 단위 PACK 또는 STRICT_PACK 전략은 처리했지만, 여러 노드가 하나의 NVLink Domain을 이루는 관계는 인식하지 못했다. 예를 들어 GPU 4개와 CPU 2개를 요구하는 bundle 18개를 STRICT_PACK으로 요청하면 Ray는 이를 72개 GPU를 가진 단일 노드 요구로 해석해 배치하지 못한다. 이전에는 GB300 랙마다 사용자 정의 label을 붙이고 bundle_label_selector로 특정 랙을 수동 지정해야 했지만, 이 방식은 자동 확장과 장애 복구에 잘 결합되지 않았다. 새 API는 node-id에는 PACK을 적용하고 gpu-domain에는 STRICT_PACK을 적용해 여러 노드의 bundle을 하나의 NVLink Domain 안에 배치하도록 스케줄러에 의도를 직접 전달한다.
03

NVLink Domain-Aware Placement Groups의 작동 방식

사용자는 16개 bundle에 각각 GPU 4개와 CPU 2개를 요구하고 topology_strategy에 ray.io/node-id와 ray.io/gpu-domain을 함께 지정한다. Ray는 먼저 bundle을 여러 노드에 PACK한 뒤, 해당 노드들이 모두 같은 gpu-domain에 속하는지 확인하고 하나의 랙 안에서 Placement Group을 완성한다. 글의 예시는 여러 GB300 랙으로 구성된 클러스터에서 총 64개 GPU를 한 NVLink Domain에 배치하는 구조이며, Figure 3은 두 랙 가운데 한 랙에 16개 노드가 모이는 가능한 할당을 나타낸다. 이 방식은 사용자가 랙별 label을 직접 관리하지 않아도 고속 인터커넥트 locality를 예약할 수 있게 한다.
python
bundles = [{"GPU": 4, "CPU": 2}] * 16
topology_strategy = {"ray.io/node-id": "PACK", "ray.io/gpu-domain": "STRICT_PACK"}
pg = placement_group(
    bundles=bundles,
    topology_strategy=topology_strategy,
    name="gb300_single_rack_16_node_pg",
)
ray.get(pg.ready())

16개 bundle을 생성한 뒤 node-id 기준으로 묶고 gpu-domain 기준으로 한 NVLink Domain에 엄격하게 배치하도록 Ray Placement Group을 생성한다.

두 개의 NVLink Domain 가운데 Domain 1에 Node 1부터 Node 16까지 16개 노드가 할당되고 Node 17과 Node 18은 여유 자원으로 남은 배치를 나타낸다.
Diagram하나의 Placement Group이 Domain 1 안에서 여러 노드에 걸쳐 배치되는 모습을 보여준다. 각 Domain에 18개 노드가 있고 16개 노드가 할당되므로, 16개 bundle을 한 랙에 모으면서 2개 노드를 여유로 유지하는 구조가 본문의 GB300 예시와 일치한다.
04

통신 경로와 장애 복구를 함께 보존

같은 NVLink Domain에 밀접하게 통신하는 actor를 배치하면 all_reduce 같은 collective operation이 느린 도메인 간 경로 대신 NVLink를 사용할 수 있다. NVLink의 GPU 간 메모리 공유 경로는 actor가 주고받는 데이터를 같은 랙 안에서 처리하게 만들며, NVIDIA SHARP 같은 collective communication 가속 기능도 활용할 여지를 높인다. 노드 장애나 유지보수가 발생하면 Ray는 여유 용량이 있는 한 원래 Placement Group이 속한 NVLink Domain에서 대체 노드를 선택해 작업을 랙 전체에 흩어지게 하지 않는다. 같은 도메인에 자리가 없으면 bundle을 재스케줄링 대기 상태로 두고, 전체 bundle 집합이 중단된 경우에는 새 NVLink Domain을 자동으로 선택한다.
Domain 1에서 Node 16이 장애 상태로 표시되고, 여유 상태였던 Node 17이 대체 노드로 선택된 배치를 보여준다.
DiagramNode 16이 중단된 뒤 같은 Domain 안의 Node 17이 배치에 편입되는 장애 복구 흐름을 시각화한다. Ray가 장애 발생 후 작업을 다른 랙으로 즉시 분산하기보다 원래 NVLink Domain의 locality를 보존한다는 설명을 뒷받침한다.
05

GB300 VLA 학습에서 확인한 처리량 차이

Anyscale와 NVIDIA GEAR 연구소는 GB300 클러스터에서 대규모 Vision Language Action 사전 학습을 수행하며 새 기능의 효과를 비교했다. 두 학습 실행은 각각 512개 GPU와 128개 노드로 구성됐고, 64개 GPU와 16개 노드로 이뤄진 그룹 8개를 사용했으며, 첫 번째 실행은 Placement Group의 NVLink Domain 배치를 보장하지 않고 두 번째 실행은 각 그룹을 하나의 NVLink Domain에 함께 배치했다. 첫 번째 실행에서는 actor가 서로 다른 통신 영역에 흩어져 collective operation 때 더 많은 데이터를 도메인 사이로 교환했지만, 두 번째 실행에서는 NVLink의 빠른 GPU 간 메모리 공유 경로를 활용했다. 그 결과 두 번째 실행의 초당 반복 횟수가 첫 번째 실행보다 1.13배 높게 측정됐고, 각 도메인에 2개의 여유 노드를 남긴 구조는 장시간 학습 중 장애 대응에도 유리한 배치를 만들었다.
Domain 1, Domain 2, Domain 7, Domain 8 등 여러 NVLink Domain에 배치된 노드들이 각각 다른 색상의 Placement Group으로 섞여 있다.
Diagram첫 번째 학습 실행에서 하나의 Placement Group에 속한 노드가 여러 Domain으로 흩어진 배치를 보여준다. actor 사이의 collective communication이 같은 NVLink Domain 안에서 처리되지 못해 도메인 간 데이터 교환이 늘어나는 문제를 시각적으로 나타낸다.
각 Placement Group의 노드가 하나의 NVLink Domain 안에 모여 있으며, Domain마다 2개의 여유 노드가 남아 있는 배치를 보여준다.
Diagram두 번째 학습 실행에서는 동일한 색상의 Placement Group이 각 Domain 내부에 집중되어 NVLink locality를 확보한다. Domain별 여유 노드 2개는 장시간 학습 중 장애가 발생했을 때 같은 영역에서 대체 노드를 선택할 수 있는 여지를 제공한다.
06

분산 추론과 강화학습으로 확장

분산 추론에서는 prefill worker와 decode worker가 KV cache와 중간 상태를 교환하므로 두 작업을 같은 NVLink Domain에 배치하면 가장 빠른 경로를 사용할 수 있다. 새 Placement Group 전략은 사용자가 관련 actor를 같은 랙에 두겠다는 의도를 표현하게 하며, 랙별 label을 직접 지정하는 방식보다 자동 확장과 장애 복구에 자연스럽게 연결된다. 강화학습에서는 training, rollout, evaluation 단계마다 통신 패턴이 다르므로 policy training worker나 모델 가중치를 자주 교환하는 actor처럼 긴밀한 구성 요소만 같은 Domain에 묶을 수 있다. 통신량이 적은 구성 요소는 Ray가 다른 위치에 배치할 수 있어 모든 작업을 한 랙에 고정하지 않고도 locality를 선택적으로 활용한다.
07

향후 토폴로지 스케줄링 방향

현재 NVLink Domain-Aware Placement Groups는 모든 bundle을 하나의 도메인에 모으는 STRICT_PACK만 지원한다. Anyscale는 별도 랙에 bundle을 분산하는 STRICT_SPREAD 같은 전략을 추가하고, 랙이 데이터센터 안에 있고 데이터센터가 가용 영역 안에 있는 실제 인프라의 계층적 구조를 표현하는 nested topology도 지원할 계획이다. 향후 Ray 애플리케이션 계층에서 GPU locality를 더 잘 확인하고 배치와 인터커넥트 효율을 조정할 수 있는 도구가 추가된다. 현재 기능은 GB200 및 GB300의 랙 단위 연결 구조를 스케줄러에 전달하는 첫 단계이며, 멀티호스트와 멀티랙 환경을 위한 topology-aware scheduling 및 autoscaling의 기반으로 이어진다.

용어 해설

NVLink Domain
여러 노드의 GPU를 NVIDIA NVLink scale-up fabric으로 연결한 논리적 통신 영역이다. GB300 NVL72에서는 하나의 랙이 NVLink Domain에 해당하며, 같은 영역에 배치된 GPU는 랙 밖의 InfiniBand나 RoCE 경로보다 빠른 GPU 간 통신과 메모리 전송을 활용할 수 있다.
Placement Group
Ray에서 여러 작업 단위인 bundle을 함께 배치하도록 예약하는 스케줄링 단위다. 각 bundle이 요구하는 GPU와 CPU 자원을 정의하고, PACK이나 STRICT_PACK 같은 전략으로 노드 단위 배치 제약을 지정한다.
All-to-All 대역폭(All-to-All Bandwidth)
한 GPU가 다른 GPU들과 동시에 데이터를 주고받을 수 있는 통신 용량이다. 글에서는 GB200 및 GB300 NVL72가 GPU당 1,800 GB/s의 all-to-all bandwidth를 제공해 72개 GPU가 하나의 계산 자원처럼 협력한다고 설명한다.
집단 통신(Collective Communication)
분산 학습에 참여한 여러 GPU가 동시에 데이터를 교환하는 통신 방식이다. all_reduce처럼 각 GPU의 값을 모아 다시 모든 GPU에 전달하는 연산이 대표적이며, GPU 사이의 연결 경로가 빠를수록 통신 대기 시간이 줄어든다.
NVIDIA SHARP
분산 학습의 collective communication을 가속하는 NVIDIA 기술이다. NVLink Domain 안에 밀접하게 통신하는 actor를 배치하면 all_reduce 같은 연산에서 NVLink를 활용하고 NVIDIA SHARP와 같은 가속 기능도 더 효과적으로 사용할 수 있다.
Placement Group Bundle
Placement Group 안에서 특정 노드에 배치될 자원 요구량을 나타내는 단위다. 예시에서는 각 bundle이 GPU 4개와 CPU 2개를 요구하며, 16개 bundle을 하나의 NVLink Domain에 배치해 총 64개 GPU 규모의 actor 집합을 구성한다.

기술

  • NVIDIA GB300 NVL72
  • NVIDIA GB200 NVL72
  • NVIDIA Blackwell GPU
  • NVIDIA Grace CPU
  • NVIDIA NVLink
  • Ray
  • Placement Groups
  • NVIDIA SHARP
  • InfiniBand
  • RoCE
  • VLA

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

수집 2026. 08. 14.출처 타입 WEB

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.