RunInfraby RightNow
  • CatalogNew
  • Pricing
  • Research
  • Contact
DashboardSign inGet started
RunInfraby RightNow

© 2026 RunInfra. All rights reserved.

All systems operational
Pipeline BuilderModelsPricingStartupsDocsResearchNewsContact
Backed by
YCombinator
AICPA Type II
SOC 2
NVIDIA Inception ProgramNVIDIA Inception Program
Ask AI about RunInfra
Part of RightNow
SecurityDPAAUPCookiesTermsPrivacy

July 30, 2026/8 min read

Kimi K3 would not run on any released vLLM build. Here is the configuration that serves it.

As of 2026-07-29 no released or nightly vLLM wheel could serve Kimi K3. We found the five walls, resolved them on an 8x B300 node, and published the pinned configuration as a catalog package. What we measured, and what we refused to claim.

RunInfra
Engineering
01Kimi K3
02vLLM
03Mixture of experts
Article map03 signals / 1DAW2DQ

Table of contents

  1. The catalog
  2. Why stock vLLM could not serve it
  3. The hardware floor is real
  4. What we measured, and what we did not
  5. Why a catalog and not just an agent
  6. What a package contains
  7. The enterprise tier
  8. Where this goes
Share:

On 2026-07-29, no released or nightly vLLM wheel could serve Kimi K3. We checked. The same day's nightly, vllm 0.26.0, contains zero Kimi K3 files. Support had merged to vLLM main, but nothing you could install carried it. We spent fifteen debugging cycles finding out why, resolved five separate walls on an 8x B300 node, and published the exact configuration that works.

That configuration is now a catalog package. This post explains what we found, what we measured, what we refused to claim, and why we built a package catalog next to an optimization agent.

The catalog

Every card below reads its numbers from the package definition at build time. If a measurement is retracted or re-run, the card changes with it.

Kimi K3

Price$2,300
GPUB300
EnginevLLM 0.23.1

2.1x faster

AREX-Turbo

Price$15
GPUH100
EnginevLLM 0.25.1

1.2x faster

Qwen3.6 27B

Price$40
GPUH100
EnginevLLM 0.25.1

1.28x faster

Qwythos-9B-Claude-Mythos-5-1M

Price$20
GPUH100
EnginevLLM 0.25.1

1.29x faster

Why stock vLLM could not serve it

Five independent things break before Kimi K3 produces a token. Each one is fixable. Nobody had published the set.

  1. No released vLLM wheel carries K3 support at all.
  2. Public flashinfer wheels lack the SiTU activation type that K3 mixture-of-experts layers require.
  3. FlashKDA prefill depends on a private CUDA extension.
  4. Custom all-reduce fails at the tail of full CUDA graph capture on this node.
  5. FlashInfer MLA imposes a KV block alignment the defaults do not satisfy.

The package resolves all five with a pinned source build and a proven flag set: tensor parallel 8 with expert parallelism, the Marlin MXFP4 mixture-of-experts backend, the Triton KDA prefill backend, NCCL all-reduce in place of the custom kernel that fails at graph capture, 128-token KV blocks for FlashInfer MLA alignment, and the expandable-segments allocator.

The hardware floor is real

Kimi K3 does not fit on an 8x B200 node. We measured that rather than assuming it. At tensor parallel 8 with expert parallelism the weights alone allocate 175.40 GiB per GPU against 175.75 GiB free of 178.35 GiB total. That leaves nothing for KV cache, activations, CUDA graphs, or the vision tower.

Four configurations were attempted and all four failed. One requested 20 GB of CPU offload with 256 GB of host RAM. The offload flag proved silently ineffective on the mixture-of-experts path and the allocation came back byte-identical. Serving this model needs more than 1.5 TB of HBM inside a single NVLink domain.

What we measured, and what we did not

Every published number came from a single 8x B300 NVLink node at the pinned configuration, on repo-scale coding prompts of 33 to 36K tokens as reported by the server, 2048 output tokens per request, 16 measured requests after 1 warmup, seed 20260727, 40960 context.

This package claims no speedup, on purpose

There is no speed multiplier anywhere in it, because no honest one exists. A multiplier needs a baseline, and stock vLLM cannot serve this model at all. The baseline is null and renders as absent rather than as a fabricated number. What we sell here is the serves-at-all axis and the validated configuration, not a ratio.

Accuracy is stated as a construction argument, not a measured evaluation. Version 1 changes no weight byte and applies no runtime modification, so the served model is the pinned upstream build serving the pinned upstream weights. We publish no cross-server accuracy score because the method is unsound here: a control between two identical stock server instances measured 78.12 percent top-1 agreement, so per-instance reduction order dominates the signal. A number that cannot distinguish a server from itself certifies nothing.

  • We did not measure the vision path. K3 ships a MoonViT-V2 tower and its pipeline is image-text-to-text. Every number here is text only.
  • We did not evaluate refusal, toxicity, or jailbreak behaviour. The weights are unmodified, so we do not expect a shift, but we did not check.
  • We did not measure anywhere near the 1 million token context the model supports.
  • The engine wheel these numbers ran on is source-built. The kit ships the pinned build recipe, not the binary.

Why a catalog and not just an agent

Our optimization agent takes your model and your workload and finds a faster way to serve it. That is a process. It runs, it measures, it costs GPU time, and the answer is specific to you.

A catalog package is the opposite shape. The process already ran. What you buy is the finished artifact: the exact serving configuration, the measured proof, and the verifier. No GPU time, no waiting, no agent session. You deploy it on your own hardware and it works, or the receipt says why it should not.

Both exist because they answer different questions. The agent answers what should I do with my model. The catalog answers someone already solved this exact model on this exact hardware, can I have it. For a model like K3, where the hard part was fifteen debugging cycles against five undocumented walls, the second question is worth far more than the first.

What a package contains

  • The pinned engine build and the serve flags, written flag for flag into every deploy file.
  • A benchmark receipt signed with Ed25519, so the numbers you were sold are the numbers in the artifact.
  • A verifier that checks the bytes you downloaded against what we measured.
  • For recipe packages, zero weight bytes. The kit pins an upstream Hugging Face revision and your node pulls from the source. We do not store, mirror, or redistribute weights.

The K3 kit is 2.5 MB. The model behind it is about 1.56 TB across 96 shards, pulled from moonshotai/Kimi-K3 at an immutable commit. That asymmetry is the point. You are buying the engineering, not a copy of someone else's weights.

We also do not quantize this model. The MXFP4 weights are Moonshot's own quantization-aware-training release and they arrive untouched. Claiming we quantized it would be the single most damaging false statement available to this package, so the technique field is empty rather than borrowed.

The enterprise tier

Packages above a price threshold now require a signed licence before purchase. The buyer names the licensed entity, the signer, and their authority to bind it, then signs four separate affirmations covering redistribution, resale, and traceability. The signature is recorded append-only with the exact terms text and its hash, and it is bound to the purchase inside the same database transaction that moves the money. An entitlement cannot exist without a signature.

We are direct about what this does and does not do. A serving recipe is configuration and documentation. There is no technical measure that stops a determined buyer from copying it, and we will not pretend otherwise. What the gate provides is a specific, evidenced agreement rather than an implied one.

Where this goes

Frontier open models are getting larger faster than the tooling around them. K3 is 2.8 trillion parameters total with about 104 billion active per token, across 92 mixture-of-experts layers. Day-zero support in a released inference engine is now the exception, not the rule. The window between a model dropping and anyone being able to serve it in production is where the work lives.

We think that window is a product. Not a consulting engagement, not a hosted endpoint you rent forever, but a verified artifact you own and run on your own hardware. Enterprises that cannot send weights to a third party still need someone to have already fought the five walls.

The version 2 plan for this package is already scoped and public: when vLLM pull request 50000 merges and the FlashKDA path becomes publicly buildable, we re-pin, re-measure the same request grid, and publish the new numbers including the prefill path this version runs without. Buyers of version 1 receive it through the maintenance subscription.

Corrections welcome

If you serve Kimi K3 on a configuration we said was not possible, or you reproduce our grid and get different numbers, tell us and we will publish the correction. Every figure here is tied to a committed result file for exactly that reason.

Written by

Jaber JaberFounder and researcher, RunInfra
<-PreviousvLLM vs SGLang vs TensorRT-LLM: a reproducible benchmark

Latest articles

RunInfra
Engineering
01vLLM
02SGLang
03TensorRT-LLM
Article map03 signals / 03C5AMR
June 20, 2026

vLLM vs SGLang vs TensorRT-LLM: a reproducible benchmark

Deploy your first optimized model, measured before you ship

Describe the goal. RunInfra builds and optimizes the stack.

Start BuildingView Pricing
End-to-end encryption
Isolated GPU infrastructure
Zero data retention
SOC 2 Type II
RunInfraby RightNow

© 2026 RunInfra. All rights reserved.

All systems operational
Pipeline BuilderModelsPricingStartupsDocsResearchNewsContact
Backed by
YCombinator
AICPA Type II
SOC 2
NVIDIA Inception ProgramNVIDIA Inception Program
Ask AI about RunInfra
Part of RightNow
SecurityDPAAUPCookiesTermsPrivacy