본문으로 건너뛰기

RTX 3090 두 장으로 Qwen3.8-27B 구동

Prefix Caching과 MTP-3를 적용한 Qwen3.8-27B가 RTX 3090 두 장에서 6.5초 TTFT와 80~90 tok/s를 기록했습니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

작성자는 NVLink가 없는 RTX 3090 두 장에서 vLLM 0.27.1로 Qwen3.8-27B를 TP=2 구성으로 실행하고, MTP-3 speculative decoding과 GPU Prefix Caching, FP8 KV Cache를 함께 사용했습니다. Prefix Cache 적중률은 약 96.8%였고 평균 TTFT는 cold 상태의 140초에서 6.5초로 줄었으며, 단일 세션 디코딩은 80~90 tok/s를 유지했습니다. 200k 토큰 프롬프트에서도 디코딩 속도는 짧은 입력과 같았지만, 긴 문맥은 prefill 시간을 늘렸습니다. 여러 세션에서는 약 3,200 tok/min을 기록했고 두 채팅은 각각 약 42 tok/s로 GPU 디코딩 자원을 나눠 사용했습니다.

섹션별 상세

01
작성자는 NVLink가 없는 RTX 3090 두 장에서 W4A16-AutoRound 형식의 Qwen3.8-27B를 vLLM 0.27.1과 TP=2로 구동했습니다. 전체 262,144 토큰 문맥, FP8 KV Cache, GPU Prefix Caching, MTP-3 speculative decoding을 함께 설정해 로컬 endpoint에 연결된 Pi 에이전트에서 사용했습니다. 실행 명령에는 최대 동시 시퀀스 8개와 KV Cache 메모리 13,388,056,064바이트가 지정되어 있습니다.
02
실사용에서는 Prefix Cache 적중률이 약 96.8%에 이르러 프롬프트 토큰의 약 3%만 GPU prefill을 거쳤습니다. 그 결과 평균 TTFT는 cold 상태의 140초에서 6.5초로 줄었고 p50은 5초 이하였으며, 단일 세션 디코딩 속도는 80~90 tok/s로 측정됐습니다. MTP 토큰 수용률은 약 52%였고 한 턴에 약 130k 프롬프트 토큰을 처리했습니다.
03
문맥 길이는 디코딩 처리량보다 prefill 시간에 더 큰 영향을 줬습니다. 200k 토큰 프롬프트에서도 짧은 입력과 같은 디코딩 속도가 유지됐으며, 벤치마크 최고치는 106.9 tok/s였습니다. 여러 세션에서는 처리량이 약 3,200 tok/min으로 집계됐지만 두 채팅이 각각 약 42 tok/s로 나뉘어 실행되어 단일 세션 속도 90 tok/s가 세션 수만큼 증가하지는 않았습니다.
04
두 GPU를 합친 KV 예산은 약 732k 토큰이었고, 동시 세션은 이 예산을 나누어 사용했습니다. 따라서 Prefix Caching은 반복되는 에이전트 프롬프트의 prefill 비용을 줄이는 데 기여하지만, 동시에 실행되는 세션은 GPU 디코딩 자원을 분할합니다. 작성자는 마지막에 가능하면 Qwen과 Claude Code를 함께 사용하지 말라고 덧붙였지만 그 판단의 기술적 근거는 제시하지 않았습니다.

용어 해설

추측 디코딩(Speculative Decoding)
추측 디코딩은 초안 생성기가 여러 토큰을 먼저 제안하고 대상 모델이 이를 한 번에 검증하는 추론 방식입니다. 제안이 많이 수용되면 대상 모델의 순차적 디코딩 횟수가 줄어들어 토큰 생성 속도가 높아집니다.
Prefix Caching
Prefix Caching은 여러 요청에 반복되는 프롬프트 앞부분의 KV 상태를 GPU 메모리에 보관하는 기능입니다. 이후 요청이 같은 prefix를 포함하면 해당 토큰의 prefill을 건너뛰어 첫 토큰 응답 지연을 줄입니다.
첫 토큰 지연 시간(TTFT)
TTFT는 요청을 받은 뒤 첫 번째 출력 토큰이 생성될 때까지 걸리는 시간입니다. 긴 프롬프트에서는 GPU prefill이 이 시간을 크게 늘리므로 캐시 적중 여부와 입력 길이가 핵심 변수로 작용합니다.
KV Cache
KV Cache는 Transformer가 이전 토큰에서 계산한 attention의 key와 value를 저장해 다음 토큰 생성 때 재사용하는 메모리입니다. 저장 용량이 문맥 길이와 동시 세션 수를 제한하며, 이 글에서는 fp8 형식으로 메모리 사용량을 줄였습니다.
Tensor Parallelism
Tensor Parallelism은 하나의 모델 가중치와 연산을 여러 GPU에 나누어 실행하는 방식입니다. 이 글의 TP=2 구성은 두 RTX 3090에 모델을 분산하지만 NVLink가 없어 GPU 간 통신 비용이 발생하는 환경입니다.
FP8 KV Cache
FP8 KV Cache는 KV Cache의 key와 value를 8비트 부동소수점 형식으로 저장하는 설정입니다. 같은 GPU 메모리에서 더 많은 토큰과 세션을 유지하는 대신 정밀도와 지원 여부를 함께 고려해야 하며, 글에서는 262,144 토큰 문맥에 사용했습니다.

코드 예제

bash
CUDA_VISIBLE_DEVICES=0,1 vllm serve .../Qwen3.8-27B-W4A16-AutoRound \
  --served-model-name qwen3.8-27b --host "$TAILSCALE_IP" --port 18020 \
  --tensor-parallel-size 2 --kv-cache-memory-bytes 13388056064 \
  --max-model-len 262144 --max-num-seqs 8 \
  --kv-cache-dtype fp8 --mamba-ssm-cache-dtype float16 \
  --async-scheduling --max-num-batched-tokens 4096 --enable-prefix-caching \
  --language-model-only --enable-auto-tool-choice --tool-call-parser qwen3_coder \
  --speculative-config '{"method":"mtp","num_speculative_tokens":3,"draft_sample_method":"probabilistic"}' \
  --reasoning-parser qwen3

두 RTX 3090에서 Qwen3.8-27B를 TP=2로 실행하고 FP8 KV Cache, Prefix Caching, MTP-3를 함께 활성화하는 vLLM 실행 명령입니다.

언급된 도구

vLLM중립

Qwen3.8-27B를 여러 GPU에 분산해 서빙하고 Prefix Caching과 speculative decoding을 실행하는 추론 엔진입니다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 23.수집 2026. 08. 23.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.