UALink (Ultra Accelerator Link)

UALink (Ultra Accelerator Link) 기술 심층 분석

UALink는 엔비디아(NVIDIA)의 독점적인 NVLink에 대항하여, 데이터센터 내 AI 및 머신러닝(ML) 워크로드를 처리하는 가속기(Accelerator) 간의 고속, 저지연 통신을 위해 설계된 개방형 표준입니다.

AMD, Intel, Broadcom, Cisco, Google, HPE, Meta, Microsoft, Oracle 등 거대 기술 기업들이 결성한 UALink Consortium이 주도하고 있으며, 개방형 생태계를 통해 AI 하드웨어의 선택지를 넓히는 것을 목표로 합니다.

이 글은 UALink_200 Rev 1.0 Specification (April 7, 2025) 문서를 기초로 작성되었습니다.

1. 개요 및 핵심 목표: Scale-Up을 위한 개방형 표준

UALink의 가장 큰 특징은 최대 1,024개의 가속기를 하나의 거대한 컴퓨팅 클러스터인 ‘Pod’로 묶어, 마치 단일 거대 가속기처럼 작동하게 만드는 스케일업(Scale-Up) 네트워크라는 점입니다.

  • 메모리 시맨틱(Memory Semantic): 가속기들은 네트워크 패킷 처리가 아닌, CPU의 Load/Store 명령어처럼 서로의 메모리에 직접 접근하여 데이터를 읽고 씁니다.
  • 고대역폭 저지연: 이더넷 기반의 물리 계층을 사용하되, 상위 프로토콜을 경량화하여 오버헤드를 최소화했습니다.

2. 아키텍처 및 계층 구조 (The Stack)

UALink는 데이터의 흐름을 효율적으로 관리하기 위해 4계층 구조를 가집니다. 물리적인 연결부터 데이터 처리까지 각 계층이 명확한 역할을 수행합니다.

2.1 물리 계층 (Physical Layer, PL)

  • 기반 기술: IEEE 802.3dj 이더넷(Ethernet) 물리 계층 기술을 기반으로 합니다. 이는 독자 규격 대신 성숙한 이더넷 케이블과 커넥터(OSFP, QSFP-DD 등) 생태계를 활용하여 비용 효율성을 높이기 위함입니다.
  • 속도 및 구성: 레인(Lane)당 200Gbps 이상의 속도를 지원하며, 기본적으로 4개의 레인을 묶어 800Gbps 대역폭을 제공하는 ‘x4 링크’ 구성을 기본 블록으로 사용합니다.
  • 최적화: 레이턴시(지연 시간)를 줄이기 위해 표준 이더넷의 복잡한 오류 정정(FEC) 인터리빙 방식을 UALink 전용 모드로 최적화하여 적용합니다.
  • 플릿(Flit) 기반 전송: 상위 계층 데이터를 640바이트 크기의 DL Flit으로 포장하여 전송합니다. 이 크기는 물리 계층의 전송 단위(Codeword)와 정확히 정렬되도록 설계되어 대역폭 낭비를 막습니다.
  • 신뢰성 보장 (Link Level Replay): UALink의 핵심 기능입니다.

    재전송 메커니즘: 데이터를 보낸 후 수신 측의 Ack가 올 때까지 ‘Replay Buffer’에 데이터를 보관합니다. 오류 발생 시, TCP처럼 처음부터 다시 요청(End-to-End)하는 것이 아니라, 해당 링크 구간에서 즉시 재전송(Replay)하여 수 마이크로초(µs) 단위의 빠른 복구를 수행합니다.

2.3 트랜잭션 계층 (Transaction Layer, TL)

  • 데이터 변환: 가속기의 읽기/쓰기 명령을 64바이트 단위의 TL Flit으로 변환합니다. 하나의 DL Flit(640B) 안에는 여러 개의 TL Flit이 포함될 수 있습니다.
  • 흐름 제어 (Flow Control): 크레딧(Credit) 기반의 흐름 제어를 수행합니다. 수신 측 버퍼 공간만큼만 데이터를 보내므로, 네트워크 혼잡으로 인한 패킷 드랍(Packet Drop)이 원천적으로 발생하지 않습니다.
  • 역할: 가속기 칩 내부 로직과 UALink 컨트롤러 간의 언어입니다.
  • 기능: 단순 데이터 전송을 넘어, Read, Write, Atomic 등 메모리 조작 명령어를 직접 지원하여 원격 가속기의 메모리를 로컬 메모리처럼 다룹니다.

3. 네트워크 토폴로지와 확장성 (Pod & Addressing)

UALink는 전용 스위치(Switch)를 중심으로 가속기들을 연결하는 구조를 가집니다. 이는 PCIe 스위치와 유사하지만 훨씬 더 큰 확장성을 제공합니다.

  • Pod와 Virtual Pod: * Pod: 최대 1,024개의 가속기가 연결된 전체 물리적 시스템.
    • Virtual Pod: Pod를 논리적으로 분할하여, 여러 사용자(Tenant)가 서로 간섭 없이 독립된 클러스터를 사용할 수 있게 합니다.
  • ID 기반 라우팅: 복잡한 IP 주소 대신, 10비트 ID (Accelerator ID)를 사용합니다. 스위치는 이 ID만 보고 데이터를 라우팅하므로 처리 속도가 매우 빠릅니다.
  • 주소 변환 (Addressing): 1. 가속기: 가상 주소(VA) 사용 2. 네트워크: 글로벌 주소(NPA, Network Physical Address)로 변환 3. 목적지: 로컬 물리 주소(SPA)로 최종 변환
    • 이 과정을 통해 프로그래머는 복잡한 네트워크 토폴로지를 몰라도 Load/Store 명령만으로 통신이 가능합니다.

4. 메모리 모델과 동기화 (Coherency & Synchronization)

UALink는 하드웨어 복잡도와 성능 사이의 균형을 맞춘 설계를 채택했습니다.

4.1 I/O 일관성 (I/O Coherency)

CPU와 가속기 간의 완전한 캐시 일관성(Full Coherency)은 오버헤드가 큽니다. UALink는 소프트웨어 관리형 일관성을 따릅니다.

  • 데이터 쓰기(Write) 발생 시 해당 데이터의 캐시 사본은 무효화(Invalidate)되지만, 실시간 전파 업데이트는 하지 않습니다.
  • 이는 AI 학습이 ‘데이터 로드 -> 연산 -> 동기화’의 명확한 단계를 거친다는 점에 최적화된 것입니다.

4.2 원자적 연산 (Atomics)

AI 학습의 파라미터 업데이트(예: Gradient Accumulation) 효율을 위해, Atomic Operation을 지원합니다.

  • Fetch-and-Add: 원격 메모리의 값을 읽어와서 로컬에서 더하고 다시 쓰는 것이 아니라, 네트워크상에서 “이 값에 X를 더해라"라는 명령 하나로 처리합니다.

5. 보안 (Confidential Computing)

클라우드 및 멀티 테넌트 환경을 고려하여 강력한 보안 기능을 내장했습니다.

  • 링크 암호화: 가속기 간 모든 데이터는 AES-GCM-256 알고리즘으로 암호화됩니다.
  • Untrusted Switch 모델: 스위치는 라우팅을 위한 헤더(Header)만 볼 수 있고, 실제 데이터(Payload)는 복호화할 수 없습니다. 즉, 인프라 제공자나 스위치 장비가 해킹당하더라도 사용자 데이터는 안전합니다.

6. 신뢰성 및 장애 처리 (RAS)

1,024개의 칩 중 하나만 고장 나도 전체 학습이 중단되는 것을 막기 위한 기능입니다.

  • Isolation Mode: 특정 링크나 가속기에 오류 발생 시, 해당 부분을 즉시 격리(Isolate)합니다.
  • Dummy Response: 격리된 가속기로 향하는 요청에는 시스템이 ‘더미 응답’을 대신 보내, 요청을 보낸 가속기가 무한 대기(Deadlock)에 빠지지 않게 합니다. 이를 통해 소프트웨어가 안전하게 체크포인트에서 복구할 시간을 벌어줍니다.

기능UALinkNVLinkInfiniBand/Ethernet (RoCE)
주목적Scale-Up (메모리 공유)Scale-Up (메모리 공유)Scale-Out (데이터 전송)
최대 확장1,024 가속기 (Pod)576 가속기 (NVLink 5)수만 개 이상
프로토콜Load/Store, AtomicLoad/Store, AtomicSend/Receive (RDMA)
생태계개방형 (AMD, Intel 등)독점 (NVIDIA)표준 개방형
물리 계층Ethernet PHY 기반독자 규격Ethernet/IB PHY

UALink는 NVLink의 강력한 성능을 개방형 표준으로 구현하여, 특정 벤더 종속(Vendor Lock-in)을 탈피하고자 하는 차세대 AI 데이터센터의 핵심 기술이 될 것입니다.