반응형
반응형
반응형

전통적인 NVLink와 새로운 NVLink Network의 차이점을 설명하는 개념도입니다.
특히 Hopper 아키텍처에서 새롭게 도입된 NVLink Network의 변화된 동작 방식과 장점을 시각적으로 표현하고 있습니다.


1. NVLink Network 개요

기존 NVLink 방식은 공유된 주소 공간을 사용하여 GPU 간 직접 통신을 수행하지만, 새로운 NVLink Network는 독립적인 네트워크 주소 공간을 사용하여 더욱 유연하고 안전한 데이터 전송을 지원합니다.

✅ 기존 NVLink (좌측)

  • Source GPU에서 Destination GPU로 직접 데이터 전송
  • GPU MMU (Memory Management Unit)를 사용하여 GPU의 물리 주소를 기반으로 통신
  • 주소 공간을 공유하기 때문에 모든 GPU가 하나의 주소 공간을 사용 (Shared Address Space)
  • 부팅 시 NVLink 연결이 설정되며, 실행 중에는 변경 불가

✅ 새로운 NVLink Network (우측)

  • NVLink Network Switch를 통해 GPU 간 네트워크 주소를 기반으로 통신
  • 각 GPU가 독립적인 네트워크 주소 공간을 가짐 (Independent Address Spaces)
  • Link TLB (Translation Lookaside Buffer)를 사용하여 네트워크 주소를 GPU의 물리 주소로 변환
  • 런타임(Runtime) API를 통해 동적으로 연결 설정 가능
  • 각 GPU 간 논리적 격리가 가능하여 보안성과 유연성이 향상됨

2. NVLink와 NVLink Network의 주요 차이점

아래 표는 기존 NVLink와 새로운 NVLink Network의 핵심적인 차이점을 비교한 것입니다.

특징기존 NVLinkNVLink Network

주소 공간 (Address Spaces) 1개 (공유) N개 (독립적)
주소 지정 방식 (Request Addressing) GPU 물리 주소 사용 네트워크 주소 사용
연결 설정 (Connection Setup) 부팅 시 설정 실행 중 API 호출 가능
격리 (Isolation) 없음 있음

3. NVLink Network의 주요 개선점

(1) 독립적인 주소 공간으로 더욱 유연한 네트워크 설계

  • 기존 NVLink는 모든 GPU가 동일한 주소 공간을 공유하여 관리 복잡성이 증가
  • 새로운 NVLink Network는 각 GPU가 독립적인 네트워크 주소를 가지므로, 더욱 유연하고 확장성이 뛰어남

(2) NVLink Network Switch를 통한 네트워크 기반 통신

  • 기존 NVLink는 GPU 간 직접 연결을 기반으로 했지만,
  • 새로운 NVLink Network는 NVLink Network Switch를 통해 네트워크 주소 기반으로 라우팅 가능

(3) 동적 연결 설정 (Runtime API)

  • 기존 NVLink는 부팅 시 연결이 설정되고 이후 변경 불가
  • NVLink Network는 소프트웨어 API를 통해 실행 중에도 유연하게 연결 설정 가능

(4) 보안성과 격리(ISO) 기능 추가

  • 기존 NVLink는 모든 GPU가 공유된 주소 공간을 사용하므로 보안 이슈 발생 가능
  • NVLink Network는 각 GPU가 독립적인 주소 공간을 가지므로, 보안 및 데이터 격리 가능

4. 결론

  • Hopper 기반 NVLink Network는 기존 NVLink의 한계를 극복하여, 더욱 유연한 GPU 네트워크를 제공
  • 독립적인 주소 공간을 사용하여 GPU 간 논리적 격리 및 보안성을 강화
  • NVLink Network Switch를 통해 더욱 효율적인 데이터 전송 및 확장성 제공
  • 런타임 API를 사용하여 실행 중에도 유연하게 연결을 설정할 수 있어 AI 및 HPC 환경에서 더욱 강력한 활용 가능

👉 즉, 새로운 NVLink Network는 단순한 GPU 간 직접 연결에서 벗어나, 네트워크 기반의 동적이고 확장 가능한 연결을 지원하는 차세대 기술로 발전했습니다. 🚀

 


Hopper란 무엇인가?

여기서 HopperNVIDIA의 차세대 데이터센터 및 AI 가속기용 GPU 아키텍처를 의미합니다.
Ampere(A100) 아키텍처의 후속 모델로, H100 GPU에서 처음 도입된 최신 아키텍처입니다.

Hopper 아키텍처는 기존 GPU 설계와 비교해 더 높은 대역폭, 확장성, 보안성을 제공하는 특징을 가지고 있습니다.
특히, NVLink Network라는 새로운 네트워크 방식을 지원하여 GPU 간 데이터 전송을 더욱 효율적으로 처리할 수 있습니다.


1. Hopper에서 NVLink Network가 중요한 이유

Hopper 아키텍처에서 NVLink Network를 도입한 이유는 기존 NVLink의 한계를 극복하고, 더욱 확장 가능한 GPU 네트워크를 구축하기 위해서입니다.

기존 Ampere(A100) NVLink는 GPU 간 물리 주소 기반의 직접 연결을 사용했지만,
Hopper에서는 네트워크 주소 기반의 동적 연결 방식(NVLink Network)을 사용하여 확장성과 보안성을 강화했습니다.

(1) 기존 NVLink (Ampere A100) 방식의 한계

  • 모든 GPU가 공유된 주소 공간을 사용해야 함
  • GPU 간 직접 연결만 가능하여 네트워크 확장이 어려움
  • 부팅 시 연결이 고정되므로, 실행 중 변경 불가
  • 보안 및 격리(Isolation) 기능 없음

(2) Hopper NVLink Network의 개선점

  • 각 GPU가 독립적인 네트워크 주소 공간을 가지므로 확장성 증가
  • NVLink Network Switch를 통해 네트워크 라우팅 가능
  • 런타임 API 호출을 통해 실행 중에도 연결 변경 가능
  • 보안 및 데이터 격리 기능 추가

2. Hopper NVLink Network의 동작 방식

Hopper 아키텍처에서는 NVLink Network를 통해 GPU 간 통신을 네트워크 방식으로 처리합니다.

  • GPU는 기존처럼 NVLink를 사용하지만, NVLink Network Switch를 통해 연결됨
  • 각 GPU는 네트워크 주소를 기반으로 데이터를 요청하며, 네트워크 스위치가 이를 적절한 GPU로 전달
  • "Link TLB (Translation Lookaside Buffer)"를 사용하여 네트워크 주소를 GPU의 물리 주소로 변환
  • 이전 세대와 달리, 실행 중에도 API를 통해 연결을 동적으로 변경 가능

3. Hopper와 NVLink Network의 의미

Hopper 아키텍처에서 NVLink Network를 도입한 것은, 기존의 고정된 GPU 간 직접 연결 방식에서 탈피하여, 네트워크 기반의 유연한 연결을 제공한다는 점에서 중요한 변화입니다.

 

    구분                                            Ampere (A100) NVLink                                 Hopper (H100) NVLink Network

연결 방식 직접 연결(Direct) 네트워크 기반(Networked)
주소 체계 GPU 물리 주소 사용 네트워크 주소 사용
확장성 제한적(고정 연결) 높은 확장성(동적 연결)
격리 기능 없음 있음
연결 변경 부팅 시 고정 실행 중 API로 변경 가능

4. 결론

  • Hopper는 기존 Ampere 대비 확장성이 높은 NVLink Network를 지원하는 최신 아키텍처
  • 기존 NVLink는 GPU 간 직접 연결만 지원했지만, Hopper NVLink Network는 네트워크 주소 기반으로 동작
  • 이를 통해 GPU 간 연결을 더 유연하게 구성할 수 있으며, 실행 중에도 동적으로 변경 가능
  • 보안(격리 기능)과 확장성을 고려한 설계로, AI 및 데이터센터 환경에서 더욱 강력한 성능 제공

👉 즉, Hopper는 단순한 차세대 GPU가 아니라, AI 및 HPC(고성능 컴퓨팅)를 위한 새로운 네트워크 아키텍처를 포함한 GPU 플랫폼으로 이해해야 합니다. 🚀


Hopper 기반의 NVLink Network는 기존의 NoC(Network-on-Chip) 개념과 유사한 방식으로 GPU 간 통신을 처리합니다.

기존의 Ampere(A100) NVLink는 단순한 포인트-투-포인트(Direct) 연결 방식이었지만,
Hopper(H100) NVLink Network는 네트워크 기반의 동적 라우팅을 지원하여 NoC와 비슷한 동작 방식을 갖게 되었습니다.


1. NVLink Network와 NoC(Network-on-Chip)의 공통점

(1) 패킷 기반 네트워크 구조

  • 기존 NVLink는 물리 주소 기반의 메모리 전송 방식을 사용했지만,
  • NVLink Network는 NoC처럼 패킷 기반의 데이터 전송 방식을 채택
    → GPU 간 통신이 기존보다 훨씬 유연해짐

(2) 네트워크 스위치를 통한 데이터 라우팅

  • NoC에서는 여러 개의 코어(Processing Elements, PE)가 라우터를 통해 통신
  • NVLink Network에서는 NVLink Network Switch가 각 GPU의 데이터 흐름을 관리
    → 물리적 연결에 의존하지 않고 동적으로 경로 설정 가능

(3) 독립적인 주소 공간

  • 기존 NVLink는 GPU 간 공유된 주소 공간을 사용하여 통신
  • NVLink Network는 각 GPU가 독립적인 네트워크 주소를 가지므로, NoC처럼 독립적인 주소 공간에서 동작 가능
    → GPU 간 데이터 보안 및 격리(Isolation) 기능 추가

(4) 실행 중 동적 경로 변경 가능

  • 기존 NVLink는 부팅 시 연결이 고정되었지만,
  • NVLink Network는 소프트웨어 API를 사용하여 런타임 중 연결을 변경 가능
    NoC의 다이나믹 라우팅과 유사한 개념

2. NVLink Network vs. NoC (Network-on-Chip) 차이점

항목NVLink Network (Hopper)NoC (Network-on-Chip)

적용 대상 멀티-GPU 네트워크 (다중 칩) 단일 칩 내 CPU/GPU 코어 간 네트워크
네트워크 주소 방식 독립적인 네트워크 주소 기반 NoC 내부 주소 기반
라우팅 방식 NVLink Network Switch를 사용하여 동적 라우팅 NoC 라우터를 사용하여 칩 내부 통신
통신 범위 GPU 간 장거리 데이터 교환 최적화 칩 내부에서 매우 빠른 통신 지원
격리 및 보안 각 GPU 간 격리(Isolation) 기능 추가 칩 내부 데이터 교환이므로 보안은 덜 중요

3. NVLink Network가 NoC와 유사한 이유

🔹 기존 NVLink의 한계점

  • 기존 NVLink는 확장성이 부족하고, GPU 간 네트워크가 정적(Static)으로 설정됨
  • 부팅 시 연결이 고정되므로, 실행 중 유연하게 변경할 수 없음
  • 모든 GPU가 공유된 주소 공간을 사용하여 보안성 및 격리 기능이 부족함

🔹 NVLink Network의 개선점

  • NoC처럼 독립적인 네트워크 주소를 사용하여 각 GPU의 데이터를 격리할 수 있음
  • NVLink Network Switch를 통한 동적 라우팅으로 GPU 간 확장성 증가
  • 소프트웨어 API를 사용하여 실행 중 GPU 간 경로를 변경할 수 있어 더욱 유연함
  • 보안 기능이 추가되어 데이터센터 및 클라우드 환경에서도 안정적인 멀티-GPU 학습 가능

4. 결론

  • Hopper 기반 NVLink Network는 기존 NVLink보다 NoC와 유사한 개념으로 발전
  • 네트워크 기반의 주소 라우팅을 도입하여 확장성과 유연성이 크게 증가
  • NVLink Network Switch가 NoC의 라우터 역할을 수행하여 동적 데이터 전송 가능
  • 멀티-GPU 시스템에서 NoC와 같은 패킷 기반 네트워크 방식을 도입하여 확장성과 보안성을 강화

👉 즉, NVLink Network는 NoC의 개념을 GPU 간 통신으로 확장한 형태이며, 이를 통해 대규모 AI 학습 및 HPC 환경에서 더욱 강력한 성능을 제공할 수 있습니다. 🚀

반응형
반응형

 

NVIDIA NVLink 네트워크가 AI 추천 시스템(Neural Recommender Engine) 및 임베딩 테이블(Embedding Tables) 학습에서 어떻게 높은 대역폭을 제공하는지를 설명하는 개념도입니다.
특히, 기존 InfiniBand(IB) 대비 4.5배 더 높은 대역폭을 제공하는 NVLink의 성능 차이를 강조하고 있습니다.


1. 좌측: NVLink 기반 Neural Recommender Engine 구조

(1) Neural Recommender Engine의 병렬 학습 방식

  • 딥러닝 기반 추천 시스템은 모델 병렬(Model Parallel)과 데이터 병렬(Data Parallel) 방식을 혼합하여 학습
  • 상단의 Linear Layers(선형 레이어)는 데이터 병렬 방식으로 여러 GPU에 복제(Replicated across GPUs)
  • 하단의 Embedding Tables(임베딩 테이블)는 모델 병렬 방식으로 GPU마다 서로 다른 데이터를 저장(Distributed across GPUs)

(2) Model-Parallel → Data-Parallel 변환 (All2All)

  • 모델의 일부(임베딩 테이블)는 여러 GPU에 분산 저장되지만, 이후 모델을 학습하기 위해서는 GPU 간 데이터 공유가 필요
  • All2All 연산을 통해 모델 병렬 방식에서 데이터 병렬 방식으로 변환
  • 이 과정에서 GPU 간 대량의 데이터 전송 발생 → NVLink의 높은 대역폭이 필수적

(3) GPU 간 데이터 이동량 (Bandwidth 요구량)

  • 각 GPU는 임베딩 테이블 데이터를 다르게 저장하며, 다른 GPU의 데이터를 가져와야 함
  • 예제에서 GPU 0~n의 메모리 구성을 보면,
    • GPU 0: 10GB + 20GB
    • GPU 1: 40GB + 10GB
    • GPU 2: 60GB
    • GPU n: 60GB
      모델 병렬 학습 시, 서로 다른 GPU 간 대규모 데이터 교환이 필요하므로 NVLink가 필수

2. 우측: NVLink vs. InfiniBand (IB) 대역폭 비교

14TB 임베딩 테이블을 사용하는 예제 추천 시스템에서 H100 NVLink 네트워크의 대역폭 성능 비교

  • A100 + InfiniBand (IB)
    • 기준선(1x)
    • 기존 InfiniBand 네트워크를 사용할 경우 대역폭이 상대적으로 낮음
  • H100 + InfiniBand (IB)
    • A100 대비 대역폭이 2배 증가
    • InfiniBand만으로도 H100의 성능을 일부 활용 가능
  • H100 + NVLink Network
    • H100 + InfiniBand 대비 2배 더 높은 대역폭 제공
    • A100 + InfiniBand 대비 4.5배 더 높은 대역폭 제공
    • NVLink 기반 네트워크를 활용하면 GPU 간 데이터 교환 속도가 획기적으로 향상됨

3. NVLink의 효과 및 중요성

  • 기존 InfiniBand(IB) 대비 4.5배 더 높은 대역폭 제공
  • 임베딩 테이블이 매우 큰 추천 시스템(Neural Recommender Engine)에서 필수적인 네트워크 솔루션
  • GPU 간 All2All 통신을 최적화하여 모델 병렬과 데이터 병렬 변환 과정에서 성능 극대화
  • H100에서 NVLink를 활용하면, AI 모델 학습 및 추천 시스템 성능이 획기적으로 향상

4. 결론

  • H100 NVLink 네트워크는 AI 추천 시스템에서 InfiniBand보다 4.5배 높은 대역폭 제공
  • 대규모 임베딩 테이블(Embedding Tables)을 활용하는 추천 시스템에서 NVLink의 높은 전송 속도가 필수적
  • NVLink를 활용하면 모델 병렬과 데이터 병렬 변환(All2All)이 훨씬 더 빠르게 수행됨
  • 기존 A100 기반 InfiniBand 네트워크보다 H100 NVLink가 압도적인 성능 제공

👉 즉, NVLink는 AI 추천 시스템 및 대규모 데이터 학습에서 필수적인 GPU 간 네트워크 기술로, InfiniBand 대비 훨씬 높은 대역폭을 제공하여 딥러닝 학습 속도를 극대화할 수 있습니다. 🚀

 


딥러닝 기반 추천 시스템: 모델 병렬과 데이터 병렬의 필요성

딥러닝 기반 추천 시스템은 대규모 사용자 데이터와 아이템 데이터를 분석하여 최적의 추천을 제공하는 AI 모델입니다.
대표적인 추천 시스템 모델로는 Deep Learning Recommendation Model (DLRM), Wide & Deep, Transformer 기반 추천 모델 등이 있습니다.

이러한 추천 시스템은 대규모 임베딩 테이블(Embedding Tables)과 신경망 모델(MLP, Transformer 등)을 함께 사용하기 때문에, 모델 병렬(Model Parallel)과 데이터 병렬(Data Parallel)을 혼합하여 학습해야 성능을 극대화할 수 있습니다.


1. 추천 시스템에서 학습해야 할 주요 요소

딥러닝 기반 추천 모델은 주로 두 가지 요소를 학습합니다.

(1) 임베딩 테이블 (Embedding Tables)

  • 사용자 및 아이템의 특성(Feature)을 벡터로 변환하여 저장
  • 사용자 ID, 나이, 성별, 지역, 선호 카테고리, 아이템 ID 등을 고차원 벡터로 표현
  • 추천 모델에서는 이러한 임베딩 벡터를 사용하여 유사한 사용자 및 아이템을 찾음
  • 문제점: 임베딩 테이블이 매우 커질 수 있음 (수십~수백 TB)

(2) 신경망 모델 (Neural Network, MLP or Transformer)

  • 사용자의 현재 행동(클릭, 좋아요, 검색, 구매 등)과 임베딩 벡터를 결합하여 추천 결과 생성
  • 일반적으로 다층 퍼셉트론(MLP) 또는 Transformer를 활용하여 예측을 수행
  • 문제점: 연산량이 많고, 병렬 처리가 필요

2. 모델 병렬(Model Parallel)과 데이터 병렬(Data Parallel)을 함께 사용해야 하는 이유

추천 시스템에서는 단순히 데이터 병렬(Data Parallel)만으로는 해결할 수 없는 문제들이 존재합니다.
특히, 임베딩 테이블은 모델 병렬(Model Parallel), 신경망 모델은 데이터 병렬(Data Parallel)로 처리하는 것이 최적의 방법입니다.

방식사용 대상이유

모델 병렬 (Model Parallel) 임베딩 테이블 (Embedding Tables) 너무 크기 때문에 여러 GPU에 분산 저장해야 함
데이터 병렬 (Data Parallel) 신경망 모델 (MLP, Transformer 등) 모든 GPU에서 동일한 모델을 실행하면서 병렬 연산 최적화

3. 모델 병렬과 데이터 병렬을 함께 사용해야 하는 이유 (예제 포함)

예제: Netflix 추천 시스템

Netflix는 수억 명의 사용자와 수백만 개의 영화를 추천해야 하는 대규모 추천 시스템을 운영합니다.
각 사용자에게 맞춤형 콘텐츠를 제공하기 위해 사용자 데이터와 영화 데이터를 임베딩 테이블로 변환한 후, 신경망 모델을 통해 추천을 수행합니다.

(1) 모델 병렬이 필요한 이유 (임베딩 테이블 분산)

  • Netflix에는 수억 명의 사용자와 수백만 개의 영화가 존재
  • 각 사용자와 영화에 대한 임베딩 벡터를 저장하려면 엄청난 메모리가 필요 (수십 TB~수백 TB)
  • 하나의 GPU에 저장하기에는 불가능
    해결책: **모델 병렬(Model Parallel)**을 사용하여 여러 GPU에 임베딩 테이블을 분산 저장

(2) 데이터 병렬이 필요한 이유 (신경망 모델 병렬 처리)

  • 추천을 수행하는 MLP(다층 퍼셉트론) 또는 Transformer 모델은 모든 GPU에서 동일한 연산을 수행
  • 배치 데이터를 여러 GPU에 나누어 처리하면 학습 속도가 향상됨
    해결책: **데이터 병렬(Data Parallel)**을 사용하여 동일한 신경망 모델을 여러 GPU에서 동시에 학습

4. 모델 병렬(Model Parallel)과 데이터 병렬(Data Parallel)의 동작 방식

(1) 모델 병렬 (Model Parallel)

  • 임베딩 테이블을 여러 GPU에 분산 저장
  • GPU마다 서로 다른 부분의 임베딩 데이터를 저장하고, 필요할 때 다른 GPU의 임베딩 데이터를 가져와야 함
  • All2All 통신(All-to-All Communication)이 발생 (GPU 간 데이터 이동 필요)

🔹 예제 (4개의 GPU가 임베딩 테이블을 나눠 저장하는 경우)

  • GPU 0: 사용자 ID 임베딩 저장
  • GPU 1: 영화 ID 임베딩 저장
  • GPU 2: 카테고리 임베딩 저장
  • GPU 3: 지역 및 장르 임베딩 저장

사용자 ID와 영화 ID가 동일한 GPU에 없으므로, 데이터를 공유해야 함All2All 통신이 필수적


(2) 데이터 병렬 (Data Parallel)

  • 같은 신경망 모델(MLP 또는 Transformer)을 모든 GPU에서 복사하여 실행
  • 각 GPU는 서로 다른 배치를 학습하면서 그래디언트를 계산
  • 학습이 끝나면 AllReduce 연산을 수행하여 모든 GPU가 동일한 그래디언트 업데이트 적용

🔹 예제 (4개의 GPU가 데이터 병렬로 학습하는 경우)

  • GPU 0: 첫 번째 배치(256개 샘플) 학습
  • GPU 1: 두 번째 배치(256개 샘플) 학습
  • GPU 2: 세 번째 배치(256개 샘플) 학습
  • GPU 3: 네 번째 배치(256개 샘플) 학습

모든 GPU가 동일한 신경망 모델을 학습하지만, 서로 다른 배치를 학습함
AllReduce 연산을 사용하여 그래디언트를 동기화해야 함


5. 결론

  • 딥러닝 기반 추천 시스템에서는 임베딩 테이블과 신경망 모델을 동시에 처리해야 하므로, 모델 병렬과 데이터 병렬을 함께 사용해야 함
  • 임베딩 테이블은 너무 크기 때문에 모델 병렬(Model Parallel) 방식으로 여러 GPU에 분산 저장
  • 신경망 모델(MLP, Transformer 등)은 데이터 병렬(Data Parallel) 방식으로 모든 GPU에서 동일한 연산을 수행
  • All2All 통신(All-to-All Communication)과 AllReduce 연산을 활용하여 GPU 간 데이터 이동 및 그래디언트 동기화 수행
  • Netflix, YouTube, TikTok 같은 대규모 추천 시스템에서 필수적인 학습 방식

👉 즉, 모델 병렬과 데이터 병렬을 동시에 사용해야 대규모 추천 시스템을 효율적으로 학습할 수 있으며, 이를 위해 GPU 간 빠른 데이터 교환이 가능한 NVLink 및 NVSwitch 기술이 필수적입니다. 🚀


1. 추천 시스템에서 NVLink 대역폭이 중요한 이유

(1) 임베딩 테이블의 크기 문제

  • 추천 시스템에서는 사용자 ID, 아이템 ID, 선호 카테고리 등의 임베딩 벡터를 저장하는 임베딩 테이블(Embedding Tables)이 매우 큼
  • 수십~수백 TB 크기의 데이터를 GPU 여러 개에 분산 저장해야 함
  • 데이터가 한 GPU에 들어가지 않기 때문에 GPU 간 빠른 데이터 이동이 필수적

(2) All2All 통신(모델 병렬 → 데이터 병렬 변환)

  • 임베딩 테이블이 여러 GPU에 분산 저장되므로, 학습 시 서로 다른 GPU의 데이터를 가져와야 함
  • 이를 위해 All2All 통신(All-to-All Communication)이 필수적
  • 이 과정에서 GPU 간 대량의 데이터 교환이 발생NVLink의 높은 대역폭이 필요

(3) NVLink vs. InfiniBand(IB) 비교 시 추천 시스템이 가장 두드러진 차이를 보임

  • H100 + NVLink가 InfiniBand보다 4.5배 높은 대역폭을 제공
  • All2All 통신을 최적화하면 임베딩 테이블을 처리하는 속도가 크게 향상됨
  • 결과적으로, NVLink를 사용할 때 추천 시스템의 학습 속도가 극적으로 향상됨

2. NVLink의 효과가 두드러지는 AI 워크로드

추천 시스템 외에도 NVLink의 높은 대역폭이 중요한 AI 워크로드는 많습니다. 하지만 그중에서도 추천 시스템이 가장 직접적인 성능 차이를 보여주는 대표적인 사례입니다.

AI 워크로드NVLink 효과이유

추천 시스템 (Neural Recommender Engine) 🚀🚀🚀🚀🚀 (최고 효과) 임베딩 테이블이 크고 All2All 통신이 많아 GPU 간 대역폭이 중요
대형 언어 모델 (LLM, GPT-4 등) 🚀🚀🚀🚀 (매우 효과적) 모델 병렬 학습 시 GPU 간 빠른 데이터 공유 필요
비전 트랜스포머 (Vision Transformer, ViT) 🚀🚀🚀 (효과적) 대규모 이미지 배치 처리 시 GPU 간 빠른 데이터 전송 필요
자율주행 AI (Self-Driving AI) 🚀🚀 (일부 효과) 실시간 데이터 처리 시 활용 가능하지만, 대역폭보다는 지연 시간 최적화가 더 중요

3. 결론

  • 추천 시스템은 NVLink의 높은 대역폭이 가장 두드러지게 효과를 발휘하는 대표적인 AI 워크로드
  • 임베딩 테이블이 매우 크고, GPU 간 All2All 통신이 많아 NVLink가 필수적
  • NVLink가 없으면 GPU 간 데이터 전송이 InfiniBand보다 4.5배 느려져 학습 속도가 급격히 저하
  • 대규모 AI 모델(LLM, ViT 등)에서도 NVLink의 효과가 크지만, 추천 시스템이 가장 차이가 명확함

👉 즉, NVIDIA가 추천 시스템 예제를 사용한 이유는 NVLink의 대역폭 증가 효과가 가장 극적으로 나타나는 AI 워크로드이기 때문입니다. 🚀

반응형
반응형

 

NVIDIA NVLink SHARP(Scalable Hierarchical Aggregation and Reduction Protocol) 가속화 기능을 설명하는 개념도입니다.
NVLink SHARP는 기존 A100 대비 H100에서 더욱 최적화된 데이터 집계 및 브로드캐스트(AllReduce) 기능을 제공하여 AI 학습 및 HPC 성능을 향상시킵니다.


1. NVLink SHARP란?

NVLink SHARP(Scalable Hierarchical Aggregation and Reduction Protocol)의 핵심 역할

  • 기존의 AllReduce 연산을 GPU가 아닌 NVSwitch 내부에서 직접 수행하여 GPU의 부담을 줄이는 기술
  • GPU 간 데이터 교환을 최적화하여 AllReduce 속도를 향상
  • GPU-간 직접 데이터 전송량을 줄여 NVLink 대역폭을 효과적으로 2배 증가시키는 효과

2. 기존 A100 방식 vs. H100 + NVLink SHARP 방식 비교

(1) 기존 A100 방식 (왼쪽)

Step 1: Read and Reduce

  • 각 GPU가 로컬 그래디언트(Partials)를 계산한 후, NVSwitch로 전송
  • NVSwitch는 데이터를 단순히 전달할 뿐, 연산은 수행하지 않음
  • 모든 GPU는 각자의 그래디언트를 주고받으며, 최종 합산된 값을 공유받음
  • 이 과정에서 N번의 데이터 송수신 발생 (N개의 GPU가 서로 통신)

Step 2: Broadcast Result

  • 각 GPU는 합산된 그래디언트를 다시 NVSwitch로 보내고, 이를 다시 모든 GPU가 수신
  • N번의 송수신이 발생하며, GPU 간 직접 통신 비용이 높음
  • 전체 데이터 교환량이 많아 NVLink 대역폭을 많이 차지함

(2) H100 + NVLink SHARP 방식 (오른쪽)

Step 1: Read and Reduce (In-Switch Sum)

  • GPU가 로컬 그래디언트(Partials)를 NVSwitch로 전송
  • NVSwitch가 직접 모든 GPU의 그래디언트를 합산 (In-Switch Sum)
  • 각 GPU는 합산된 최종 그래디언트를 1번만 받아오면 됨
  • 즉, 기존 방식 대비 데이터 전송 횟수를 크게 줄임 (N번 → 1번)

Step 2: Broadcast Result (In-Switch MultiCast)

  • NVSwitch가 합산된 그래디언트를 모든 GPU에 자동으로 복제 (In-Switch MultiCast)
  • 각 GPU는 복제된 데이터만 받으면 되므로, 전체 데이터 교환량 감소
  • 기존 대비 브로드캐스트 연산이 최적화되어 GPU의 메모리 사용량 절감

3. 트래픽 요약 및 성능 향상 효과

항목                                                             기존 A100 방식                            H100 + NVLink SHARP 방식

Step 1: Read & Reduce N번 읽기, N번 쓰기 N번 읽기, 1번 쓰기
Step 2: Broadcast Result N번 쓰기, N번 읽기 1번 쓰기, N번 읽기
NVSwitch 역할 단순 데이터 전달 In-Switch Sum + MultiCast 최적화
GPU 간 데이터 교환량 많음 (2N) 적음 (N+1)
NVLink 대역폭 활용도 제한적 2배 효율 향상

👉 H100 + NVLink SHARP는 기존 A100 방식 대비 NVLink 대역폭을 효과적으로 2배 증가시키는 효과를 제공
👉 NVSwitch에서 직접 그래디언트 합산 및 복제를 수행하므로, GPU의 부담이 줄어듦


4. 결론

  • NVLink SHARP는 기존 A100 대비 H100에서 AllReduce 연산 속도를 크게 향상
  • 기존 A100 방식에서는 GPU가 직접 데이터 교환을 수행하여 높은 트래픽 발생
  • H100 + NVLink SHARP에서는 NVSwitch가 직접 연산을 수행하여 트래픽을 최적화
  • 결과적으로, NVLink 대역폭을 효과적으로 2배 증가시키는 효과를 제공하여 AI 및 HPC 연산 성능 향상

👉 즉, NVLink SHARP는 최신 NVIDIA H100 시스템에서 AllReduce 성능을 최적화하여, 대규모 AI 모델 훈련 및 분산 컴퓨팅에서 필수적인 역할을 수행합니다. 🚀

반응형
반응형

멀티-GPU 환경에서 AllReduce 연산이 어떻게 수행되는지를 설명하는 NVIDIA의 개념도입니다.
특히, NCCL(NVIDIA Collective Communications Library) AllReduce를 활용한 그래디언트 동기화 과정을 시각적으로 나타내고 있습니다.


1. AI 학습에서 AllReduce의 필요성

(1) 데이터 병렬 학습 (Data Parallelism)

  • 데이터를 여러 GPU에 분산하여 처리하는 방식
  • 같은 신경망(모델)을 복사하여 여러 GPU에서 학습 진행
  • 각 GPU는 입력 배치(batch)를 나누어 계산 후 그래디언트를 계산
    • 예: 256개의 이미지를 4개의 GPU가 학습하면, 각 GPU는 64개의 이미지를 처리

(2) 그래디언트 동기화 필요성

  • 각 GPU는 서로 다른 배치를 학습하므로 개별적인 그래디언트(Local Gradients)를 계산
  • 그러나 모델이 동일한 방향으로 학습되도록 모든 GPU가 같은 그래디언트 업데이트를 적용해야 함
  • 이를 위해 모든 GPU의 그래디언트를 합산(Sum)하여 동기화하는 과정이 필요AllReduce 수행

2. AllReduce 연산 단계

AllReduce는 세 가지 주요 단계로 이루어집니다.

(1) 로컬 그래디언트 계산 (Local Gradients Calculation)

  • 각 GPU는 자신이 처리한 배치에 대한 그래디언트 계산
  • 개별 GPU는 아직 다른 GPU의 그래디언트 정보를 모름
  • 따라서 각 GPU가 계산한 그래디언트를 다른 GPU와 공유해야 함

(2) NCCL AllReduce 실행

NVIDIA의 NCCL(NVIDIA Collective Communications Library)은 GPU 간 고속 통신을 수행하는 라이브러리로, 다음 단계를 통해 AllReduce를 실행합니다.

📌 Step 1: 그래디언트 교환 (Exchange Partial Local Gradients)

  • 각 GPU는 자신이 계산한 로컬 그래디언트를 부분적으로 다른 GPU와 공유
  • 이 과정에서 통신이 발생하며, 데이터가 서로 전달됨
  • 데이터 전송이 비효율적이면 통신 병목(Bottleneck)이 발생할 수 있음

📌 Step 2: 그래디언트 합산 (Reduce - Sum Partials)

  • 모든 GPU의 그래디언트를 합산하여 전체 모델의 최종 그래디언트를 계산
  • NCCL AllReduce는 이 과정을 고속으로 수행하도록 최적화됨
  • 그래디언트 합산 과정은 GPU 내부의 NVLink 및 NVSwitch를 활용하여 병렬 연산 가능

📌 Step 3: 합산된 그래디언트 브로드캐스트 (Broadcast Reduced Partials)

  • 계산된 최종 그래디언트 값을 모든 GPU에 다시 전달
  • 모든 GPU는 동일한 그래디언트 값을 가지게 됨
    → 이렇게 하면 모든 GPU가 동일한 모델 업데이트를 적용 가능

(3) 동기화된 그래디언트를 적용하여 모델 업데이트

  • AllReduce 연산이 끝나면 모든 GPU가 동일한 그래디언트를 적용하여 파라미터 업데이트
  • 이후 다음 배치를 학습할 때, 모든 GPU가 동일한 모델을 사용

3. 전통적인 AllReduce 방식의 문제점

기존 AllReduce 방식에는 몇 가지 문제점이 있습니다.

문제점설명

통신 병목 모든 GPU가 동시에 그래디언트를 교환하면 대역폭 부족 및 지연 발생
스케일 확장 한계 GPU 개수가 많아질수록 AllReduce 수행 시간이 증가
메모리 사용량 증가 모든 GPU가 동일한 데이터를 공유해야 하므로 메모리 사용량이 증가

4. NVIDIA의 AllReduce 최적화 방법

NVIDIA는 NVLink, NVSwitch, NCCL을 활용하여 기존 AllReduce 방식의 문제점을 해결합니다.

최적화 기법설명

NVLink PCIe 대비 10배 빠른 GPU 간 직접 데이터 전송
NVSwitch 다중 NVLink를 연결하여 수십 개의 GPU가 병목 없이 통신 가능
SHARP (Scalable Hierarchical Aggregation and Reduction Protocol) NVSwitch가 AllReduce 연산 일부를 수행하여 GPU 부담 감소
NCCL (NVIDIA Collective Communications Library) AllReduce 통신을 최적화하여 효율적 데이터 동기화 지원

5. 결론

  • AllReduce는 멀티-GPU AI 학습에서 필수적인 연산으로, 모든 GPU가 동일한 모델을 업데이트하도록 함
  • 전통적인 AllReduce 방식은 GPU 간 통신 병목이 발생할 수 있지만, NVIDIA의 NVLink, NVSwitch, SHARP 등을 활용하면 이를 최적화 가능
  • 최신 DGX H100 및 NVLink 4 기반 시스템에서는 기존 AllReduce 대비 최대 2~3배 빠른 데이터 동기화 가능

👉 즉, AllReduce는 AI 학습에서 매우 중요한 요소이며, NVIDIA의 최신 기술을 활용하면 기존 방식의 한계를 극복하고 더욱 빠르게 수행할 수 있습니다. 🚀

 


단순히 그래디언트를 합산(Sum)하는 것만으로는 정확한 모델 업데이트가 이루어지지 않습니다.
올바른 모델 업데이트를 위해서는 평균(Averaging) 또는 정규화(Normalization) 과정이 필요합니다.
그래디언트 동기화 방식과 수학적 의미를 자세히 설명하겠습니다.


1. AllReduce에서 그래디언트 합산의 수학적 의미

멀티-GPU 환경에서 데이터 병렬(Data Parallelism)을 사용하면, 각 GPU는 서로 다른 데이터 배치를 학습하며 개별적인 그래디언트(Local Gradients)를 계산합니다.
그러나 모델이 동일한 방향으로 학습되도록 모든 GPU가 같은 그래디언트 업데이트를 적용해야 하므로, AllReduce 연산을 사용하여 그래디언트를 공유합니다.

✅ (1) 단순한 그래디언트 합산 (Summation)

각 GPU에서 계산된 그래디언트를 단순 합산하면 다음과 같습니다.

gtotal=g1+g2+⋯+gng_{\text{total}} = g_1 + g_2 + \dots + g_n

여기서,

  • gig_iii번째 GPU에서 계산된 그래디언트
  • nn은 GPU 개수
  • gtotalg_{\text{total}}은 합산된 그래디언트

그러나 단순 합산을 적용하면, GPU 개수가 증가할수록 그래디언트 크기가 커지고, 학습이 불안정해질 수 있음
즉, 학습률(Learning Rate)을 자동으로 증가시키는 효과가 발생잘못된 모델 업데이트 가능성 존재


✅ (2) 평균 그래디언트 적용 (Averaging)

올바른 모델 업데이트를 위해서는 GPU 개수로 나눈 평균 그래디언트(Averaging)를 사용해야 합니다.

gavg=1n∑i=1ngig_{\text{avg}} = \frac{1}{n} \sum_{i=1}^{n} g_i

즉, 각 GPU가 계산한 그래디언트를 전체 GPU 개수로 나눈 평균값을 사용하면 모델 업데이트가 정확하게 이루어집니다.

이 방식을 적용하면 멀티-GPU 학습에서도 단일 GPU와 동일한 학습 효과를 얻을 수 있습니다.

NVIDIA의 NCCL AllReduce는 기본적으로 평균(Averaging) 적용을 지원하며, PyTorch 및 TensorFlow에서도 올바른 AllReduce 구현을 위해 Averaging을 수행합니다.


2. 그래디언트 합산 후 업데이트 공식

멀티-GPU 학습에서 올바른 모델 업데이트를 위한 수학적 공식은 다음과 같습니다.

θt+1=θt−ηgavg\theta_{t+1} = \theta_t - \eta g_{\text{avg}}

여기서,

  • θt\theta_t = 현재 모델의 가중치
  • η\eta = 학습률(Learning Rate)
  • gavgg_{\text{avg}} = 평균 그래디언트 (AllReduce로 동기화된 값)
  • θt+1\theta_{t+1} = 업데이트된 가중치

즉, 단순 합산이 아니라, 평균을 사용하여 가중치를 업데이트해야 모델이 올바르게 학습됩니다.


3. 단순 합산과 평균 적용의 차이

방식그래디언트 동기화 수식결과

단순 합산 (Summation) gtotal=g1+g2+...+gng_{\text{total}} = g_1 + g_2 + ... + g_n 그래디언트 크기가 커져 학습률이 증가하는 부작용 발생
평균 적용 (Averaging) gavg=1n∑i=1ngig_{\text{avg}} = \frac{1}{n} \sum_{i=1}^{n} g_i 멀티-GPU에서도 단일 GPU와 동일한 학습 효과 유지

4. 결론

  • AllReduce에서 그래디언트를 단순히 합산하면 학습이 불안정해질 수 있음
  • 그래디언트를 평균(Averaging) 내서 업데이트해야 GPU 개수와 상관없이 일관된 학습 가능
  • NVIDIA NCCL, PyTorch, TensorFlow 등에서는 자동으로 평균을 적용하여 AllReduce 연산 수행

👉 즉, 단순히 그래디언트를 합산하는 것이 아니라, GPU 개수로 나누어 평균을 내야 올바른 모델 업데이트가 이루어집니다. 🚀

반응형

+ Recent posts