AEGLOSLAB 엔비디아 기술 스택

제4부 데이터센터와 스케일

4.7 NVLink·NVSwitch II — 도메인 토폴로지

4.7.1 이 장에서 배우는 것 / 선수 지식

4.6이 링크 하나의 대역폭이었다면, 이 장은 여러 GPU를 잇는 형태(토폴로지) 다. 핵심 질문: "8개(또는 72개) GPU를 어떻게 연결해야 임의의 두 GPU가 빠르게 통신하는가?" 답은 NVSwitch로 전결합(switched all-to-all) 이다. 토폴로지가 왜 중요한지(집합연산 효율·균일성), bisection 대역폭으로 어떻게 평가하는지, 그리고 도메인이 노드를 넘어 커질 때(4.5의 NVL72) 토폴로지가 병렬화에 주는 영향을 본다.

배우는 것:

  • 직접 연결 vs NVSwitch 전결합의 차이와, 전결합이 주는 균일한 any-to-any 대역.
  • 노드 내 8-GPU NVSwitch 토폴로지와, GPU 쌍 간 대역이 균일한지(SXM)·비균일한지(PCIe 혼재).
  • bisection 대역폭 개념으로 토폴로지의 통신 용량을 평가한다.
  • 도메인이 노드를 넘을 때(NVLink Switch System·NVL72) 토폴로지가 집합연산·병렬화 매핑(4.13~4.14)에 주는 영향.

선수 지식: 4.6(링크·대역폭·P2P·topo -m — 이 장은 그 형태 확장), 4.5(NVLink 도메인·NVL72), 1.3(GPC·SM — 노드 내 계층), 4.13~4.14(집합연산·매핑 — 토폴로지 위에서 동작), 4.11(노드 간 IB — 토폴로지의 다음 계층). 환경은 0.3. GPU 수·NVSwitch 구성·대역은 세대·시스템 의존 → 확인 필요. 이 장은 토폴로지를 읽고 평가하는 법에 집중.

4.7.2 직접 연결 vs 스위치 전결합

GPU N개를 잇는 두 방식:

직접 연결(mesh). GPU끼리 NVLink를 직접 잇는다. 문제: GPU가 늘수록 모든 쌍을 직결하려면 링크가 폭발(N(N-1)/2 쌍)하고, GPU당 링크 수가 유한해 전부 직결 불가 → 일부 쌍은 1홉, 일부는 여러 홉(비균일).

GPU0 GPU1 GPU2 GPU3

GPU0이 GPU3에 가려면 중간 GPU를 경유(멀티홉)할 수도 있어 쌍마다 대역·홉 수가 다르고(비균일) 라우팅이 복잡하다.

NVSwitch 전결합(switched). GPU를 직접 잇지 않고 모두 NVSwitch에 연결한다. 임의의 두 GPU가 NVSwitch를 거쳐 동일한 풀 대역·1홉으로 통신.

GPU0 NVSwitch (crossbar) GPU1 GPU2 GPU3

모든 GPU가 스위치에 연결돼, 임의의 쌍이 풀 대역·균일·1홉(crossbar)으로 통신한다.

핵심: NVSwitch는 crossbar(교차 스위치) 라 임의의 두 GPU가 비차단(non-blocking)으로 풀 대역 통신한다. 직접 연결의 "쌍마다 다른 대역·멀티홉" 문제를 없애 균일한 all-to-all을 준다. 이것이 집합연산(4.13)을 단순·효율적으로 만든다.

4.7.3 노드 내 8-GPU 토폴로지

전형적 HGX 8-GPU 노드(SXM)는 여러 NVSwitch 칩으로 8장을 전결합한다(정확한 NVSwitch 수·링크 배분은 세대 의존):

HGX 8-GPU 베이스보드 GPU0 GPU1 GPU2 GPU3 NVSwitch들 (crossbar 평면) GPU4 GPU5 GPU6 GPU7

GPU0..GPU7이 각자의 NVLink 링크를 여러 NVSwitch에 분산 연결해, 임의의 두 GPU가 풀 NVLink 대역으로 균일하게 통신한다.

  • SXM/HGX: 8장이 NVSwitch로 전결합 → 모든 쌍이 균일 고대역(4.6의 topo -m에서 전부 NV#).
  • PCIe 서버: NVSwitch가 없거나 제한 → 일부 쌍만 NVLink 브리지, 나머지는 PCIe(SYS/PHB). 비균일 — 통신 매핑에 주의(4.6.6).

그래서 4.1에서 "다GPU 학습은 SXM·HGX"였다. SXM 8-GPU는 균일 전결합이라 어느 GPU 쌍에 통신을 배치해도 같은 고대역 — 병렬화 매핑이 단순하고 집합연산이 효율적. PCIe 노드는 비균일이라 토폴로지를 신경 써야 한다.

4.7.4 bisection 대역폭 — 토폴로지 평가 척도

토폴로지의 통신 용량을 재는 표준 척도가 bisection 대역폭이다: GPU를 절반으로 갈랐을 때, 두 절반을 잇는 링크들의 총 대역폭. all-to-all·all-reduce처럼 "절반이 다른 절반과 통신"하는 패턴의 한도를 가늠한다.

bisection 대역 = 가로지르는 모든 링크 대역의 합 절반 {0,1,2,3} 절반 {4,5,6,7}
토폴로지이분면 대역(bisection)all-to-all
전결합(NVSwitch)절반↔절반이 풀 대역 → 큼강함 (균일 all-to-all)
약한 토폴로지이분면 링크가 적음 → 작음그 병목에 묶임

왜 중요: all-to-all(MoE, 4.5)·all-reduce(4.13) 의 성능은 종종 bisection 대역에 묶인다. 토폴로지가 전결합이면 bisection이 커 이런 통신이 빠르고, 약하면(일부 쌍만 연결) bisection이 작아 병목. NVSwitch 전결합은 bisection을 최대화하는 설계다.

예(개념): GPU당 양방향 NVLink 집계가 B이고 8장이 균일 전결합이면, 4 vs 4 이분면을 가로지르는 대역은 대략 4장×(그 절반이 반대편으로 가는 몫)으로 큰 값 — 정확한 계산은 링크 배분·라우팅 의존이라 시스템 데이터시트로(확인 필요). 요지는 전결합일수록 bisection이 크고 all-to-all에 강하다는 정성적 사실.

참고: 4.11가 다룬 SHARP(in-network reduction) 는 InfiniBand 스위치가 노드 간 all-reduce를 오프로드하는 기능이었다. 일부 세대의 NVSwitch도 비슷한 발상 — 노드 내 NVLink 도메인 안에서 스위치가 직접 리덕션을 수행하는 기능을 지원한다(정확한 명칭·세대·적용 범위는 시점 의존, 확인 필요). 개념은 같다 — "GPU끼리 여러 번 주고받는 대신 스위치가 도중에 합산"이며, 다만 하나는 노드 간(IB), 하나는 노드 내(NVSwitch) 계층이 다르다.

4.7.5 도메인이 노드를 넘을 때 — NVLink Switch System

8-GPU 노드를 넘어 더 큰 NVLink 도메인(4.5의 NVL72)을 만들려면, NVSwitch를 노드 밖으로 확장해 여러 노드의 GPU를 한 NVLink 패브릭에 묶는다(NVLink Switch System).

확장 그 너머 노드 내 (8-GPU): 베이스보드 NVSwitch가 8장 전결합 랙 (NVL72): NVSwitch 트레이(랙 백플레인)가 여러 트레이의 72 GPU 전결합 → 72-GPU 단일 NVLink 도메인 (4.5) 노드/랙 간: InfiniBand (4.11) NVLink 도메인 경계를 넘으면 IB

계층적 토폴로지의 핵심: NVLink 도메인 경계가 곧 "고대역 균일 통신의 한계선" 이다. 도메인 안은 전결합 고대역, 도메인을 넘으면 IB(느림·다른 토폴로지, 4.11). 그래서:

병렬화 매핑 원칙(4.14 선행):

통신 패턴매핑 위치
통신 집약·균일 (텐서 병렬 all-reduce, MoE all-to-all)NVLink 도메인 안 (전결합 bisection 활용)
통신 드문 (데이터·파이프라인 병렬)도메인/노드 간 IB

도메인이 클수록(72) 통신 집약 병렬화를 더 크게 도메인 안에 담을 수 있다.

4.7.6 워크스루 — 토폴로지 읽고 매핑하기

1) 토폴로지 확인(4.6 복습 + 해석).

nvidia-smi topo -m
# 8-GPU SXM 노드(이상적): 모든 비대각 칸이 NV#(균일 전결합) → 어디든 통신 OK
# 혼합/PCIe 노드: 일부 NV#, 일부 SYS/PHB(비균일) → NV# 쌍에 통신 집약 작업
nvidia-smi nvlink --status   # 각 GPU의 NVLink 링크 활성·속도(세대 의존)

2) 집합연산을 토폴로지에 매핑(개념). NCCL(4.13)은 토폴로지를 자동 탐지해 ring·tree를 구성한다. 전결합이면:

all-reduce on 전결합 8-GPU:

알고리즘방식특성
ringGPU를 고리로 이어 청크를 순환대역 효율적, 균일 전결합이면 어느 순서든 OK
tree계층 reduce지연 효율적, 큰 도메인에서 유리

NCCL이 bisection·토폴로지를 보고 알고리즘·링 순서를 선택한다(4.13). 비균일 토폴로지면 링이 PCIe 쌍을 지나가 병목 → NCCL이 우회하거나 느려진다.

3) 비균일 함정 진단. 8-GPU 학습이 느리면 topo -m으로 링에 PCIe 쌍이 끼었는지 확인. 균일 SXM이면 문제없지만, 클라우드의 일부 인스턴스는 비대칭이라 NCCL이 느린 경로를 탈 수 있다 → 인스턴스 선택·NCCL 환경변수(4.13)로 대응.

개념 산수(bisection 관점). 8-GPU 전결합에서 all-to-all로 각 GPU가 다른 7장에 같은 양 D를 보내면 총 통신량은 $8\times7\times D = 56D$. 이 중 4|4로 가른 이분면을 가로지르는 양은 $2\times(4\times4)\times D = 32D$(나머지 24D는 같은 절반 안에서 오감)다. 전결합 bisection이 이 32D를 감당하면 통신이 대역폭에 흡수되고, 약한 토폴로지면 이분면 링크에서 직렬화돼 병목. 토폴로지가 통신 패턴의 천장을 정한다.

4.7.7 중간 점검 (체크포인트)

  • [ ] 직접 연결(비균일·멀티홉)과 NVSwitch 전결합(균일·1홉 crossbar)의 차이를 설명한다.
  • [ ] 8-GPU SXM 노드가 균일 전결합이고 PCIe 노드는 비균일임을, topo -m으로 확인할 줄 안다.
  • [ ] bisection 대역폭이 무엇이고 왜 all-to-all·all-reduce 성능을 가늠하는지 말한다.
  • [ ] NVLink 도메인 경계가 "고대역 균일 통신의 한계선"이며, 통신 집약 병렬화를 도메인 안에 매핑해야 함을 안다.

증상→의심: 8-GPU all-reduce가 느림 → 링에 PCIe 쌍이 끼임(비균일 토폴로지, topo -m). MoE all-to-all 병목 → bisection 부족 또는 전문가가 도메인 경계 너머. 다노드 확장 안 됨 → 통신 집약 병렬화가 NVLink 도메인을 넘어 IB로(4.14). 클라우드 다GPU가 기대 이하 → 인스턴스 토폴로지 비대칭(확인 후 선택).

4.7.8 트레이드오프·맥락

토폴로지특성적합
NVSwitch 전결합(SXM/HGX)균일·큰 bisection·1홉통신 집약 다GPU 학습
부분 NVLink(브리지)·PCIe 혼합비균일·작은 bisection통신 적은 워크로드
NVLink Switch System(NVL72)도메인을 랙으로·큰 bisection거대 모델·MoE
노드 간 IB(4.11)도메인 밖·다른 토폴로지스케일아웃

견해: 토폴로지를 직접 설계할 일은 드물다(시스템이 정함) — 우리 몫은 주어진 토폴로지를 읽고, 통신 패턴을 거기 맞추는 것. 균일 전결합(SXM/HGX·NVL72)이면 매핑이 단순(어디든 고대역). 비균일(PCIe 혼합·일부 클라우드)이면 topo -m으로 빠른 쌍을 파악해 통신 집약 작업을 거기 배치하고, NCCL이 느린 경로를 안 타게 확인한다. 인스턴스를 고를 때 토폴로지가 균일한지부터 본다.

비NVIDIA 정직: 전결합·bisection·fat-tree는 NVIDIA 고유가 아니라 인터커넥트·HPC 네트워크의 보편 개념이다(IB 패브릭·이더넷 스파인-리프도 같은 척도로 평가). NVSwitch의 차별점은 GPU 메모리 의미(peer access)를 가진 고대역 crossbar라는 점과 NCCL 통합. 토폴로지 평가법(bisection·균일성)은 벤더 불문 통용되니 익혀 두면 IB·이더넷에도 적용된다.

4.7.9 흔한 함정

  • 비균일을 균일로 가정. "8-GPU니 다 NVLink"라 단정하면 PCIe 쌍이 낀 토폴로지에서 통신 병목을 검출하지 못한다. topo -m으로 실제 확인.
  • bisection 무시. all-to-all·all-reduce 성능을 단일 링크 대역으로만 추정하면 틀린다 — 절반↔절반 통신은 bisection이 천장.
  • 도메인 경계 무시한 병렬화. 통신 집약 병렬화(텐서·전문가)를 NVLink 도메인 너머로 흩으면 IB 병목. 경계 안에 담기.
  • NCCL 자동 신뢰만. NCCL이 토폴로지를 자동 탐지하지만, 비대칭·특이 환경에선 최적이 아닐 수 있다. 느리면 topo -m·NCCL 디버그(4.13)로 링 경로 확인.
  • 클라우드 인스턴스 토폴로지 가정. 같은 "8×GPU"라도 인스턴스 타입마다 전결합/비대칭이 다르다. 선택 전 토폴로지·NVLink 활성(nvlink --status) 확인.
  • NVLink와 IB 토폴로지 혼동. 노드 내(NVLink/NVSwitch)와 노드 간(IB fat-tree, 4.11)은 다른 계층·다른 토폴로지. 둘을 한 패브릭으로 착각 말 것.

4.7.10 연습문제

연습 1 (전결합 이유). GPU 8개를 직접 mesh로 잇는 것과 NVSwitch 전결합의 차이를 (a) 홉 수·균일성, (b) 라우팅 복잡도, (c) 집합연산 관점에서 설명하라.

정답

(a) mesh는 GPU당 링크가 유한해 모든 쌍 직결이 불가, 일부 쌍은 중간 GPU 경유(멀티홉)라 쌍마다 홉·대역이 다름(비균일). NVSwitch 전결합은 모든 GPU가 스위치에 연결돼 임의 쌍이 1홉·풀 대역(균일). (b) mesh는 멀티홉 라우팅·혼잡 관리가 복잡, crossbar는 비차단이라 단순. (c) all-reduce·all-to-all이 mesh에선 비균일·병목에 묶이지만, 전결합은 균일 고대역이라 어느 순서·매핑이든 효율적 — NCCL이 단순·빠르게 구성할 수 있다.

연습 2 (bisection). all-to-all 통신(각 GPU가 다른 모든 GPU에 데이터 전송)의 성능이 단일 링크 대역이 아니라 bisection 대역에 묶이는 이유를 설명하고, 전결합 토폴로지가 왜 유리한지.

정답

all-to-all은 데이터의 약 절반이 "GPU 집합의 한쪽 절반↔다른 절반"을 가로질러야 한다. 그 가로지르는 트래픽 전부가 이분면을 잇는 링크들(bisection) 을 통과하므로, 그 총 대역(bisection)이 처리량의 천장이다 — 개별 링크 대역이 커도 이분면 링크가 적으면 거기서 직렬화·병목. 전결합(NVSwitch)은 절반↔절반을 잇는 링크가 많아 bisection이 커, all-to-all 트래픽을 병목 없이 흘려보낸다. 그래서 MoE(4.5)처럼 all-to-all 집약 워크로드에 전결합 도메인이 유리.

연습 3 (매핑 결정). topo -m에서 GPU0–3은 서로 NV#, GPU4–7도 서로 NV#인데, 두 그룹 사이(0–3 ↔ 4–7)는 SYS다. 4-way 텐서 병렬 작업 2개를 어떻게 배치하고, 8-way 텐서 병렬 1개는 왜 문제인가?

정답

배치: 4-way 텐서 병렬(통신 집약) 작업 두 개를 각각 {0,1,2,3} 과 {4,5,6,7} 에 배치한다 — 각 그룹 내부는 NV#(NVLink) 전결합이라 텐서 병렬 all-reduce가 고대역. 두 그룹 간 SYS는 통신이 거의 없는 이 배치에선 무관. 8-way 텐서 병렬 1개는 문제: 그러면 통신이 0–3과 4–7을 가로질러 SYS(PCIe/소켓) 경로를 타야 해 그 느린 이분면이 매 레이어 all-reduce를 병목시킨다 — bisection이 작아 확장 실패. 8-way가 꼭 필요하면 균일 전결합 노드(전부 NV#)가 필요.

연습 4 (도메인 확장). 모델이 8-GPU 노드를 넘어 16 GPU가 필요하다. (a) 두 8-GPU 노드를 IB로 잇는 경우와 (b) 16-GPU 단일 NVLink 도메인(NVLink Switch System)의 통신 차이를, 텐서 병렬 관점에서 설명하라.

정답

(a) 두 노드를 IB(4.11)로 잇기: 노드 내 8장은 NVLink 전결합이지만 노드 간 16-way 통신은 IB(NVLink보다 느림·다른 토폴로지)를 거친다. 16-way 텐서 병렬(매 레이어 all-reduce)을 구성하면 노드 경계 통신이 IB 병목 → 확장 저하. 따라서 텐서 병렬은 노드 내 8로 제한하고 노드 간은 통신 적은 병렬화(데이터·파이프라인)로. (b) 16-GPU 단일 NVLink 도메인: 16장이 NVSwitch로 전결합돼 16-way 텐서 병렬 all-reduce가 전부 NVLink 고대역·큰 bisection 안에서 → 통신 병목 없이 확장. 거대 모델의 통신 집약 병렬화를 더 크게 담을 수 있다(NVL72가 이를 72로 확장, 4.5).

4.7.11 요약 · 다음 장

  • NVSwitch 전결합(crossbar) 은 임의의 두 GPU에 균일·1홉·풀 대역을 줘, 직접 mesh의 비균일·멀티홉 문제를 없앤다 — 집합연산(4.13)을 단순·효율적으로.
  • 8-GPU SXM/HGX는 균일 전결합, PCIe 혼합은 비균일. bisection 대역폭이 all-to-all·all-reduce의 천장을 정하며 전결합이 이를 최대화한다.
  • NVLink 도메인 경계 = 고대역 균일 통신의 한계선. 도메인 안은 전결합(NVL72는 랙으로 확장), 밖은 IB. 통신 집약 병렬화는 도메인 안에 매핑(4.14).
  • 실무: topo -m·nvlink --status로 토폴로지를 읽고, 통신 패턴을 거기 맞춘다. 클라우드 인스턴스의 균일성을 선택 전 확인.

다음 장: 4.8 Grace I — Grace CPU·NVLink-C2C·메모리 일관성. 지금까지 GPU↔GPU였다면, 이제 CPU↔GPU를 고대역·일관성으로 잇는다. Grace CPU와 NVLink-C2C가 PCIe의 CPU-GPU 병목(2.5)을 어떻게 없애고, 통합·일관 메모리가 프로그래밍을 어떻게 바꾸는지 본다.