Why standard kernels stall
The standard 4-bit kernels are tuned for one request at a time. They keep up as requests are added, then stop: from 8 to 16 concurrent requests, decoding with them rises only from 206 to 234 tokens per second. The fused kernel unpacks the weights and multiplies them in a single pass shaped for a batch, so it keeps scaling: 312 tokens per second at 8 requests, 611 at 16 and 1,677 at 64.
That is what lets decode batching pay off on quantized models: without it, the batch would be held back by the kernels long before the GPU runs out of compute.
Reading the prompt
Prompt reading gains too, most on short prompts. From 2,000 tokens on, the two are within 8%:
| Prompt length | Standard, tok/s | Fused, tok/s | Change |
|---|---|---|---|
| 256 tokens | 2,153 | 3,132 | +45% |
| 1,024 tokens | 3,159 | 3,603 | +14% |
| 2,048 tokens | 3,354 | 3,633 | +8% |
| 8,192 tokens | 3,316 | 3,397 | +2% |
What it costs
- One request at a time runs about as fast as before: 45 tokens per second fused, 47 standard on this model.
- Start-up. The fused kernels tune themselves to the GPU when a server starts. We limit that tuning so that a server still starts in seconds.
- Scope. The fused kernels serve ARK's quantized chat models. Unquantized models, such as Whisper and BGE-M3, are unaffected.
How we measured
- Setup. Qwen3.8-27B quantized to 4 bits, one RTX 5090, the inference engine on its own with ARK's settings: no network, no API, so the kernels are the only difference. Fused kernels switched on and off, 16 October 2026.
- Measured. Decode tokens per second for 1, 8, 16 and 64 concurrent requests, and prompt tokens per second for prompts of 256 to 8,192 tokens. Median of three runs.
- In ARK. ARK switches the fused kernels on whenever a server batches its requests, which is the default.
Engineering notes: Inverted processing loops · Decode batching · Fused kernels · Paged attention · Quantized attention · Prefill batching · Prompt caching