이더넷 기반 GPU 스케일업 네트워크

NVLink를 이더넷으로 교체하는 것에 대한 Jim Keller의 논의와 함께 Scale-UP 상호 연결을 위해 RoCE를 활용하는 Intel의 Gaudi-3의 최근 출시는 이러한 혁신적인 접근 방식에 대한 관심을 불러일으켰습니다. 특히 Jim Keller가 참여한 Tenstorrent는 이더넷을 사용하여 칩 간 네트워크 상호 연결을 교묘하게 구현했습니다. 따라서 NVLink를 대체하기 위해 이더넷에 대한 과제와 요구 사항을 해결하는 것이 적절합니다.

NVLink를 이더넷으로 교체하는 것은 단순히 새로운 전송 프로토콜을 채택하는 문제가 아닙니다. GPU 아키텍처에 대한 일련의 수정이 필요합니다. 본질적으로 이 문제는 이더넷 네트워크에 HBM(고대역폭 메모리)을 배치하고 SHARP로 예시된 네트워크 내 컴퓨팅과 같은 컴퓨팅 요구 사항을 충족하기 위해 확장 및 일련의 통신 최적화를 모두 달성하는 방법을 알아내는 것과 같습니다. 전 세계적으로 이 다면적인 문제를 해결할 수 있는 사람은 소수에 불과하며 UltraEthernet이 이 개념을 완전히 이해하지 못한 것은 분명합니다.

앞으로 나아가려면 다음과 같은 주요 질문을 해결해야 합니다.

  • 대기 시간 경계: 허용되는 대기 시간 경계는 무엇입니까? 높은 처리량, 고속 SerDes FEC 및 수만 개의 카드 규모를 초과하는 상호 연결로 인해 발생하는 링크 지연 시간은 불가피합니다. 이러한 문제는 단순히 패킷 프로토콜을 수정하거나 HPC-Ethernet을 도입하는 것만으로는 해결할 수 없습니다.
  • 전송 의미론: 전송의 의미는 무엇입니까? 네트워크 전문가는 일반적으로 기본적인 SEND/RECV 작업을 이해합니다. 예를 들어, 멱등성 작업을 위한 Reliable Unordered Delivery(RUDI)에 대한 UEC의 정의는 기술적인 실수입니다. 교환 법칙과 멱등 법칙을 만족하지만, 축소 덧셈의 멱등성과 같은 특정 연산이 어떻게 구현될 수 있는지는 다루지 못합니다. 또한 NVLink의 세분화된 메모리 액세스에는 지원되지 않는 결합법칙을 기반으로 한 최적화도 필요합니다. 보다 광범위하게 의미론은 Semi-Lattice의 의미론으로 발전해야 합니다.
  • NVLink에서 더 큰 메모리 풀링: NVLink에서 더 큰 메모리 풀링을 어떻게 처리할까요? 여기에는 KV Cache와 같은 계산 문제에서 Compute Bound 연산자에 대한 시간/공간 트레이드오프를 해결하는 것이 포함됩니다.
  • 동적 라우팅 및 혼잡 제어: 1:1 비수렴 무손실 네트워크에서 혼잡을 동적으로 라우팅하고 제어하는 ​​기능은 하드코딩된 튜닝을 통해 수만 개의 카드가 있는 클러스터에서는 중요한 문제가 아닙니다. 그러나 장거리 전송을 위해 RDMA가 필요할 수도 있는 수십만 개에서 수백만 개의 카드 규모의 클러스터의 경우 아직까지 이러한 문제를 해결한 상용 공급업체가 없습니다.

현재 ScaleUP 상호 연결 솔루션 개요

인텔 가우디3

Gaudi3 백서에 따르면 Gaudi Die는 다음과 같이 구성됩니다. 여기에는 24개의 RoCE 200Gbps 링크가 포함되어 있으며 그 중 21개는 내부 FullMesh에 사용되고 XNUMX개는 외부 연결에 사용됩니다.

가우디 다이

초대형 네트워킹을 위한 토폴로지가 계산되었으며 리프 스위치의 대역폭은 25.6T 스위치와 동일합니다.

초대형 네트워킹을 위한 토폴로지

혼잡 제어

Intel의 백서에는 PFC를 사용하는 대신 선택적 ACK 메커니즘이 사용된다고 명시되어 있습니다. 또한 ECN 사용을 방지하기 위해 CC(Congestion Control)에 SWIFT 알고리즘이 사용됩니다. 본질적으로 이는 Intel IPU에서 Google Falcon의 Reliable Transport Engine을 용도 변경한 것입니다.

다중 경로 및 네트워크 내 감소

Intel은 PacketSpraying을 지원한다고 주장하지만 어떤 회사의 스위치가 사용되고 있는지는 확실하지 않습니다. 그것은 확실히 그들 자신의 토피노가 아닙니다. 따라서 Broadcom이어야 합니다. 또한 In-Network Reduction은 FP8/BF16 등을 지원하며 Operator는 Sum/Min/Max만 지원합니다. INC(In-Network-Computing)의 UEC 작업 그룹과 결합하면 그림이 더 명확해집니다.

마이크로소프트 마이아100

제한된 정보를 사용할 수 있지만 단일 칩 대역폭은 4800Gbps입니다. 단일 서버 섀시에는 100개의 Maia32 카드가 포함되어 있으며 XNUMX개의 서버가 있는 전체 캐비닛은 XNUMX개 카드의 클러스터를 형성합니다.

마이크로소프트 마이아100

확대된 스위치와 상호 연결 케이블을 살펴보면 24개의 스위치가 있으며 각 서버에는 400개의 XNUMXGbps 네트워크 인터페이스가 있습니다. 포트(다이어그램에서 검은색으로 표시)와 외부 상호 연결 라인(보라색으로 표시) 사이에는 루프백 연결이 있습니다.

상호 연결 케이블

이는 마더보드 내에서 입 모양의 상호 연결을 형성하여 X 방향으로 링을 만들고 Y 방향으로 3개 평면에 있는 3개의 스위치에 연결되는 토폴로지를 제안합니다.

마더보드 내에서 입 모양의 상호 연결을 형성하는 토폴로지

스위치의 업링크는 캐비닛 간 스케일 아웃 연결을 수행하며, 각 캐비닛의 각 플레인은 총 32개입니다. 400G 인터페이스. 1:1 컨버전스를 추가하면 업링크 스위치가 서로 연결되어 25.6T 스위치를 형성하므로 이론적으로 다층 확장이 가능해집니다. 이는 Scale-Up 및 Scale-Out 네트워크의 병합을 나타냅니다. 프로토콜의 경우 간단한 지점 간 RoCE는 토러스 링에 문제를 일으키지 않아야 합니다. 그러나 Scale-Out 스위치에 상호 연결하려면 다중 경로 기능이 필요합니다.

단점은 대기 시간이 길어질 가능성이 있다는 것입니다. 그러나 CUDA와 같은 SIMT 모델을 따르지 않고 대신 수축기 배열 접근 방식을 사용하는 맞춤형 칩의 경우 대기 시간은 중요한 문제가 아닙니다. 또한 5개의 Torus 그룹만 있으면 집단 통신 대기 시간의 영향이 최소화됩니다. 개인적으로 CSP는 일반적으로 칩을 훈련하기 전에 추론 칩을 개발하기 때문에 이러한 칩이 주로 추론에 사용될 것이라고 생각합니다. AWS Trainium/Inferentia 및 Google의 V5p/VXNUMXe와 같은 다른 CSP도 훈련과 추론을 명확하게 구분합니다.

구글 TPU

Google TPU 상호 연결은 링크 전환을 위한 토러스 링 토폴로지와 광 스위치를 특징으로 하여 잘 알려져 있습니다.

48ocs와 연결됨
물리적 시스템

OCS(Optical Circuit Switching)는 판매 규모에 따른 동적 파티셔닝과 MoE와 같은 All-to-All 통신을 위한 이등분 대역폭 최적화라는 두 가지 목적을 제공합니다.

All-to-All 커뮤니케이션

예를 들어 단일 TPUv5p 칩은 4800D-Torus 토폴로지를 사용하여 3Gbps ICI(Inter-Chip Interconnect) 연결을 지원합니다. 8960개의 TPUv5p 장치 클러스터는 OCS에 의해 동적으로 분할되어 다양한 규모를 판매할 수 있으며, 판매 가능한 최대 구성은 6144D-Torus를 형성하는 3개 장치입니다.

결함 허용

내결함성은 3D 토러스 토폴로지에서 중요한 고려 사항입니다.

또한 Google은 데이터 센터 네트워크를 통해 두 개의 Pod를 확장하여 Pod 간의 데이터 병렬(DP) 병렬 처리를 통해 Multislice 학습을 구축하도록 지원합니다.

선형적으로 규모를 조정하다

AWS 트레이닝

트레이닝니움 아키텍처

AWS Trainium 아키텍처는 16D 토러스 링 구조로 상호 연결된 작은 클러스터를 형성하는 2개의 칩으로 구성됩니다.

16 칩

테슬라 도장

Tesla Dojo는 웨이퍼/NOC 및 외부 이더넷 확장을 통합하기 위해 자체 Tesla 전송 프로토콜을 개발했습니다.

테슬라 전송 프로토콜

TSMC의 System-on-Wafer를 활용하면 25개의 D1 컴퓨팅 유닛이 단일 웨이퍼에 캡슐화되고 5×5 2D 메시 네트워크로 상호 연결되며 각 웨이퍼는 40개의 I/O 다이를 포함하는 타일을 형성합니다.

기술 기반 확장

타일은 9TB/s의 속도로 상호 연결됩니다.

타일은 9TB의 속도로 상호 연결됩니다.

온칩 네트워크 라우팅은 실패한 D1 코어 또는 타일을 우회할 수 있습니다.

온칩 네트워크 라우팅은 실패한 D1 코어 또는 타일을 우회할 수 있습니다.

외부 스케일 아웃 이더넷의 경우 DIP(Dojo 인터페이스 프로세서) 카드가 있으며, 각 D1 컴퓨팅 엔진에는 자체 SRAM이 있고 기타 메모리는 HBM 장착 DIP 카드에 배치됩니다.

V1 Dojo 인터페이스 프로세서

각 네트워크 카드는 900GB/s 특수 버스인 TTP(Tesla Transport Protocol)를 통해 Dojo의 I/O 다이에 연결됩니다. 800GB HBM 대역폭, 각 I/O 다이를 통해 5개의 DIP 카드에 연결할 수 있습니다.

PCle 토폴로지

2D Mesh 네트워크의 내부 통신으로 인해 장거리 통신에는 비용이 많이 들기 때문에 특별한 라우팅 설계가 구현되었습니다.

도장 시스템 네트워크

라우팅은 칩 내에서 여러 경로를 제공하며 순서가 잘못되었습니다. 대규모의 긴 경로 통신을 위해 Dojo 인터페이스 카드를 현명하게 사용하면 400Gbps 이더넷 TTPoE 버스가 바로 가기로 구성됩니다.

Z-평면 토폴로지

Dojo는 System-on-Wafer를 통해 고밀도 웨이퍼 규모 온칩 네트워크와 9TB/s의 전용 고속 단거리 웨이퍼 간 통신 네트워크를 구축합니다. I/O와 메모리가 DIP 카드에 통합되어 웨이퍼 규모 네트워크에 연결된 카드당 900GB/s를 제공하여 대규모 2D 메시 네트워크를 구성합니다. 그러나 온칩 네트워크의 긴 통신 거리로 인한 혼잡 제어를 고려하여 외부 이더넷 스위치를 통해 통신을 대상 웨이퍼로 보내는 DIP 카드 기반의 400Gbps 탈출 채널을 설계했습니다.

텐스토런트

Tenstorrent의 칩 간 상호 연결 설계에서 Jim Keller는 간단한 구조를 가진 이더넷을 활용했습니다. Tensor + 제어 헤더는 이더넷 패킷을 형성하고 아래와 같이 조건부 실행 기능을 트리거할 수 있습니다.

Tensor + 제어 헤더

이더넷을 사용한 완전한 칩 간 상호 연결

이더넷을 사용한 완전한 칩 간 상호 연결

다양한 기능적 통신 소스 언어 지원

다양한 기능적 통신 소스 언어 지원

그런 다음 그래프 분할이 있습니다. 스테이지당 명령 개수를 추정할 수 있고, 사업자가 들어오고 나가는 대역폭도 추정할 수 있는 것으로 보인다.

텐스토렌트 u-아치

코어에 대한 최종 매핑 제약 조건도 간단해 보입니다.

코어에 대한 최종 매핑 제약 조건

간단한 2D 메쉬 구조

간단한 2D 메쉬 구조

대규모 상호 연결을 위해 최대 40,960개 코어까지 확장 가능

대규모 상호 연결을 위해 최대 40,960개 코어까지 확장 가능

Scale-UP을 위한 기술적 요구사항

토폴로지 선택

ScaleUp 네트워크 토폴로지 선택에서 Nvidia는 현재 1:1 수렴 Fat Tree 구조를 사용하는 반면 다른 회사는 대부분 Torus Ring 또는 2D Mesh 토폴로지를 사용하는 것을 확인할 수 있습니다. Nvidia는 나중에 DragonFly로 발전할 예정입니다.

잠자리가 더 뛰어나다

이 선택의 논리는 hammingMesh 논문에서 확인할 수 있습니다.

이 선택의 논리

Allreduce 대역폭의 경우 Torus가 가장 비용 효율적이며 기본적으로 최고 성능에 도달할 수 있습니다. 그러나 AlltoAll이 필요한 MoE와 같은 모델의 경우 이등분 대역폭을 고려해야 합니다. DragonFly는 배선 복잡성, 글로벌 대역폭 및 네트워크 직경 측면에서 우수한 성능을 발휘합니다.

동적 라우팅 및 안정적인 전송

모두가 RoCE의 단점을 비판하고 있지만 사실 BF3+Spectrum-4에는 Adaptive Routing이 있고 Broadcom에는 Packet Spreading을 발전시키기 위한 DLB/GLB가 있으며 Cisco와 유사한 VoQ 기술도 있습니다. Meta에는 컨트롤 플레인의 트래픽 엔지니어링 또는 선호도 예약을 위한 다중 경로 정적 라우팅도 있습니다.

그러나 이러한 솔루션은 수만 장의 카드 규모 문제 중 일부만 해결할 수 있습니다. 실제 문제는 수십만 장의 카드로 확장할 때 발생합니다. 이 문제를 어떻게 해결합니까?

버스트를 알고리즘적으로 해결하는 것은 어려운 작업이며, 더욱 어려운 점은 버스트의 근본 원인을 이해하려고 하는 사람이 없다는 것입니다. 대신 그들은 버스트를 완화하기 위해 스위치 버퍼를 지속적으로 테스트하려고 노력하고 있으며 일부는 결정론적 네트워킹 및 푸리에 분석도 탐색하고 있습니다. 이것은 단순히 요점을 놓치고 있습니다.

이는 매우 어려운 문제이며, 다른 업계 관계자들이 언제 이 문제를 알아낼지는 두고 볼 일입니다. 또 다른 측면은 시스템 오류와 탄력적 확장입니다. Google의 NSDI24 논문에는 조각화 이유가 언급되어 있습니다.

기계 정지

이러한 문제를 고려하지 않으면 일정 조정 문제가 발생할 수 있습니다. 좋은 선택은 OCS 스위치와 결합된 ICI 내에 라우팅 테이블을 구현하는 것입니다.

OCS 스위치
ICI 스위치 구성 요소

이더넷이 ScaleUP을 지원하는 것이 왜 중요한가요? 왜냐하면 이더넷은 DragonFly와 실패한 링크 전환 기능을 지원하기 위해 여기에 라우팅 계층을 구현해야 하기 때문입니다.

Scale UP에 지연 시간이 중요합니까?

이 질문의 핵심은 GPU가 지연 시간 숨기기를 수행하는 방법과 NVLink와 RDMA 간의 지연 시간 차이입니다. GPU는 본질적으로 처리량 최적화 프로세서이며, 낮은 대기 시간을 추구한다면 구현에 문제가 있다는 점을 기억하는 것이 중요합니다. 근본적인 문제는 NVLink가 메모리 의미론을 사용하는 반면 RDMA는 메시지 의미론을 사용한다는 점이며, 이기종 컴퓨팅을 위한 RDMA 구현에도 어려움이 있습니다.

RDMA 구현의 단점

NVLink에 비해 RDMA에서 대기 시간이 길어지는 주요 요인은 CPU입니다.

CPU 프록시 작동 방식

Nvidia는 많은 메모리 액세스 지연 시간을 보다 효과적으로 숨기는 데 도움이 되는 GDA-KI를 통해 이 문제를 해결하고 있습니다.

Nvidia는 GDA-KI를 통해 이 문제를 해결하고 있습니다.

세분화된 메모리 액세스

또 다른 문제는 NVLink가 메모리 의미론을 기반으로 하고 세분화된 로드/저장 액세스가 많기 때문에 전송 효율성과 대기 시간이 매우 중요하다는 것입니다. 하지만 이더넷 RDMA를 사용하여 이를 어떻게 수행할 수 있습니까? 패킷이 너무 크기 때문에 HPC 이더넷이 필요합니다.

세분화된 메모리 액세스

이것이 제가 NetDAM에서 논의한 문제입니다. RDMA 메시지에 대한 Semi-Lattice 의미 체계의 필요성입니다.

  • 교환성은 데이터가 순서 없이 제출될 수 있도록 보장합니다.
  • 멱등성은 패킷 삭제 및 재전송의 모호성 문제를 해결하지만 부작용이 있는 Reduce와 같은 작업의 경우 트랜잭션 기반 또는 데이터 멱등성이 필요합니다.
  • 연관성은 스케줄링을 통해 세분화된 메모리 액세스에 대한 전송 효율성을 향상시키는 데 도움이 됩니다.
NetDAM에서

메모리 액세스 요구 사항의 경우 호스트 내 프로토콜은 일반적으로 FLIT 크기입니다. 이를 지원하는 동시에 대규모 ScaleUP 상호 연결, 안정성, 라우팅 헤더, 이더넷 헤더, 다중 테넌트 격리(VPC 헤더) 등을 지원하려면 연관성을 활용하는 것이 핵심입니다. 그러나 UEC는 이를 완전히 놓친 것으로 보이며 RUDI에서는 교환성과 멱등성만 지원합니다.

메인 헤더
TLP 다이제스트

Nvidia의 솔루션은 세분화된 액세스 문제를 해결하는 연관성 인코딩입니다.

세분화된 액세스 문제

차세대 NVLink는 Infiniband와 통합될 가능성이 높으며, ScaleOut 및 ScaleUP 네트워크는 결국 통합될 것입니다.

ScaleUP을 위한 메모리 풀링

오늘날 많은 대형 모델은 HBM(고대역폭 메모리)의 제한된 용량으로 인해 어려움을 겪고 있습니다. NVIDIA는 Grace와 NVLink C2C를 연결하여 메모리를 확장함으로써 이 문제를 해결했지만 근본적인 문제는 ScaleUP 네트워킹에 메모리 풀링이 필요하다는 것입니다.

ScaleUP을 위한 메모리 풀링

결론

  1. 이더넷 ScaleUP을 목표로 하는 모든 회사는 다음과 같은 주요 과제를 고려해야 합니다.
  2. 지연 시간은 그다지 중요하지 않습니다. 메시지 의미 체계에 맞게 GPU 메모리 액세스 패턴을 수정한 다음 처리를 캐싱함으로써 대기 시간을 숨길 수 있습니다.
  3. ScaleUP 네트워크의 동적 라우팅 및 테넌트 격리 기능은 매우 중요합니다. 특히 링크 오류로 인한 조각화 문제를 해결하려면 효과적인 라우팅 솔루션이 필요합니다.
  4. RDMA(Remote Direct Memory Access) 의미 체계는 불완전하며 단순히 SHARP(Scalable Hierarchical Aggregation and Reduction Protocol)를 복사하는 것에는 많은 함정이 있습니다. 멱등성을 달성하기 위해 일련의 부작용 작업을 지원하는 Semi-Lattice 의미 체계가 필요합니다.
  5. 전반적인 패브릭 활용도를 높이려면 패브릭 다중 경로 전달 및 정체 제어가 필요합니다.
  6. 대규모 메모리 풀링은 필수적입니다.
결론

코멘트 남김

위쪽으로 스크롤