🟢 📦 오픈소스 게시일: · 2 분 읽기 ·

vLLM의 Helion: PyTorch 네이티브 DSL이 CUDA 커널을 대체하고 Qwen3 모델의 FP8 추론을 가속화

편집 일러스트: 추론 및 LLM 자동 튜닝을 위한 PyTorch Helion DSL 이식 가능한 GPU 커널

Helion은 직접적인 CUDA 코드 없이 GPU 커널을 작성하기 위한 PyTorch 네이티브 DSL입니다. Qwen3 모델의 FP8 추론을 위해 아홉 가지 Helion 커널이 vLLM에 통합되었습니다. 비-GEMM 커널은 H100에서 최대 73% 속도 향상을 기록하며, 전체 처리량은 이전 솔루션 대비 약 5~9% 향상됩니다.

🤖

이 기사는 AI가 1차 출처를 기반으로 생성했습니다.

PyTorch 팀이 오늘 Red Hat과의 협업으로 Qwen3 모델의 FP8 추론(inferencing)을 위해 vLLM에 아홉 가지 Helion 커널을 통합한 내용을 담은 블로그 포스트를 발표했습니다. 저자는 Red Hat의 Sean Chen과 Meta Platforms(PyTorch 팀)의 Yanan Cao입니다.

Helion이란 무엇이며 개발자들이 주목해야 하는 이유는?

Helion은 「타일이 있는 PyTorch」로 설명되는 도메인 특화 언어(DSL, domain-specific language)입니다. 직접 CUDA 코드를 작성하지 않고 타일 프로그래밍(tile-programming) 개념으로 확장된 PyTorch 구문을 사용하여 고성능 GPU 커널을 작성할 수 있습니다. 목표는 하드웨어 이식성입니다. 동일한 커널이 수동 포팅 없이 NVIDIA H100, B200, 미래 아키텍처에서 작동해야 합니다.

Helion은 고급 사전 컴파일(ahead-of-time, AOT) 자동 튜닝 인프라를 제공합니다. 각 대상 GPU 아키텍처와 입력 차원에 대한 최적의 타일 크기와 메모리 레이아웃을 자동으로 탐색합니다. 커널 개발은 빠릅니다. 저자들은 아홉 커널 대부분이 하루 작업 이내에 구현 및 검증되었다고 밝힙니다.

vLLM에 통합된 커널들

아홉 커널은 FP8 추론의 포워드 패스(forward pass) 거의 전체를 커버합니다.

  1. dynamic_per_token_scaled_fp8_quant
  2. rms_norm_dynamic_per_token_quant
  3. silu_and_mul_dynamic_per_token_quant — 새로운 퓨전 커널
  4. fused_qk_norm_rope
  5. per_token_group_fp8_quant
  6. rms_norm_per_block_quant
  7. silu_and_mul_per_block_quant
  8. scaled_mm
  9. scaled_mm_blockwise

통합으로 토큰별 양자화에서 포워드 패스의 커널 호출 수가 11개 이상에서 10개 퓨전 연산으로 줄어듭니다.

개별 커널 수준의 성능

비-GEMM 커널은 이전 구현(torch.ops._C) 대비 H100에서 일관되고 상당한 속도 향상을 보입니다.

  • rms_norm_per_block_quant: +67% (torch.ops._C 대비 2.055×)
  • silu_and_mul_per_block_quant: +73% (torch.ops._C 대비 2.269×)
  • rms_norm_dynamic_per_token_quant: torch.ops._C 대비 1.80×
  • fused_qk_norm_rope: torch.compile 대비 1.38×

GEMM 커널(scaled_mm)은 혼합 결과를 보입니다. **H100에서 1.08×**이지만 **B200에서는 0.739×**입니다. 저자들은 Blackwell 아키텍처에 대한 Triton 코드 생성의 한계가 원인이며, 해당 문제를 해결할 CuteDSL 백엔드가 개발 중임을 솔직하게 밝힙니다.

전체 모델 수준의 속도 향상

테스트는 H100 및 B200에서 Qwen3 모델(1.7B, 8B, 32B 파라미터)로 수행되었습니다.

  • 토큰별 양자화(H100): Qwen3-1.7B에서 전체 처리량 약 1.05×
  • 투기적 디코딩, Qwen3-8B, H100: 전체 처리량 최대 1.09× (배치 크기 16에서 TTFT 1.15× 향상)
  • 그룹별 양자화(H100 및 B200): 모든 워크로드에서 약 1.05×

투기적 토큰 3개로 Qwen3-8B를 사용한 투기적 디코딩에서 TTFT(첫 번째 토큰까지의 시간) 1.33× 향상이 측정되었습니다.

실용적인 한계

저자들은 절충안에 대해 투명하게 밝힙니다. scaled_mm과 같은 대형 커널의 자동 튜닝은 세 Qwen3 변형에 대한 모든 입력 형태(168개의 고유 차원)를 커버하는 데 약 하루가 필요합니다. Helion의 런타임 디스패치는 커널 호출당 수십 마이크로초의 지연을 도입하므로, 최적 성능을 위해 CUDA 그래프 캡처가 필수입니다.

Helion 그룹별 양자화 커널은 아직 B200에서 DeepGEMM이 요구하는 UE8M0 형식과 호환되지 않으며, 이는 또 다른 미결 사항입니다.

향후 전망

이 프로젝트는 아홉 커널 모두의 구현과 함께 GitHub 이슈 vllm-project/vllm#32962로 공개되었습니다. 목표는 추가 아키텍처로 Helion 지원을 확장하고 CuteDSL 백엔드를 통해 Blackwell에서의 GEMM 성능을 해결하는 것입니다. 이 문제에 대한 Red Hat과 Meta PyTorch 팀의 협업은 PyTorch 생태계가 추론을 위한 고성능 커널의 하드웨어 이식성 문제를 진지하게 다루고 있다는 신호입니다.

자주 묻는 질문

Helion이란 무엇이며 vLLM과의 관련성은 무엇인가요?
Helion은 직접적인 CUDA 코드 작성 없이 타일 프로그래밍(tile-programming) 모델을 사용하여 고성능 GPU 커널을 작성할 수 있는 PyTorch 네이티브 도메인 특화 언어(DSL)입니다. vLLM과의 관련성은 하드웨어별 성능을 유지하면서 여러 GPU 아키텍처에서 작동하는 이식 가능한 커널 작성을 가능하게 한다는 점입니다.
vLLM에 몇 개의 Helion 커널이 통합되었으며 결과는 어떤가요?
아홉 개의 커널이 vLLM에 통합되었습니다. 비-GEMM 커널은 이전 구현 대비 H100에서 67~73% 속도 향상을 보입니다(rms_norm_per_block_quant +67%, silu_and_mul_per_block_quant +73%). GEMM 커널은 H100에서 1.08×이지만, Blackwell 아키텍처에 대한 Triton 코드 생성 제한으로 B200에서는 0.739×를 보입니다.
어떤 모델이 테스트되었으며 엔드투엔드 성능은 어떤가요?
Qwen3 모델(1.7B, 8B, 32B)이 NVIDIA H100 및 B200에서 테스트되었습니다. 토큰별 양자화의 경우 전체 처리량이 H100에서 약 1.05×, Qwen3-8B를 사용한 투기적 디코딩에서는 최대 1.09× 향상됩니다.

📬 AI 뉴스를 받은편지함으로

나만의 방식으로 구성하는 일일 다이제스트 — 주제, 출처, 주기를 선택하세요. 원클릭 해지.