본문으로 건너뛰기

Paddock, Rust 기반 NVIDIA GPU 추론 서버

Rust로 구현한 Paddock이 CUDA 네이티브 실행과 Paged KV 캐시로 오픈 모델 추론을 겨냥합니다.

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

TL;DR

Paddock은 NVIDIA GPU에서 오픈 모델을 실행하는 Rust 네이티브 추론 서버로, 스케줄러·Paged KV 캐시·메모리 관리·CUDA 커널을 저장소 안에서 직접 구현하고 OpenAI 및 Anthropic 호환 API를 제공합니다. 단일 GPU에 맞는 모델을 대상으로 GGUF와 safetensors, FP8·NVFP4·MXFP4·Q8_0·Q4_K 계열 양자화를 지원하며, 연속 배칭·Radix Prefix 캐싱·호스트 RAM 및 디스크로의 KV 오프로딩을 사용합니다. 내장 Studio는 모델 다운로드·관리·비교와 PDF·Office 문서 처리를 지원하고, vision·음성 전사·reranking·문서 추출까지 범위를 넓혔습니다. 저장소는 llama.cpp, vLLM, SGLang과 RTX PRO 6000 및 B200에서 비교했다고 밝히지만, 프로젝트는 CUDA·Windows·Linux·x64에 한정되고 아직 활발한 개발 단계입니다.

섹션별 상세

01
Paddock은 모델 실행에 필요한 scheduler, paged KV cache, memory management, CUDA kernels를 별도 래퍼가 아니라 자체 엔진 구성요소로 포함한 Rust 추론 서버입니다. paddock-runner가 실제 모델 실행을 맡고 paddock manager는 모델 다운로드와 실행을 단순화하며, Studio는 모델을 나란히 비교하고 OpenRouter 같은 외부 endpoint와 대조할 수 있게 구성됩니다. 단일 GPU에 모델을 올리는 조직과 기업을 주된 대상으로 삼고, tensor parallelism은 아직 지원 전인 상태입니다.
02
서버 계층은 Paged KV cache, chunked prefill을 포함한 continuous batching, Radix Prefix caching, 동시 세션 간 공정 스케줄링을 결합합니다. 긴 컨텍스트와 공유 prefix가 많은 여러 coding-agent 세션을 주요 workload로 삼아, 요청별 KV 상태를 페이지 단위로 관리하고 공통 prefix 계산을 재사용하는 구조입니다. KV를 FP8로 저장하거나 host RAM과 선택적으로 디스크로 옮기고, VRAM보다 큰 MoE 모델은 RAM에서 expert를 스트리밍하도록 설계했지만 will-it-fit 추정치는 아직 부정확하다고 명시합니다.
03
Paddock은 GGUF와 safetensors에서 가중치를 읽고 FP8, NVFP4, MXFP4, Q8_0, Q4_K_XL, Q4_K_L, Q4_K_M을 지원합니다. 양자화 형식은 모델 전체가 아니라 텐서별로 dispatch되므로 여러 형식이 섞인 실제 checkpoint를 처리할 수 있으며, API는 OpenAI chat completions·completions·Responses·embeddings·audio transcriptions와 Anthropic messages·token counting을 포함합니다. runner가 자체 /openapi.json을 게시하고 Model Context Protocol surface도 제공해 기존 API 클라이언트와 연결되는 경로를 마련합니다.
bash
# 1. pdfium, a build input linked into paddock-runner:
download our prebuilt
powershell -File packs/pdfium/fetch.ps1 # Windows
bash packs/pdfium/fetch.sh # Linux
# 2. the Studio bundle, embedded by rust-embed
cd studio && npm ci && npm run build && cd ..
# 3. the binaries
cargo build --release -p paddock-manager -p paddock-runner

PDF 렌더링 라이브러리를 준비하고 Studio 웹 번들을 빌드한 뒤 Paddock manager와 runner 바이너리를 릴리스 모드로 컴파일합니다.

bash
powershell -File packs/cuda/build.ps1 # every arch
powershell -File packs/cuda/build.ps1 -Arches 86 # just yours, much faster
bash packs/cuda/build.sh # Linux

Rust 빌드와 분리된 CUDA 커널 팩을 전체 아키텍처 또는 지정한 GPU 아키텍처에 맞춰 생성합니다.

04
저장소가 열거한 모델에는 Qwen, Gemma, GPT-OSS, Granite, Laguna, Muse Glimmer, Nemotron, PaddleOCR-VL, Qwen3-ASR, Granite Speech, Whisper fine-tunes, Qwen 3 Embedding과 Qwen 3 Reranker 계열이 포함됩니다. 텍스트·vision·tool use뿐 아니라 PDF와 Office 문서 추출, 음성 전사, reranking까지 같은 엔진의 처리 범위에 넣었고 pdfium은 PDF 페이지를 이미지로 렌더링해 vision 모델에 전달하는 데 사용됩니다. siftx는 Rust 기반 metadata·PDF extraction을 in-process로 수행하고, Scriptor와 Lector는 브라우저에서 Word 및 PDF 문서를 다루는 WASM 구성요소로 Studio에 결합됩니다.
yaml
schemaVersion: "2.0"
# prompt-generation seed: 7 plus the rep number, the same on every engine
randomSeed: ${PDK_PROMPT_SEED:7}
benchmark:
  model: ${PDK_MODEL:gemma-4-31B-it-Q8_0}
  endpoint:
    url: ${PDK_URL:http://localhost:11660}
    type: chat
    streaming: true
  timeout: 600.0
  extra:
    ignore_eos: true
    temperature: 0.7
    seed: 7
  tokenizer:
    name: ${PDK_TOKENIZER:google/gemma-4-31B-it}
  dataset:
    type: synthetic
    entries: 256
    prompts:
      isl: {mean: 128, stddev: 0}
      osl: {mean: 128, stddev: 0}
    corpus: coding
  warmup:
    type: concurrency
    requests: 32
  concurrency: 32
  profiling:
    type: concurrency
    requests: 192
  concurrency: 32
artifacts:
  dir: ./artifacts/syn_128x128_c32
summary: [json]
records: [jsonl]

엔진과 모델을 환경 변수로 주입하면서 동일한 프롬프트 길이, 출력 길이, 동시성 조건을 여러 추론 서버에 적용하는 aiperf 벤치마크 설정입니다.

bash
# the server under test
paddock-runner --model .gguf --kernel-pack packs/cuda/build/pd-cuda-sm86.dll \
--port 11660 --max-batch 32 --max-ctx 8192
# the client, once per rep with its own prompt seed.
# The tokenizer must be the
# served model's own; aiperf takes a Hugging Face name or a local directory.
PDK_MODEL= PDK_URL=http://localhost:11660 PDK_TOKENIZER= \
PDK_PROMPT_SEED=8 \
aiperf profile --config syn_128x128_c32.yaml --artifact-dir out/syn_128x128_c32 --ui simple

Paddock runner를 지정한 GGUF 모델과 CUDA 커널 팩으로 실행한 뒤, 동일한 서버에 aiperf 프로파일을 연결해 처리량과 지연을 측정합니다.

05
성능 비교는 RTX PRO 6000과 B200에서 Qwen 3.8 27B, Qwen 3.6 27B, Gemma 4 31B 등을 FP8·Q8_0·Q4_K_XL로 실행했을 때 llama.cpp, vLLM, SGLang보다 앞섰다고 저장소가 기록한 부분입니다. Qwen 3.8 Flash Next는 낮은 동시성에서 유망하지만 높은 동시성 테스트에는 추가 작업이 남았고, 수치는 NVIDIA의 aiperf를 통해 같은 black-box 조건에서 비교하도록 규정합니다. aiperf 결과에서는 output token throughput 평균, time to first token p50, inter-token latency p50을 읽어 반복 측정값의 중앙값을 사용합니다.
06
실행 환경은 CUDA 전용이며 release kernel pack에는 sm_86, sm_89, sm_100, sm_120용 SASS가 들어갑니다. Rust 빌드는 CUDA toolkit이나 GPU 없이 가능하고, CUDA 커널 팩은 안정적인 C ABI를 통해 실행 시 로드되며 커널은 Triton·DSL·Python 없이 손으로 작성한 CUDA 소스입니다. 지원 플랫폼은 Windows와 Linux의 x64이고 macOS, Vulkan, Metal, ROCm backend는 현재 범위에 포함되지 않습니다.
07
프로젝트는 MIT와 Apache License 2.0의 dual license를 선택할 수 있고, 모델은 보이는 경로에 표준 GGUF로 저장하며 로컬 사용에 계정이 필요하지 않다는 원칙을 둡니다. context truncation을 자동 trim하지 않고 오류로 처리하며, GPU에 어떤 모델과 양자화 및 context length가 올라갔는지 확인할 수 있게 하는 방향입니다. 다만 Paddock은 아직 초기 단계의 활발한 개발 프로젝트이고, Ada Lovelace는 검증된 board가 없어 환경 변수 없이는 거부되며 Hopper와 A100은 소스 커널만 있고 release pack에는 포함되지 않습니다.

용어 해설

Paged KV 캐시(Paged KV Cache)
Transformer 추론에서 각 요청의 Key·Value 상태를 고정된 페이지 단위로 나눠 GPU 메모리에 배치하는 방식입니다. 요청별 캐시 공간을 유연하게 재사용해 긴 컨텍스트와 동시 세션 처리에서 메모리 단편화와 낭비를 줄입니다.
연속 배칭(Continuous Batching)
요청이 끝날 때까지 배치를 고정하지 않고 새 요청을 처리 대기열에 계속 합류시키는 추론 방식입니다. 디코딩 중인 요청과 새 프리필 요청을 함께 조정해 GPU 유휴 시간을 줄이고 동시 처리량을 높입니다.
Radix Prefix 캐싱(Radix Prefix Caching)
여러 요청이 공유하는 프롬프트 앞부분을 트리 구조로 저장해 동일한 토큰의 계산 결과를 재사용하는 기법입니다. 긴 시스템 프롬프트나 여러 coding-agent 세션처럼 공통 prefix가 많은 작업에서 프리필 계산을 줄입니다.
Tensor 병렬화(Tensor Parallelism)
하나의 모델 계층을 여러 GPU에 나눠 배치하고 각 GPU가 부분 계산을 수행하도록 하는 분산 추론 방식입니다. Paddock은 현재 단일 GPU에 맞는 모델을 중심으로 하며, GPU 간 계층 분할은 향후 지원 대상으로 남겨두었습니다.
양자화(Quantization)
모델 가중치와 일부 추론 상태를 더 적은 비트 수로 표현해 메모리 사용량과 연산 비용을 낮추는 기법입니다. Paddock은 FP8, NVFP4, MXFP4, Q8_0, Q4_K 계열을 텐서별로 선택해 서로 다른 형식이 섞인 checkpoint도 처리합니다.

기술

  • Rust
  • CUDA
  • GGUF
  • safetensors
  • FP8
  • NVFP4
  • MXFP4
  • Q8_0
  • Q4_K_XL
  • OpenAI API
  • Anthropic API
  • Model Context Protocol
  • pdfium
  • siftx
  • Traverse
  • Scriptor
  • Lector
  • WASM
  • aiperf
  • CUTLASS

활용 사례

  • 단일 NVIDIA GPU에서 오픈 모델을 운영하는 production inference
  • 여러 coding-agent 세션의 장문 컨텍스트 처리
  • 내장 Studio에서 로컬 모델과 cloud model 비교
  • PDF 페이지를 vision 모델에 전달하는 문서 처리
  • Office 문서의 브라우저 기반 이해와 편집
  • 음성 전사와 forced alignment
  • Embedding과 reranking
  • PDF 및 Office 파일의 문서 추출
AI 분석 전체 내용 보기

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

출처 · 인용 안내

원문 발행 2026. 09. 04.수집 2026. 09. 04.출처 타입 RSS

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