flashinfer-ai/flashinfer
FlashInfer: Kernel Library for LLM Serving
FlashInfer – LLM 추론을 위한 고성능 GPU 커널
무엇인가요
- 대규모 언어 모델(LLM) 서빙에 필요한 핵심 연산을 위한 고도로 최적화된 GPU 커널을 제공하는 C++/CUDA 라이브러리(파이썬 패키지 포함). 주로 어텐션, 행렬 곱셈(GEMM), 혼합 전문가(MoE) 라우팅, 샘플링, 그리고 몇 가지 보조 연산에 집중합니다.
왜 중요한가요
- LLM 추론은 특히 많은 동시 요청(프리필 + 디코딩)을 처리하거나 저정밀도 형식(FP8/FP4)을 사용할 때 어텐션 및 GEMM 커널의 속도로 인해 성능이 제한되는 경우가 많습니다. FlashInfer는 FlashAttention-2/3, cuDNN, CUTLASS, TensorRT-LLM 등의 여러 백엔드 구현을 통합하고, 사용 중인 GPU에 따라 가장 빠른 것을 자동으로 선택하여 Turing GPU(RTX 20)부터 최신 Blackwell 칩까지 "최첨단" 수준의 처리량을 제공합니다.
주요 기능
| 영역 | FlashInfer가 제공하는 기능 |
|---|---|
| 어텐션 | • 동적 배치를 위한 페이지화/불규칙 KV 캐시 • 프리필, 디코딩, 혼합(POD) 워크로드용 별도 커널 • DeepSeek MLA, 캐스케이드(계층적) 어텐션, 블록 스parse 패턴, 사용자 정의 JIT 가능 변형 지원 |
| GEMM / Linear | BF16, FP8, FP4 행렬 곱셈; LoRA/MoE용 그룹화 GEMM; Blackwell 전용 NVFP4/MXFP4 커널 |
| 혼합 전문가(MoE) | 여러 라우팅 알고리즘(DeepSeek-V3, Llama-4, top-k)과 양자화된 전문가 가중치를 갖춘 융합 MoE 커널 |
| 샘플링 / 디코딩 | 정렬이 필요 없는 top-k / top-p / min-p 샘플링; 사전 추론(speculative decoding) 지원 |
| 통신 | 분산 추론을 위한 커스텀 AllReduce, 멀티노드 NVLink(MNNVL), NVSHMEM 통합 |
| 기타 연산 | RoPE(LLLama 3.1 포함), 융합 RMSNorm/LayerNorm, 융합 SiLU/GELU 활성화 |
하드웨어 지원 범위
- Turing(SM 7.5) 이후의 모든 NVIDIA GPU에서 작동. Ampere, Ada Lovelace, Hopper, 최신 Blackwell 아키텍처용으로 특정 커널이 최적화되었으며, 저정밀도(FP8/FP4) 경로는 후자에 한해 지원됩니다.
사용 방법
- 파이썬 웨일 설치:
pip install flashinfer-python(옵션 추가 웨일로 사전 컴파일된 커널 또는 JIT 캐시 쉴드 제공). - 고수준 API 호출, 예:
flashinfer.single_decode_with_kv_cache(q, k, v)로 단일 디코딩 어텐션 단계를 수행하거나, 프리필용 더 풍부한 배치 API 사용. - 라이브러리는 PyTorch의
torch.compile및 CUDA Graphs와 통합 가능하여, 저지연 서빙 스택에 내장할 수 있습니다.
에코시스템 채택
- 주요 오픈소스 추론 서버에 통합됨: vLLM, TensorRT-LLM, HuggingFace Text Generation Inference, SGLang, MLC-LLM, LightLLM, Lorax, ScaleLLM.
문서 및 커뮤니티
- 전체 문서는 https://docs.flashinfer.ai, Slack 커뮤니티, GitHub 디스커션 포럼 제공. CI 배지로 CUDA 버전(12.9, 13.0, 13.4)별 지속적 테스트 확인 가능.
FlashInfer를 선택해야 하는 경우
- NVIDIA GPU에서 가능한 한 빠른 어텐션/GEMM 커널이 필요할 때, 특히 혼합 프리필-디코딩 워크로드를 처리하거나 저정밀도(FP8/FP4) 추론을 원하거나 최신 Blackwell 하드웨어에서 실행할 경우. 기존 PyTorch 기반 서버에서 사용되는 어텐션 커널의 즉시 대체 가능.
위 모든 세부 정보는 리포지토리의 README에서 직접 인용되었습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트