ds4-winhip / docs /serving-capabilities.md
staccs's picture
ds4-winhip: Windows/HIP 7.2 build tree, launcher, supervisor, bench + notes (part 6)
5396c20 verified
|
Raw History Blame Contribute Delete
7.57 kB
# Serving capabilities
<!-- Generated by crates/ds4-core/examples/serving_docs.rs. Do not edit. -->
This table is generated from `ds4_core::serving_caps` and the resolved
plan's `controls`, which also supply `ds4-perf serving-controls`.
`qualified` describes the recorded artifact and workload scope, not every
quantization, context, concurrency, media input or feature combination.
`unverified` means implemented (`Support::Present`); `none` means unsupported.
Consult the [release ledger](releases/v0.1.3.md) and
[family contracts](ds4-dfm-model-families.md) for evidence and limits.
## Execution
Cells show the available lane or mode and its qualification. An opt-in
capability still requires explicit selection and successful native fitting.
The request's effective and qualified plan remains authoritative.
| Model | Banks | Prefix reuse | Disk KV | Snapshot | MTP kind / lane / support |
|---|---|---|---|---|---|
| DeepSeek V4 Flash | persistent / qualified | exact / qualified | qualified | qualified | DeepSeek / bank / qualified |
| DeepSeek V4 Pro | persistent / qualified | exact / qualified | qualified | qualified | DeepSeek / bank / qualified |
| DeepSeek V4.1 Flash | serial / none | exact / unverified | unverified | none | Embedded / serial / qualified |
| Solar Open2 250B | persistent / qualified | partial / qualified | qualified | qualified | None / none / none |
| Motif-3 | persistent / qualified | partial / qualified | qualified | qualified | None / none / none |
| K-EXAONE 236B A23B | persistent / qualified | partial / unverified | qualified | qualified | None / none / none |
| dots3-note-prev | opt_in / unverified | partial / unverified | unverified | qualified | Embedded / serial / unverified |
| Qwen3.8-Flash-Next | persistent / qualified | partial / qualified | qualified | qualified | Embedded / bank / qualified |
| GLM 5.3 Flash | persistent / unverified | partial / unverified | unverified | unverified | Embedded / serial + bank / unverified |
| K2-Horizon 375B A23B | persistent / qualified | exact / qualified | unverified | unverified | None / none / none |
| Inkling Small | serial / none | exact / qualified | unverified | unverified | Sidecar / serial / qualified |
| Step-3.7-Flash | opt_in / qualified | partial / qualified | qualified | qualified | Sidecar / serial + bank / qualified |
| Ling-3.0-flash-VL | persistent / qualified | partial / qualified | qualified | qualified | None / none / none |
| MiMo-V2.6-Flash-RL | opt_in / unverified | partial / unverified | unverified | unverified | Embedded / serial / qualified |
| Naive-N0.5-Flash | opt_in / qualified | partial / qualified | qualified | qualified | External / serial + bank / unverified |
| IQuest-Q1 | persistent / unverified | partial / unverified | unverified | unverified | Embedded / serial + bank / unverified |
| Ling-3.1-flash-VQ | persistent / unverified | partial / unverified | unverified | unverified | Embedded / serial + bank / unverified |
| Beam-1.0-501B-A23B-VQ | persistent / unverified | partial / unverified | unverified | unverified | Sidecar / serial / unverified |
## Bounds and allocator controls
The runtime context cap is an admission bound, not a qualification claim.
`β€”` means the capability table declares no bound or recorded value; it does
not mean unlimited capacity. Qualified columns retain their workload scope.
| Model | Runtime context cap | Qualified context | Qualified banks | Qualified prompt | Native prefill environment |
|---|---:|---:|---:|---:|---|
| DeepSeek V4 Flash | β€” | β€” | β€” | β€” | `DS4_METAL_PREFILL_CHUNK` |
| DeepSeek V4 Pro | β€” | β€” | β€” | β€” | `DS4_METAL_PREFILL_CHUNK` |
| DeepSeek V4.1 Flash | β€” | β€” | 1 | β€” | β€” |
| Solar Open2 250B | β€” | β€” | β€” | β€” | `DS4_METAL_PREFILL_CHUNK` |
| Motif-3 | 262144 | β€” | β€” | β€” | `DS4_MOTIF3_PREFILL_CHUNK` |
| K-EXAONE 236B A23B | β€” | β€” | β€” | β€” | `DS4_EXAONE_PREFILL_CHUNK` |
| dots3-note-prev | 524288 | β€” | 1 | β€” | `DS4_DOTS3_PREFILL_CHUNK` |
| Qwen3.8-Flash-Next | 1048576 | 262144 | 2 | β€” | `DS4_QWEN_PREFILL_CHUNK` |
| GLM 5.3 Flash | 1048576 | 2048 | 1 | β€” | `DS4_GLM53_PREFILL_ROWS` |
| K2-Horizon 375B A23B | β€” | 32768 | 1 | β€” | `DS4_EXAONE_PREFILL_CHUNK` |
| Inkling Small | 1048576 | 1024 | 1 | β€” | `DS4_INKLING_PREFILL_CHUNK` |
| Step-3.7-Flash | 262144 | 65536 | 2 | 6300 | `DS4_STEP37_PREFILL_CHUNK` |
| Ling-3.0-flash-VL | 262144 | 65536 | 2 | β€” | `DS4_LING3VL_PREFILL_CHUNK` |
| MiMo-V2.6-Flash-RL | 1048576 | 524288 | 1 | β€” | `DS4_MIMO2_PREFILL_CHUNK` |
| Naive-N0.5-Flash | 1048576 | 8192 | 2 | 702 | `DS4_NAIVE_PREFILL_CHUNK` |
| IQuest-Q1 | 524288 | β€” | β€” | β€” | `DS4_IQUEST_PREFILL_CHUNK` |
| Ling-3.1-flash-VQ | 262144 | β€” | β€” | β€” | `DS4_LING31_PREFILL_CHUNK` |
| Beam-1.0-501B-A23B-VQ | 1048576 | β€” | β€” | β€” | `DS4_BEAM_PREFILL_CHUNK` |
Scheduler chunk candidates: 256, 512, 1024, 2048, 4096, 8192. The resolved plan only offers
values at or below its known native capacity. Unknown capacity offers no
candidate. These are scheduler controls, not measurements or speed claims.
## Qualification notes
- **DeepSeek V4.1 Flash:** recorded Spark gates cover greedy single-request embedded speculation with decode graphs (56-token and 1,100-token byte-identical runs and matching engine traces); the sampling profile is not qualified; the artifact fixes the draft block and verification width is scheduled per round (--mtp-draft is unsupported; --dspark-verify pins verification); native prompt-end exact prefix reuse and its KVC disk checkpoint are present, unqualified; --prefix-reuse off|exact|auto controls live and disk reuse (--no-kv-reuse aliases off); partial reuse, banks and session snapshots are unavailable; context comes from model metadata, --ctx is rejected.
- **K-EXAONE 236B A23B:** exact reuse qualified; LLLG partial checkpoints await live qualification.
- **dots3-note-prev:** text banks, local-window partial reuse and serial MTP are present but unqualified.
- **Qwen3.8-Flash-Next:** common UX baseline; configured values and verified combinations differ.
- **GLM 5.3 Flash:** compact banks, partial reuse, snapshots and embedded MTP are present; 1M structural capacity and historical 2K qualification are separate.
- **K2-Horizon 375B A23B:** 32K one-bank serving is qualified; disk KV and external owner import are not.
- **Inkling Small:** serial text snapshots present; media snapshots unsupported.
- **Step-3.7-Flash:** text banks are opt-in; Chat restart hits need history-stable identity; images serial.
- **MiMo-V2.6-Flash-RL:** 512K serial text and 256K serial media/DFlash are prior gates. With MTP off, 256K two-bank text plus serial media passed bounded checks at chunk 2048 with Q8 repack off, including live partial reuse and restart disk continuation. 1M one-bank text passed a bounded 1,040,506-token prompt; two banks did not fit. 512K two-bank media exceeds Spark memory.
- **Naive-N0.5-Flash:** main-only chunk-2048 buffered retrieval and disk continuation: 256K/two banks, 512K/one bank; draft-loaded and other shapes retain the bounded 8K gate; DSpark acceleration unqualified.
- **IQuest-Q1:** 8K/two-bank thinking HTTP passed at chunk 128 with short prompts and MTP off/on (draft 3, margin 0); plan bounds stay unqualified because reasoning and margin are not represented; no-thinking output, other shapes and 512K remain unqualified.
Regenerate without loading a model:
```sh
cargo run -q -p ds4-core --example serving_docs > docs/serving-capabilities.md
cargo test -p ds4-core --test serving_docs
```