AMD Instinct MI355X에서 MiniMax M3 최적화

vLLM는 AMD Instinct MI355X에서 MiniMax M3의 서빙 성능을 크게 향상시켜, 낮은 동시성에서 MXFP8 표준 서빙 시 출력 스루풋을 최대 3.14배까지 증가시켰습니다. 이는 GEMM 타일링과 커널 융합부터 분산 시스템 오케스트레이션에 이르기까지 전체 스택에서 반복적으로 버전을 식별하고 해결함으로써 달성되었습니다.

AMD Instinct MI355X에서의 성능 벤치마크

최적화 노력으로 MiniMax M3의 다양한 구성에서 스루풋과 지연 시간이 크게 향상되었습니다:

  • MXFP8 표준 서빙 (동시성 32): GPU당 출력 토큰/초는 109.1에서 342.4로 증가(3.14배). 중앙값 TTFT는 1.46초에서 0.67초로 감소했고, 평균 출력 토큰당 시간(TPOT)은 69.1ms에서 22.1ms로 감소했습니다.
  • MXFP8 표준 서빙 (동시성 128): GPU당 출력 토큰/초는 297.8에서 623.7로 증가(2.09배). 중앙값 TTFT는 3.53초에서 1.54초로 감소했고, 평균 TPOT은 100.7ms에서 48.8ms로 감소했습니다.
  • MXFP4 서빙 (동시성 128): TP4/EP1에서 GPU당 출력 토큰/초는 212.1에서 716.8로 증가했습니다. TP2/EP1로의 추가 최적화를 통해 943.5 출력 토큰/초/GPU에 도달했으며, 초기 결과 대비 4.45배의 성능 향상이 이루어졌습니다.
  • 예측적 디코딩 (EAGLE3): TP4/EP1에서 동시성 128일 때 GPU당 출력 토큰/초는 682.4에 도달했습니다.
  • P/D 분리 (Disaggregation): 동시성 512에서 총 토큰/초/GPU는 6,370.5에 도달했으며, 중앙값 TTFT는 1.32초였습니다.

커널 및 연산자 최적화

성능 향상은 로컬 형태 분석에 기반한 체계적인 접근과 중복 계산의 제거를 통해 이루어졌습니다.

로컬 형태 및 타일링

vLLM는 프리필(대규모-M)과 디코딩(소규모-M)에 대해 서로 다른 방식을 처리하는 GEMM 런처를 최적화했습니다. 디코딩 시 더 좁은 N 타일을 선택하고, 루프 반복 횟수를 줄이기 위해 더 큰 K 단계를 사용함으로써, TP8 8K/1K 출력 스루풋이 7.8–9.4% 향상되었습니다. 또한 그룹화된 MoE 프로그램의 순서를 재정렬하여 인접한 프로그램이 GPU 캐시에서 활성화 행과 전문가 가중치 타일을 재사용할 수 있게 했으며, TP4 테스트에서 1.08×–1.46×의 성능 향상을 달성했습니다.

공유 전문가 융합

MiniMax M3의 공유 전문가는 원래 별도의 밀집 MLP 경로로 실행되었습니다. vLLM는 공유 전문가를 라우팅된 전문가 테이블에 융합하여, 그룹화된 GEMM이 동시에 두 작업을 처리할 수 있도록 했습니다. 이로 인해 별도의 실행과 중간 트래픽이 제거되어 동시성 1에서는 출력 스루풋이 30.2% 향상되었고, 동시성 128에서는 5.6% 향상되었습니다.

희소 어텐션 및 인덱스 재사용

희소 어텐션의 오버헤드를 줄이기 위해 vLLM는 인덱스 공유를 구현했습니다. 후속 레이어가 이전 레이어의 상위-k 블록 결정을 재사용함으로써, 동시성 1에서 평균 TPOT이 약 10% 감소했습니다. 또한 vLLM는 MiniMax M3의 128토큰 논리 블록을 AITER의 16토큰 페이지로 매핑하는 희소 페이지 어댑터를 개발하여 KV 데이터 복사 없이도 가능하게 했으며, TP4, 동시성 256에서 MXFP8은 5.56%, MXFP4는 6.93%의 출력 스루풋 향상을 달성했습니다.

분산 시스템 및 예측적 실행

최적화는 개별 커널을 넘어서 다수 GPU 간의 조율과 예측적 디코딩의 통합에까지 확장되었습니다.

EAGLE3 예측적 디코딩

vLLM는 AMD 하드웨어에 EAGLE3 드래프트 모델을 통합하여 요청 수준의 인덱스 배치를 구현해 모든 드래프트 위치를 함께 처리했습니다. 이로 인해 인덱스 커널 성능이 최대 48.9% 향상되었습니다. 또한 AITER 희소 페이지 어텐션을 다중 토큰 검증으로 확장함으로써, TP4 테스트에서 MXFP8은 7.90%, MXFP4는 8.32%의 출력 스루풋 향상을 달성했습니다.

프리필/디코딩 (P/D) 분리

vLLM는 정확한 전송 기하학과 각 레이어당 바이트 오프셋을 도출함으로써 P/D 분리를 구현했습니다. 시스템 튜닝 결과, 8K/1K 작업 부하에서 모든 워커를 TP4로 이동하고, 2개의 TP4 프리필 워커 대 1개의 TP4 디코딩 워커 비율을 사용하면 동시성 512에서 총 토큰/초/GPU가 6,370.5에 도달하며 중앙값 TTFT는 1.32초였습니다.

에이전트 워크로드 분석

에이전트 코딩(비정규 출력과 재사용 가능한 접두사 포함)을 위한 AgentX 벤치마크를 사용하여, TP4에서 MXFP4, EAGLE3-GQA, 접두사 캐싱을 동시성 28로 설정한 구성에서 테스트를 수행했습니다. 시스템은 GPU당 127.4 출력 토큰/초, 총 출력 토큰/초는 509.5를 제공했으며, 중앙값 TTFT는 645ms, 중앙값 TPOT은 41.3ms였습니다. 분석 결과 GPU 캐시 히트율은 92.1%, KV 캐시 활용률은 88.5%로 나타났으며, 향후 최적화는 GEMM 튜닝보다 접두사 정렬과 제거 정책에 집중해야 한다는 점을 시사합니다.

최적화 방법론 체크리스트

향후 모델 서빙 경로를 최적화하기 위해 vLLM는 다음 기술 체크리스트를 제안합니다:

  1. 로컬 형태 분석: 스파이싱 후 로컬 형태 히스토그램을 기록하고, 복제된 헤드와 라우팅된 토큰 수를 포함합니다.
  2. 반복 예측: 각 레이어의 작업량을 레이어 수, 출력 토큰 수, 활성 요청 수와 곱하여 계산합니다.
  3. 바이트 평면 분리: 계산 텐서, 지속적 상태, 통신을 구분합니다.
  4. 빠른 경로 검증: 모든 빠른 경로에 대한 실행 가능 조건을 기록하고, 디스패치 트레이스를 통해 실제 실행 여부를 검증합니다.
  5. 정확성 게이팅: 성능 게이트와 함께 정확성 검사를 구현합니다.
  6. 반복 프로파일링: 리프 커널이 평탄해지면, 상위 레벨 큐, 소유권, 캐시 용량, OS 제한을 점검합니다.

Sources