The future ofinference isprogrammable
Pie is a blazingly fast inference engine that empowers your application to achieve more.
Applications
- Coding agent
- Deep research
- Voice assistant
- Batch evals
Inferlets
- Beam searchbeam_search.wasm
- MTP speculative decodingmtp_speculative_decoding.wasm
- Cachebackcacheback.wasm
- DFlashdflash.wasm
- Constrained speculationconstrained_speculation.wasm
- SnapKVsnapkv.wasm
- H2Oh2o.wasm
- TOVAtova.wasm
- Attention sinksattention_sinks.wasm
- Sliding windowsliding_window.wasm
- Prefix-tree KV cacheprefix_tree_kv_cache.wasm
- JSON schemajson_schema.wasm
- Grammar-aligned decodinggrammar_aligned_decoding.wasm
- Contrastive decodingcontrastive_decoding.wasm
- Context-aware decodingcontext_aware_decoding.wasm
- Classifier-free guidanceclassifier_free_guidance.wasm
- Consensus decodingconsensus_decoding.wasm
- Mirostat v2mirostat_v2.wasm
- Locally typicallocally_typical.wasm
- Top-atop_a.wasm
- Tail-freetail_free.wasm
- XTCxtc.wasm
- η/ε samplingeta_epsilon_sampling.wasm
- Entropy-adaptive temperatureentropy_adaptive_temperature.wasm
- DRY penaltydry_penalty.wasm
- SynthID watermarksynthid_watermark.wasm
- Gumbel watermarkgumbel_watermark.wasm
- Greenlist watermarkgreenlist_watermark.wasm
- Token healingtoken_healing.wasm
Control plane
- Earliest deadline firstdeadline.wasm
- Cache-aware routingcache-aware.wasm
- Fair share (VTC)fair.wasm
- Prefill/decode disaggregationdisaggregate.wasm
- Priority schedulingpriority.wasm
- Session affinitysession-affinity.wasm
- Session KV retentionkeep-session.wasm
- Load rebalancingrebalance.wasm
- Prefill offloadoffload.wasm
- Persistent prefix cachepersist-prefix.wasm
- KV replicationreplicate.wasm
- Autoscalingscale-by-prop.wasm
- Drain and migratedrain-migrate.wasm
- Pinned placementpin.wasm
Data plane
- Qwen 3qwen_3.poem
- Qwen 4qwen_4.poem
- Gemma 4gemma_4.poem
- DeepSeek V4deepseek_v4.poem
- GLM 5glm_5.poem
- Kimi K3kimi_k3.poem
- gpt-ossgpt_oss.poem
- MiniMax H3minimax_h3.poem
- Diffusion Gemmagemma_4.poem
- FLUX.2flux_2.poem
- Z-Imagez_image.poem
- HunyuanImage 3hunyuan_image_3.poem
- Wan 2wan_2.poem
- LTX-2ltx_2.poem
Hardware
- NVIDIA GPUs
- AMD GPUs
- Google TPUs
- Apple silicon
- Vulkan
- Android
- Web browsers
High performance
- 5–55% faster than vLLM and SGLang on datacenter GPUs, and ahead of vllm-tpu on Google TPUs.
- 30–200% faster than llama.cpp and MLX on Apple silicon and consumer GPUs.
- No programmability tax: Inferlet's novel programming model hides runtime overhead behind GPU compute, while custom samplers compile to native device kernels.
How much faster Pie is than each engine
- NVIDIA H100
- vLLM1.04×
SGLang1.05×
- Apple M4 Pro
mlx-lm1.49×llama.cpp2.75×- Google TPU v6e
- vllm-tpu1.36×
Each bar is the geometric mean over the models measured on that platform. The bright part of a bar is Pie's lead beyond parity.
Lightweight
- 60 MB single binary—over 153× smaller than a vLLM or SGLang container, with no Python or PyTorch runtime.
- Written from scratch in Rust with zero CUDA container layers or
pipdependency chains to untangle. - Instant cold starts whether deployed on a cluster, run locally on a laptop, or embedded inside an application.
What you download to serve a model, area to scale
Programmable
- You own the loop: every request is an inferlet in Python, JavaScript, or Rust that drives the model one forward pass at a time.
- First-class KV state: fork prefixes across parallel branches, rewind draft tokens, or keep multi-turn sessions resident in memory.
- Batched automatically: custom decoding loops and device epilogues share GPU launches with every other request on the server.
29 inferlets ship in the repository
- Beam search
- MTP speculative decoding
- Cacheback
- DFlash
- Constrained speculation
- SnapKV
- H2O
- TOVA
- Attention sinks
- Sliding window
- Prefix-tree KV cache
- JSON schema
- Grammar-aligned decoding
- Contrastive decoding
- Context-aware decoding
- Classifier-free guidance
- Consensus decoding
- Mirostat v2
- Locally typical
- Top-a
- Tail-free
- XTC
- η/ε sampling
- Entropy-adaptive temperature
- DRY penalty
- SynthID watermark
- Gumbel watermark
- Greenlist watermark
- Token healing
from inferlet.eta import (
softmax, reduce_max, broadcast,
ge, select, gumbel_max,
)
def top_a(logits, vocab, a, rng):
# Keep tokens with p >= a * p_max^2, then sample.
probs = softmax(logits)
p_max = reduce_max(probs)
cut = broadcast(a * p_max * p_max, [vocab])
keep = ge(probs, cut)
floor = broadcast(float("-inf"), [vocab])
return gumbel_max(select(keep, logits, floor), rng)- Paris0.46
- The0.21
- Nestled0.09
- Known0.06
- As0.04
- With0.03
- In0.02
Cross-platform
- One binary across the fleet: native backends for NVIDIA CUDA, AMD ROCm, Google Cloud TPU, Apple Metal, and Vulkan.
- Down to phones and browsers: runs natively on Android and compiles to WebAssembly and WebGPU to run inside a browser tab.
- Write once, run anywhere: the same inferlets and model definitions execute unchanged on every target.
- NVIDIA GPUs
- AMD GPUs
- Google TPUs
- Apple silicon
- Vulkan
- Android
- Web browsers
Extensible
- Models are programs: every architecture is a short file in Poem, Pie’s model language—add or edit a model without rebuilding the engine.
- Every modality in one runtime: serve autoregressive text, diffusion language, vision, audio, image, and video models side by side.
- Customize the forward pass: edit layers, attach per-request LoRA adapters, or expose custom intermediate outputs to your inferlets.
Some model definitions shipped by default.
- Language
- Qwen 3
- Qwen 4
- Gemma 4
- DeepSeek V4
- GLM 5
- Kimi K3
- gpt-oss
- MiniMax H3
- Diffusion language
- Diffusion Gemma
- Multimodal
- Qwen 3
- Gemma 4
- GLM 5
- Image generation
- FLUX.2
- Z-Image
- HunyuanImage 3
- Video generation
- Wan 2
- LTX-2
Build on Pie.Open source under Apache 2.0.
For users
Serve with the clients you already use.
Start pie serve and point your OpenAI, Anthropic, or Gemini SDK at it unchanged. Import models from Hugging Face, quantize weights and KV cache at runtime, and scale across GPUs with cache-aware routing.
For developers
Move your agent loop inside the engine.
When a chat endpoint isn’t enough, write an inferlet in Python, JavaScript, or Rust. Tool calls, structured output, and parallel rollouts run next to the model and fork KV state in place—with no network round trips between turns.
For researchers
Turn a paper into an inferlet in an afternoon.
Every built-in feature in Pie is built from user-space primitives. Ship speculative decoders, KV eviction policies, device-compiled samplers, or new model architectures in Poem without touching engine code.
Stay in sync
New releases, benchmarks, and posts from the Pie team, in your inbox.