Dual vs Single PCIe Root Configuration: Difference between revisions
Jump to navigation
Jump to search
(Phase 6.1: LLM-Optimized Wiki Template 적용) |
(Fix: remove --- horizontal lines (12 removed)) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 18: | Line 18: | ||
* 언제 사용하는가? 딥러닝 서버, AI/ML 클러스터, 다중 GPU 시스템 설계 | * 언제 사용하는가? 딥러닝 서버, AI/ML 클러스터, 다중 GPU 시스템 설계 | ||
== Purpose == | == Purpose == | ||
| Line 28: | Line 27: | ||
* Non-goals: PCIe 프로토콜 상세, 다른 버스 아키텍처 | * Non-goals: PCIe 프로토콜 상세, 다른 버스 아키텍처 | ||
== Key Concepts == | == Key Concepts == | ||
| Line 62: | Line 60: | ||
|} | |} | ||
== Architecture == | == Architecture == | ||
| Line 86: | Line 83: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Workflow == | == Workflow == | ||
| Line 124: | Line 120: | ||
|} | |} | ||
== Detailed Explanation == | == Detailed Explanation == | ||
| Line 157: | Line 152: | ||
* '''Single-Root P2P 활성화''' — Dual-Root 대비 현저한 지연시간 감소 — Single-Root PCIe 시스템으로 이동하는 주요 동력 | * '''Single-Root P2P 활성화''' — Dual-Root 대비 현저한 지연시간 감소 — Single-Root PCIe 시스템으로 이동하는 주요 동력 | ||
== Configuration == | == Configuration == | ||
| Line 180: | Line 174: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Examples == | == Examples == | ||
| Line 203: | Line 196: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Best Practices == | == Best Practices == | ||
| Line 213: | Line 205: | ||
* AMD EPYC 시스템 — Infinity Fabric 인터커넥트 활용 | * AMD EPYC 시스템 — Infinity Fabric 인터커넥트 활용 | ||
== Limitations == | == Limitations == | ||
| Line 223: | Line 214: | ||
* GPU 7 등 특정 GPU에서 이상 현상 가능 (벤치마크 참고) | * GPU 7 등 특정 GPU에서 이상 현상 가능 (벤치마크 참고) | ||
== References == | == References == | ||
| Line 229: | Line 219: | ||
* https://www.servethehome.com/single-root-or-dual-root-for-deep-learning-gpu-to-gpu-systems/ | * https://www.servethehome.com/single-root-or-dual-root-for-deep-learning-gpu-to-gpu-systems/ | ||
== Related Pages == | == Related Pages == | ||
| Line 241: | Line 230: | ||
* [[UPI]] | * [[UPI]] | ||
[[Category:Hardware]] | [[Category:Hardware]] | ||
[[Category:Configuration]] | [[Category:Configuration]] | ||
== Knowledge Graph == | |||
Related | |||
→ [[ACS]] | |||
→ [[Bifurcation]] | |||
→ [[CPU features]] | |||
→ [[AER (Advanced Error Reporting)]] | |||
→ [[PCIe]] | |||
→ [[ASPM]] | |||
→ [[PCIe 5.0]] | |||
[[Category:Comparison]] | [[Category:Comparison]] | ||
Latest revision as of 11:28, 17 July 2026
Overview
Single-Root vs Dual-Root PCIe Configuration은 다중 CPU 시스템에서 GPU 및 PCIe 장치의 연결 아키텍처를 결정하는 핵심 설계 선택지입니다.
Summary
- 무엇인가? 다중 CPU 시스템에서 GPU/PCIe 장치 연결 방식 — Single-Root(단일 CPU) vs Dual-Root(양쪽 CPU 분산)
- 왜 필요한가? GPU 간 P2P 대역폭, 지연시간, QPI/UPI 대역폭 트레이드오프 결정
- 언제 사용하는가? 딥러닝 서버, AI/ML 클러스터, 다중 GPU 시스템 설계
Purpose
이 문서가 존재하는 이유
- Goal: Single-Root와 Dual-Root PCIe 구성의 차이, 성능 영향, 선택 기준 설명
- Scope: P2P 대역폭, 지연시간, QPI/UPI 영향, PCIe 스위치 계층화
- Non-goals: PCIe 프로토콜 상세, 다른 버스 아키텍처
Key Concepts
| Concept | Description | Related |
|---|---|---|
| Single-Root | 모든 GPU가 단일 CPU에 연결 — PCIe 스위치 사용 | PCIe |
| Dual-Root | GPU가 양쪽 CPU에 분산 — QPI/UPI 링크 사용 | PCIe |
| QPI/UPI | CPU 간 인터커넥트 — Dual-Root에서 소켓-투-소켓 통신 | NUMA |
| P2P (Peer-to-Peer) | GPU 간 직접 데이터 전송 — Single-Root에서 더 나은 성능 | GPU Direct |
| PCIe Switch | 단일 CPU 내 다중 장치 연결 — 계층화 가능 | PCIe |
| Infinity Fabric | AMD EPYC CPU 간 인터커넥트 아키텍처 | AMD EPYC |
Architecture
Single-Root vs Dual-Root 아키텍처 비교:
graph TD
subgraph "Dual-Root Configuration"
A1[CPU 1] --> B1[PCIe Switch 1]
B1 --> C1[GPU 0-3]
A2[CPU 2] --> B2[PCIe Switch 2]
B2 --> C2[GPU 4-7]
A1 -.->|QPI/UPI| A2
C1 -.->|SOC| C2
end
subgraph "Single-Root Configuration"
D1[CPU 1] --> E1[PCIe Switch 1]
E1 --> F1[GPU 0-4]
E1 --> F2[GPU 5-6]
E1 --> F3[GPU 7-9]
end
Workflow
PCIe Root Configuration 선택 흐름:
- 시스템 요구사항 분석 — GPU 수, P2P 필요성, 대역폭 요구
- Single-Root 또는 Dual-Root 아키텍처 선택
- PCIe 스위치 구성 및 연결 설계
- P2P 설정 활성화/비활성화
- 성능 벤치마크 및 검증
| Stage | Input | Output |
|---|---|---|
| Requirement Analysis | GPU 수, P2P 필요성 | Root Configuration 선택 |
| Single-Root Design | 단일 CPU 연결 | PCIe 스위치 계층화 |
| Dual-Root Design | 양쪽 CPU 분산 | QPI/UPI 링크 구성 |
| P2P Configuration | GPU 간 직접 통신 | P2P 활성화/비활성화 |
| Performance Validation | 벤치마크 결과 | 아키텍처 검증 |
Detailed Explanation
Single-Root Configuration
모든 GPU가 동일한 CPU에 연결됩니다. 일반적으로 PCIe 스위치를 사용하여 이를 처리합니다.
- 장점: QPI/UPI 링크를 거치지 않아 P2P 대역폭 약 2배 향상, SOC(Switch-of-CPU) 엔트리 없음
- 단점: 단일 CPU의 PCIe 레인 수 제한, PCIe 스위치 추가 계층화로 인한 약간의 지연시간 증가
- 사용 사례: 딥러닝 서버, 대용량 AI/데이터 처리 시스템
Dual-Root Configuration
GPU의 절반이 한 CPU에, 나머지 절반이 두 번째 CPU에 연결됩니다.
- 장점: 각 CPU의 PCIe 레인 수 분산, QPI/UPI 대역폭 요구 감소
- 단점: QPI/UPI 링크를 거쳐야 하는 SOC 통신 발생, P2P가 CPU 간으로 확장되면 성능 저하
- 사용 사례: Infiniband 카드가 각 CPU에 하나씩 배치된 딥러닝 클러스터
Single Root v. Dual Root Bandwidth
NVIDIA의 p2pBandwidthLatencyTool은 성능 분석을 위한 도구는 아니지만, 대략적인 성능 차이를 보여줍니다.
- 단방향 대역폭 — QPI 버스를 거치지 않아 Single-Root에서 GPU 간 속도 약 2배 향상
- 양방향 대역폭 — Single-Root에서 P2P 활성화 시 더 큰 성능 향상
Single Root v. Dual Root Latency
- P2P 비활성화 — Dual-Root 시스템에서 GPU 간 지연시간 높음
- P2P 활성화 — Dual-Root 시스템에서 동일 CPU/PCIe Root의 GPU 간 지연시간significant 감소
- Single-Root P2P 활성화 — Dual-Root 대비 현저한 지연시간 감소 — Single-Root PCIe 시스템으로 이동하는 주요 동력
Configuration
P2P 활성화
# P2P 상태 확인
$ nvidia-smi topo -m
# P2P 활성화 (BIOS/UEFI에서 IOMMU/VT-d 비활성화 필요)
# NVIDIA 드라이버가 자동으로 P2P 감지 및 활성화
PCIe Switch 계층화
Single-Root 구성에서 PCIe 스위치를 계층적으로 연결하여 더 많은 GPU 연결:
CPU → PCIe Switch Tier 1 → PCIe Switch Tier 2 → GPU 0-7
→ GPU 8-15
Examples
Example 1: 8x GPU Dual-Root 시스템
CPU 1: GPU 0-3 (PCIe Switch 1)
CPU 2: GPU 4-7 (PCIe Switch 2)
QPI/UPI: CPU 간 연결
P2P: GPU 0-3 간, GPU 4-7 간만 가능
SOC: GPU 0-3 ↔ GPU 4-7 간 통신
Example 2: 10x GPU Single-Root 시스템
CPU 1: GPU 0-9 (PCIe Switch 계층화)
QPI/UPI: 불필요
P2P: 모든 GPU 간 가능
SOC: 없음 — 모든 GPU가 단일 CPU에 연결
Best Practices
- 딥러닝 워크로드 — Single-Root 구성 권장 (P2P 대역폭 우선)
- Infiniband 다중 카드 구성 — Dual-Root에서 각 CPU에 하나씩 배치
- PCIe 스위치 계층화 시 지연시간 모니터링
- P2P 활성화 전 BIOS에서 IOMMU/VT-d 비활성화 확인
- AMD EPYC 시스템 — Infinity Fabric 인터커넥트 활용
Limitations
- Single-Root: 단일 CPU의 PCIe 레인 수 제한
- Dual-Root: QPI/UPI 대역폭 병목 가능
- PCIe 스위치 계층화: 추가 지연시간 발생
- P2P: IOMMU/VT-d 활성화 시 성능 저하
- GPU 7 등 특정 GPU에서 이상 현상 가능 (벤치마크 참고)
References
Related Pages
Knowledge Graph
Related
→ ACS → Bifurcation → CPU features → AER (Advanced Error Reporting) → PCIe → ASPM → PCIe 5.0