rvLLM은 Rust로 처음부터 재작성한 고성능 LLM 추론 엔진 — vLLM 완전 대체제. Python 런타임·GIL·GC 의존성 완전 제거. 단일 정적 바이너리 16MB로 배포. H100 SXM에서 Qwen2.5-1.5B 기준 40,714 tok/s 달성. 시작 시간 6초 (vLLM 120초 대비 20×), 바이너리 31× 작음. OpenAI 호환 API. Claude와 렌탈 GPU만으로 22시간 만에 완성된 프로젝트.
개발자: Andy Norris
공개: 2026-03-27 오픈소스
설치: cargo install rvllm 또는 pip install rvllm
빌드 시간: 22시간 (Claude + 렌탈 GPU)
vLLM vs rvLLM 비교
항목
Python vLLM
rvLLM
시작 시간
~120초
6초 (20×)
바이너리 크기
~500MB
16MB (31×)
CPU 메모리
~1GB
348MB
의존성
PyTorch + 500MB 패키지
없음 (정적 바이너리)
P95 레이턴시 분산
190ms (12%)
34ms (1.4%)
GC 일시 정지
있음
없음
GIL
있음
없음
언어
Python
Rust
CUDA 커널
외부 라이브러리
40개 직접 작성
벤치마크 (H100 SXM 80GB)
Qwen2.5-1.5B f16 (직접 엔진, greedy, 32 출력 토큰)
N (배치)
tok/s
wall_ms
1
240
133
64
15,812
129
128
26,161
156
256
40,714 ⭐
194
Qwen2.5-7B f16
N
tok/s
wall_ms
1
108
296
32
3,911
261
64
7,300
280
128
12,624
324
CPU 샘플링 (Rust vs Python)
연산
Rust
Python
배속
Combined penalties (2K)
2.6µs
63µs
24×
Multinomial (32K vocab)
12µs
66µs
5.5×
배치 64개 (Rayon)
4.3ms
36.4ms
8.5×
핵심 최적화 기법
1. CUDA 그래프 리플레이 (+178% 처리량) ⭐
이전 구현 문제:
temperature == 0.0 (greedy) 에만 리플레이 적용
→ 실제론 리플레이가 거의 안 됨
수정:
CUDA 그래프 = 순전파(GEMM, 어텐션, 정규화)만 캡처
→ 샘플링과 무관하므로 조건 제거
→ 모든 디코드 스텝에서 리플레이
→ 스텝당 ~254 커널 런치 호출 제거
→ +178% 처리량 한 번에
HTTP 벤치마크 기준:
vLLM 대비 0.67× 처리량 (아직 느림)
→ HTTP 오버헤드 최적화 진행 중
→ 직접 엔진 경로에서는 이미 경쟁력
JIT 커널 퓨전:
crates/rvllm-fusion/ 준비됨
→ 완성 시 추가 향상 기대
모델 지원:
아직 Dense 모델 위주
MoE 완전 지원 진행 중
의의
1. Rust의 시스템 프로그래밍 우위 입증
- GC 없음 → P95 분산 1.4%
- GIL 없음 → 진짜 병렬
- 단일 정적 바이너리 → 배포 간소화
2. Python AI 인프라의 대안
- vLLM/PyTorch의 무거움에서 탈출
- 시작 시간 20× → 서버리스·엣지 배포 가능
3. CUDA 커널 직접 작성의 가치
- 40개 커스텀 커널로 Python 래퍼 대비 최적화
- 퓨전·그래프 리플레이 직접 제어
4. AI로 AI 인프라를 만드는 시대
- Claude 에이전트 스웜으로 22시간 완성
- "10-에이전트 스웜"으로 커널 최적화
5. [[Rust CLI 도구]] 흐름의 확장
- sudo-rs, coreutils → 이제 AI 인프라까지 Rust