반응형
반응형
반응형

NVLink는 고대역폭, 저지연 GPU 간 데이터 전송 기술로, 세대가 거듭될수록 성능이 향상되고 확장성이 증가하고 있습니다.


1. NVLink 세대별 발전 과정

이 그림은 2016년부터 2022년까지 NVLink의 4세대 발전 과정을 보여주며, 각 세대마다 NVLink의 수, 대역폭, 그리고 신호 변조 방식이 어떻게 변화했는지를 설명합니다.

(1) 2016 – P100 (NVLink 1)

  • 4개의 NVLink 지원
  • 각 링크당 40GB/s 속도 제공
  • NRZ(Non-Return-to-Zero) 변조 방식 사용, x8 @ 20Gbaud
  • 총 대역폭: 160GB/s

(2) 2017 – V100 (NVLink 2)

  • 6개의 NVLink 지원
  • 각 링크당 50GB/s 속도 제공 → 향상됨
  • NRZ 변조 방식, x8 @ 25Gbaud
  • 총 대역폭: 300GB/s (NVLink 1 대비 2배 가까운 증가)

(3) 2020 – A100 (NVLink 3)

  • 12개의 NVLink 지원 → GPU 간 연결 확장 가능
  • 각 링크당 50GB/s 속도 제공 (NVLink 2와 동일)
  • NRZ 변조 방식, x4 @ 50Gbaud
  • 총 대역폭: 600GB/s (NVLink 2 대비 2배 증가)

(4) 2022 – H100 (NVLink 4)

  • 18개의 NVLink 지원 → 더 많은 GPU 연결 가능
  • 각 링크당 50GB/s 속도 제공
  • PAM4(Pulse Amplitude Modulation 4-Level) 변조 방식 도입, x2 @ 50Gbaud
  • 총 대역폭: 900GB/s (NVLink 3 대비 1.5배 증가)
연도 CPU 모델 NVLink 세대 NVLink 수 각 링크 속도 (GB/s) 변조 방식 Lane 구성 총 대역폭 (GB/s)
2016 P100 NVLink 1 4 40 NRZ x8 @ 20Gbaud 160
2017 V100 NVLink 2 6 50 NRZ x8 @ 25Gbaud 300
2020 A100 NVLink 3 12 50 NRZ x4 @ 50Gbaud 600
2022 H100 NVLink 4 18 50 PAM4 x2 @ 50Gbaud 900

2. NVLink의 주요 발전 방향

  1. 대역폭 증가
    • NVLink 1 (160GB/s) → NVLink 4 (900GB/s)로 약 5.6배 증가
    • GPU 간 연결이 강화되면서 HPC(고성능 컴퓨팅) 및 AI 훈련 성능 향상
  2. NVLink 수 증가
    • 4개 (P100) → 18개 (H100)로 점진적 증가
    • GPU 간 연결을 더욱 촘촘히 할 수 있어, 멀티-GPU 시스템에서의 병렬 연산 효율 향상
  3. 신호 변조 방식의 변화
    • NRZ(Non-Return-to-Zero)PAM4(Pulse Amplitude Modulation 4-Level)
    • PAM4는 1개 신호에서 4개의 전압 레벨을 사용하여 2배 더 많은 데이터를 전송 가능
    • 즉, 같은 대역폭에서도 더 높은 데이터 속도를 제공
  4. GPU-간 직접 연결 증가
    • 초기에는 GPU가 PCIe를 통해 연결되었으나, 세대가 거듭되면서 NVLink 간 GPU 직접 연결이 증가
    • PCIe의 병목 현상을 줄이고, GPU 간 빠른 데이터 교환 가능

3. 결론 및 활용

  • NVLink는 세대를 거듭할수록 GPU 간 대역폭을 증가시키고 병목을 최소화하여 고성능 AI 및 HPC 애플리케이션을 지원
  • 2022년 H100(NVLink 4)은 PCIe보다 훨씬 높은 대역폭과 낮은 지연시간을 제공, 이는 AI 훈련 및 대규모 병렬 연산에서 강력한 성능 이점
  • PAM4 변조 방식을 도입하여 더욱 효율적으로 데이터를 전송, 기존 NRZ 방식보다 전송 효율이 향상
  • GPU 개수가 많아질수록 NVLink를 활용한 직접 통신 구조가 중요해지며, 데이터 센터, 슈퍼컴퓨터, AI 모델 훈련 등에서 필수 기술이 됨

4. 추가적으로 고려할 점

  • 2024년 이후 NVLink 5세대가 등장할 가능성이 있으며, 더 높은 대역폭과 새로운 변조 방식이 적용될 것으로 예상됨
  • 현재 NVLink는 NVIDIA의 기술이지만, 다른 기업들도 유사한 GPU-간 고속 인터커넥트 기술을 개발 중
  • NVLink 발전 방향은 결국 PCIe 및 CXL과의 경쟁 및 보완 관계 속에서 발전할 것

이해하기 쉽게 정리하면, NVLink는 GPU 간 빠른 데이터 전송을 위해 세대를 거듭하며 지속적으로 대역폭과 효율을 향상시키고 있다는 것이 핵심입니다. 🚀

 

1. NVLink 4 vs PCIe 4 성능 비교

구분NVLink 4PCIe 4.0

대역폭 (per lane) 50GB/s (양방향) 4GB/s (양방향)
총 대역폭 900GB/s (H100 기준, 18 NVLinks) 64GB/s (x16 링크 기준)
링크 개수 최대 18개 (H100 기준) 최대 16개 (x16 슬롯 기준)
신호 변조 방식 PAM4 (Pulse Amplitude Modulation 4-Level) NRZ (Non-Return-to-Zero)
연결 구조 GPU 간 직접 연결 (Point-to-Point, Mesh 가능) CPU-중심 허브 아키텍처
주요 사용처 멀티-GPU AI 훈련, HPC 일반적인 CPU↔GPU, CPU↔SSD 연결

2. 주요 차이점

(1) 대역폭 비교

  • NVLink 4각 링크당 50GB/s 속도를 제공하며, 18개 NVLink를 병렬 사용하면 900GB/s까지 가능
  • PCIe 4.0x16 슬롯 기준 64GB/s에 불과하여, NVLink 4 대비 14배 낮은 대역폭 제공

(2) 신호 변조 방식

  • NVLink 4는 PAM4 변조 방식을 사용하여, 기존 NRZ보다 동일한 대역폭에서 2배의 데이터 전송 가능
  • PCIe 4.0은 NRZ 방식을 사용하며, 같은 클럭 속도에서 NVLink보다 효율이 낮음

(3) 연결 방식

  • NVLink 4는 GPU 간 직접 연결이 가능하여 CPU를 거치지 않고 낮은 레이턴시와 높은 데이터 교환 효율 제공
  • PCIe 4.0은 CPU-중심 구조로, GPU 간 직접 데이터 교환이 어려워 레이턴시 증가

(4) 활용 분야

  • NVLink 4AI 훈련, HPC(고성능 컴퓨팅), 대규모 병렬 연산과 같이 다중 GPU 간 데이터 교환이 중요한 환경에 최적화
  • PCIe 4.0은 일반적인 CPU↔GPU, CPU↔SSD 연결에 적합하지만, 다중 GPU 간 고속 데이터 교환에는 한계가 있음

3. 결론

  • NVLink 4는 PCIe 4.0보다 최소 14배 이상 높은 총 대역폭을 제공하며, GPU 간 직접 연결을 통해 낮은 레이턴시와 고효율 통신이 가능
  • AI, HPC 등 대량의 데이터가 GPU 간 이동하는 워크로드에서는 NVLink 4가 압도적으로 유리
  • PCIe 4.0은 CPU-중심의 전통적인 시스템 연결에 적합하지만, 멀티-GPU 환경에서는 병목 현상이 발생할 가능성이 큼

따라서, NVLink 4와 PCIe 4.0은 성능이 비슷하지 않으며, NVLink 4가 훨씬 뛰어난 성능을 제공합니다


 

반응형
반응형

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 내부 및 외부 데이터 흐름을 보여줍니다.

  1. SM (Streaming Multiprocessor, 녹색 박스)
    • GPU의 기본 연산 단위로서 스레드 블록(Thread Block)이 실행되는 곳
    • 여러 개의 SM이 병렬로 동작하며, 서로 데이터를 주고받음
  2. SM 간 통신 (SM to SM, 파란색 박스)
    • GPU 내부에서 SM 간 통신을 처리하는 역할
    • SM들 간의 직접적인 데이터 교환을 통해 메모리 접근 오버헤드 감소
  3. L2 캐시 (L2, 회색 박스)
    • 모든 SM이 공유하는 L2 캐시
    • NVLink 포트 인터페이스와 연결되어 외부와 데이터를 주고받음
  4. 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 간 데이터를 공유하는 방식:
    1. SM-to-SM 네트워크 직접 이용 (빠른 데이터 공유)
    2. 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 내부 및 외부 신호 흐름

  1. SM 내부:
    • Thread Block 실행 → CUDA 코어 연산 → Shared Memory / L1 캐시 활용
  2. SM 간 통신:
    • SM-to-SM 네트워크를 통한 직접 통신 (빠름)
    • L2 캐시를 거쳐 통신 (데이터 일관성 유지)
  3. L2 캐시를 통한 데이터 공유:
    • 여러 SM에서 공통 데이터 저장
    • 외부 메모리(HBM/GDDR) 접근 최적화
  4. 외부 인터페이스 연결:
    • NVLink를 통해 GPU ↔ GPU 또는 NVSwitch와 직접 연결 가능
    • x86 CPU와는 NVLink 직접 연결 불가능 → PCIe로 연결 필요

결론적으로, SM → SM-to-SM 네트워크 → L2 → NVLink/PCIe 흐름을 기본적으로 따르며, 특정 환경에서는 SM 간 직접 NVLink 통신도 가능하지만, CPU 연결은 일반적으로 PCIe를 통해 이루어집니다. 

반응형

+ Recent posts