vLLM × HPC-Ops: Tencent Hunyuan의 고성능 Attention 및 MoE 백엔드

vLLM × HPC-Ops: Tencent Hunyuan의 고성능 Attention 및 MoE 백엔드

이것이 중요한 이유

프로덕션 LLM 서빙은 이제 동적이고 다양한 길이의 배치와 점점 더 커지는 MoE 모델을 처리해야 하므로, 지연 시간(latency)은 단순한 matmul 처리량보다는 커널이 작업을 스케줄링하고 데이터를 이동시키는 방식에 의해 결정됩니다. HPC-Ops는 로드 밸런싱된 attention과 완전히 융합된 FP8 MoE 커널을 제공하여 유휴 SM 사이클을 줄이고 단계별 오버헤드를 제거함으로써 이러한 실제 병목 현상을 직접적으로 해결합니다.

HPC-Ops: vLLM에 도입된 프로덕션급 연산자 라이브러리

HPC-Ops는 Tencent Hunyuan AI Infra 팀이 구축한 오픈 소스 연산자 라이브러리로, Hopper GPU를 위한 네이티브 BF16 및 FP8 지원과 함께 attention, MoE, GEMM, sampling, normalization 및 communication-compute fusion에 집중합니다. 이들의 attention 및 MoE 커널은 PR #46020 (Attention) 및 PR #45924 (MoE)를 통해 vLLM에 퍼스트 클래스 백엔드로 업스트림되었으며, 소스 코드 변경이나 별도의 포크(fork)가 필요하지 않습니다.

Attention 백엔드: 동적 로드 밸런싱 스케줄링

HPC-Ops attention 백엔드는 혼합 길이 디코드(mixed-length decode) 시 정적 split-KV 스케줄링으로 인해 발생하는 유휴 시간을 제거합니다. 이를 위해 모든 KV 시퀀스를 균일한 64-token 타일로 분할하는 step별 로드 밸런싱 스케줄러를 사용하며, 실제 작업량에 따라 CTA에 타일을 할당하고 모든 SM을 포화 상태로 유지하는 지속적인 커널 그리드를 실행합니다. 이를 통해 정적 split-KV 스케줄링 대비 최대 2.95배의 속도 향상을 제공하며, H20에서의 혼합 길이 디코드 시 FlashInfer 및 FlashAttention 대비 평균 2.25배의 이점을 제공합니다.

융합된 attention prologue (HpcRopeNorm)는 QK-Norm, RoPE, KV-cache 쓰기 및 FP8의 경우 query 양자화를 단일 커널로 결합하여, 별도의 메모리 제한적(memory-bound) 실행과 HBM 왕복(round-trips)을 제거합니다.

vLLM과의 통합은 vLLM의 AttentionBackend 기본 클래스를 상속받고 표준 백엔드 메커니즘을 통해 등록되는 HpcAttentionBackend를 통해 이루어집니다.

MoE 백엔드: 융합된 저지연 FP8 MoE 파이프라인

HPC-Ops MoE 백엔드는 routing, Gate-Up GEMM, activation/quantization, Down GEMM 및 top-k weighted reduction을 단일 실행 파이프라인으로 융합하여 기존 MoE 경로의 단계별 오버헤드를 제거합니다. 공유 메모리 카운팅 패스를 사용하여 연속적인 expert 범위를 구축하고, routing 인덱스를 통해 토큰을 직접 읽으며, 중간 결과값을 레지스터나 공유 메모리에 유지합니다. 또한, 불균형한 expert 타일을 CTA 전체에 고르게 분산시키기 위해 occupancy-first warp group과 지속적인 그리드를 채택했습니다. Programmatic Dependent Launch는 커널 실행 간의 간극(bubbles)을 없애기 위해 커널 실행을 중첩시킵니다.

이 파이프라인은 per-tensor 및 block-wise scaling과 함께 FP8로 실행되어 베이스라인 출력 품질과 일치합니다. H20에서 TP8/EP1 기준 Triton 및 CUTLASS 대비 평균 1.59배, TP1/EP8 기준 1.21배의 속도 향상을 달성했습니다.

vLLM과의 통합은 FusedMoEExpertsModular를 상속받는 HPCExperts를 통해 이루어지며, 표준 백엔드 등록 메커니즘을 통해 등록됩니다.

vLLM에서 HPC-Ops 백엔드 사용하기

백엔드를 사용하려면 먼저 소스에서 HPC-Ops를 설치하십시오:

git clone https://github.com/Tencent/hpc-ops.git
cd hpc-ops
make wheel
python3 -m pip install dist/*.whl

Hy3 (BF16) 모델에 대해 attention 백엔드를 활성화합니다:

vllm serve tencent/Hy3 \
    --tensor-parallel-size 8 \
    --attention-backend HPC_ATTN

Hy3-FP8의 경우 KV-cache dtype 및 block size를 추가합니다:

vllm serve tencent/Hy3-FP8 \
    --tensor-parallel-size 8 \
    --attention-backend HPC_ATTN \
    --kv-cache-dtype fp8_e4m3 \
    --block-size 64

MoE 백엔드를 활성화합니다 (FP8 전용):

vllm serve tencent/Hy3-FP8 \
    --tensor-parallel-size 8 \
    --moe-backend hpc

현재 백엔드는 NVIDIA Hopper 아키텍처 GPU에서만 지원되며, H20에서 최고의 성능을 발휘합니다.

H20에서의 성능

Fused MoE vs Triton / CUTLASS

배치 크기 4에서 16384에 걸쳐 HPC-Ops MoE 지연 시간은 Triton과 CUTLASS 모두보다 낮습니다. TP8/EP1에서 평균 속도 향상은 1.59배이며, TP1/EP8에서는 평균 1.21배입니다. 가장 큰 이점은 저지연 디코드에 전형적인 소규모~중규모 배치 크기에서 나타납니다.

혼합 길이 배치에서의 Attention 디코드

동적 스케줄링은 정적 split-KV, FlashInfer 및 FlashAttention보다 성능이 뛰어납니다. 속도 향상은 편차(skew)가 커질수록 증가합니다: 균일한 64×0.5K 배치에서는 1.00배에서 1×128K + 31×4K 혼합 배치에서는 2.95배까지 증가합니다. 테스트된 분포 전반에 걸쳐 FlashInfer/FlashAttention의 최적값 대비 평균 이점은 2.25배입니다.

Prefill, Extend 및 Decode 형태에 따른 Attention

HPC-Ops attention 지연 시간은 벤치마크된 모든 형태에 대해 FlashAttention, Triton, FlashInfer 중 가장 빠른 것과 대등하거나 더 빠릅니다 (예: q512 prefill의 경우 0.047ms vs 0.069ms, 8q1s1k decode의 경우 0.019ms vs 0.031ms).

Hy3 (8× H20)에서의 End-to-End 성능

HPC-Ops attention 및 MoE 백엔드를 모두 사용하면 vLLM 기본 백엔드 대비 TTFT는 약 24%, TPOT는 약 17% 감소합니다. 성능 향상은 배치 크기가 커질수록 증가하여, 테스트된 가장 큰 배치 크기에서는 TTFT 약 30%, TPOT 약 30% 감소에 도달합니다.

향후 계획

Tencent Hunyuan 팀은 vLLM 커뮤니티와 지속적으로 협력하여 이러한 백엔드를 개선하고, 성숙해짐에 따라 추가적인 작업을 업스트림할 것이며, 사용자들의 피드백, 이슈 및 벤치마크를 환영합니다.

감사의 말

Tencent Hunyuan AI Infra 팀 (Sethran Liu, Chase Shao, Shengy Wei, Theo Cheng, Ryann Xue, Lando Jiang, Looper Zhao, Haank Lin, Aiden Ren, Lehua Ding, Chengv Jiang, Steven Kuang, Liqi He, Kipper Gong, Reedlau Liu, Raccoon Liu, Dick Zhu), Tencent Network Platform Department, vLLM/Inferact 기여자(Kaichao You, Yongye Zhu, Yifan Qiao), NVIDIA 엔지니어(Yuanhang Sun, Perkz Zheng, Yuxi Chi, Jiang Shao, Jun Gu, Meng Wang, River Liu, Gary Ji, Chandler Zhou), 그리고 이 기술의 기반이자 비교 대상이 되는 광범위한 오픈 소스 커널 커뮤니티에 감사드립니다.

Sources