반응형
NVSwitch HotChips 2022 r5.pdf
4.12MB
1. NVLink의 동기 (NVLink Motivations)
NVLink는 대역폭(Bandwidth)과 GPU 간 효율적인 동작(GPU-Synergistic Operation)을 목표로 설계되었습니다.
(1) GPU 동작 특성이 NVLink 사양과 적합 (GPU Operational Characteristics Match NVLink Spec)
- 스레드 블록(Thread Block) 실행 구조가 병렬화된 NVLink 아키텍처에 효율적으로 데이터를 전달
- NVLink 포트 인터페이스(NVLink-Port Interfaces)는 L2 캐시와의 데이터 교환 방식과 최대한 일치하도록 설계됨
(2) PCIe보다 빠름 (Faster than PCIe)
- NVLink4 기준 100Gbps/레인 vs PCIe Gen5 기준 32Gbps/레인으로 훨씬 높은 대역폭 제공
- 여러 개의 NVLink를 "ganging" (연결 묶기)하여 총 레인 수를 증가시켜 더 높은 집계 대역폭 실현 가능
(3) 기존 네트워크보다 낮은 오버헤드 (Lower Overheads than Traditional Networks)
- 256개 Hopper GPU를 연결하는 대규모 시스템에서 엔드 투 엔드 재시도(end-to-end retry), 적응형 라우팅(adaptive routing), 패킷 재정렬(packet reordering) 등의 기능을 포트 개수와 트레이드오프 가능
- 애플리케이션, 프레젠테이션, 세션 계층(Application/Presentation/Session-layer)을 단순화하여 CUDA 프로그램 및 드라이버에 직접 포함 가능
2. 오른쪽 블록 다이어그램 설명
이 다이어그램은 NVLink를 통한 GPU 내부 및 외부 데이터 흐름을 보여줍니다.
- SM (Streaming Multiprocessor, 녹색 박스)
- GPU의 기본 연산 단위로서 스레드 블록(Thread Block)이 실행되는 곳
- 여러 개의 SM이 병렬로 동작하며, 서로 데이터를 주고받음
- SM 간 통신 (SM to SM, 파란색 박스)
- GPU 내부에서 SM 간 통신을 처리하는 역할
- SM들 간의 직접적인 데이터 교환을 통해 메모리 접근 오버헤드 감소
- L2 캐시 (L2, 회색 박스)
- 모든 SM이 공유하는 L2 캐시
- NVLink 포트 인터페이스와 연결되어 외부와 데이터를 주고받음
- NVLink 포트 인터페이스 (NVLink-Port Interfaces, 녹색 박스)
- GPU 외부의 다른 GPU 또는 CPU와 NVLink를 통해 직접 데이터 교환
- PCIe를 사용하는 것보다 더 높은 대역폭과 낮은 지연시간 제공
3. 핵심 요약
- NVLink는 GPU 병렬 구조와 잘 맞으며 PCIe보다 훨씬 빠른 대역폭 제공
- 기존 네트워크보다 오버헤드가 낮아 대규모 GPU 시스템에서 효율적인 데이터 교환 가능
- NVLink 포트 인터페이스를 통해 L2 캐시를 활용하여 외부와 직접 연결
- SM 간 통신(SM to SM)과 L2 캐시를 통한 데이터 교환을 최적화하여 GPU 간 연산 성능 향상
이 NVLink 개념은 HPC(고성능 컴퓨팅), AI 모델 학습 및 추론, 데이터 센터 GPU 클러스터링에서 중요한 역할을 합니다.
GPU 내부 신호 흐름 및 NVLink와의 연결 구조 정리
1. SM (Streaming Multiprocessor) 내부 연산 및 통신
- SM은 Thread Block 단위로 연산을 수행하며, CUDA 코어를 통해 병렬 연산을 처리함.
- 같은 SM 내의 CUDA 코어들은 Shared Memory, L1 Cache를 통해 데이터 공유.
- SM 간 통신은 "SM-to-SM" 네트워크를 통해 이루어짐.
2. SM 간 통신 (SM-to-SM 네트워크)
- 여러 SM이 존재하는 GPU에서는 SM 간 데이터 교환이 필요함.
- 이를 위해 "SM-to-SM 네트워크"가 존재하며, 같은 GPC 내 SM들이 데이터를 교환할 수 있음.
- SM 간 데이터를 공유하는 방식:
- SM-to-SM 네트워크 직접 이용 (빠른 데이터 공유)
- L2 캐시를 거쳐 데이터 공유 (데이터 일관성 유지)
3. L2 캐시를 통한 메모리 계층 구조
- GPU 내부에는 L2 캐시가 존재하며, 모든 SM들이 공유함.
- 주요 역할:
- SM 간 데이터 공유
- NVLink 또는 PCIe를 통한 외부 데이터 전송 시 캐싱 역할 수행
- Global Memory (DRAM/HBM) 접근 시 속도 향상
4. NVLink 및 외부 인터페이스와의 연결
- L2 캐시에서 나온 데이터는 NVLink-Port Interfaces 또는 PCIe를 통해 외부로 전송됨.
- NVLink를 통해 다른 GPU 또는 NVSwitch에 직접 연결 가능.
- NVLink 연결 구조:
- GPU ↔ GPU (멀티 GPU 환경)
- GPU ↔ NVSwitch (대규모 GPU 클러스터)
- 일부 IBM POWER9/10 CPU ↔ GPU (특수한 경우)
- 일반적인 x86 CPU ↔ GPU 연결은 PCIe를 통해 이루어짐.
정리: GPU 내부 및 외부 신호 흐름
- SM 내부:
- Thread Block 실행 → CUDA 코어 연산 → Shared Memory / L1 캐시 활용
- SM 간 통신:
- SM-to-SM 네트워크를 통한 직접 통신 (빠름)
- L2 캐시를 거쳐 통신 (데이터 일관성 유지)
- L2 캐시를 통한 데이터 공유:
- 여러 SM에서 공통 데이터 저장
- 외부 메모리(HBM/GDDR) 접근 최적화
- 외부 인터페이스 연결:
- NVLink를 통해 GPU ↔ GPU 또는 NVSwitch와 직접 연결 가능
- x86 CPU와는 NVLink 직접 연결 불가능 → PCIe로 연결 필요
결론적으로, SM → SM-to-SM 네트워크 → L2 → NVLink/PCIe 흐름을 기본적으로 따르며, 특정 환경에서는 SM 간 직접 NVLink 통신도 가능하지만, CPU 연결은 일반적으로 PCIe를 통해 이루어집니다.
반응형
'AI > NVIDIA' 카테고리의 다른 글
| AllReduce in AI Training: AI 학습에서의 AllReduce 역할 (0) | 2025.02.23 |
|---|---|
| NVLink 4 NVSwitch 칩 아키텍처 상세 설명 (0) | 2025.02.23 |
| NVLink 4 기반의 NVSwitch의 새로운 기능 (0) | 2025.02.23 |
| NVLink 기반 서버(DGX) 세대별 발전 과정 (0) | 2025.02.23 |
| NVIDIA NVLink의 세대별 발전 과정 (0) | 2025.02.23 |