Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
19fb41a
[None][feat] Add Inkling NVFP4 model support
WeiHaocheng Aug 25, 2026
32fb561
[None][fix] Inkling: stage per-layer decode page tables for mixed-sca…
WeiHaocheng Aug 26, 2026
9522be8
[None][test] Apply Inkling chat template in GSM8K/MMLU accuracy test
WeiHaocheng Aug 26, 2026
dde1963
[None][test] Update Inkling page-table guard tests for mixed-scale st…
WeiHaocheng Aug 26, 2026
6c86e05
[None][fix] Inkling: allow CUDA graph with expert parallelism
WeiHaocheng Aug 26, 2026
3995cb4
[None][test] Inkling NVFP4: move accuracy tests to GB300 4-GPU post-m…
WeiHaocheng Aug 27, 2026
f35d6a7
[None][chore] Trim the Inkling KV-cache-feature reject comments
WeiHaocheng Aug 27, 2026
4466216
[None][chore] Inkling: warn+auto-disable block reuse without a snapsh…
WeiHaocheng Aug 27, 2026
a29b269
[None][chore] Tighten Inkling KV-cache reject/warn messages; fix the …
WeiHaocheng Aug 27, 2026
4baafcf
[None][feat] Inkling MTP port P1: draft-chain config + weight-mapper …
WeiHaocheng Aug 27, 2026
1a407cf
[None][feat] Inkling MTP port P2: short-conv verify-capture + rollback
WeiHaocheng Aug 27, 2026
64c60cd
[None][feat] Inkling MTP port P3: speculative verify step + draft-KV …
WeiHaocheng Aug 27, 2026
1ac407a
[None][feat] Inkling MTP port P4: conv-runtime publication + post-ver…
WeiHaocheng Aug 27, 2026
374ea06
[None][feat] Inkling MTP port P5: draft chain, one-engine wiring, end…
WeiHaocheng Aug 27, 2026
faec467
[None][feat] Inkling tool parser + reasoning-parser tool-framing pres…
WeiHaocheng Aug 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/source/models/supported-models.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ The following is a table of supported models for the PyTorch backend:
| `GptOssForCausalLM` | GPT-OSS | `openai/gpt-oss-20b`, `openai/gpt-oss-120b` |
| `HunYuanDenseForCausalLM` [^5] | Hunyuan Dense | `tencent/Hunyuan-7B-Instruct` |
| `HunYuanMoEForCausalLM` [^5] | Hunyuan MoE | `tencent/Hunyuan-A13B-Instruct` |
| `InklingForConditionalGeneration` [^15] | Inkling | `thinkingmachines/Inkling-NVFP4`, `thinkingmachines/Inkling-Small-NVFP4` |
| `InternLM3ForCausalLM` [^5] | InternLM3 | `internlm/internlm3-8b-instruct` |
| `KimiK25ForConditionalGeneration` | Kimi-K2.5 | `moonshotai/Kimi-K2.5` |
| `LagunaForCausalLM` | Laguna-XS | `poolside/laguna-XS.2` |
Expand Down Expand Up @@ -79,6 +80,7 @@ Note: Support for other models may vary. Features marked "N/A" are not applicabl
| `Qwen3_5MoeForCausalLM` | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Untested | Yes | N/A | Untested | Untested |
| `Llama4ForConditionalGeneration` | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Untested | N/A | Yes | Yes |
| `GptOssForCausalLM` | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes | N/A | Yes | Yes |
| `InklingForConditionalGeneration` [^15] | Yes | Yes | Yes | No | Yes | No | No | No | No | Yes | Untested | Yes | Yes | Yes | No |
| `Glm4MoeLiteForCausalLM` [^5] | Yes | Yes | Untested | Untested | Yes | No | No | No | No | Yes | Untested | Untested | N/A | Untested | Untested |
| `NemotronHForCausalLM` | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes | N/A | Untested | Untested |
| `Gemma4ForConditionalGeneration` | Untested | Yes | Untested | No | Yes | Yes | No | No | No | Yes | Untested | No | Yes | Untested | Untested |
Expand All @@ -99,6 +101,7 @@ Note: Support for other models may vary. Features marked "N/A" are not applicabl
[^12]: Supports text, image, and video inputs over the block-sparse attention path. The published MXFP8 checkpoint is dequantized on load so the runtime sees an effectively BF16 model. The text decoder is also usable standalone (text-only) via the `MiniMaxM3SparseForCausalLM` architecture. KV cache reuse and MTP are not supported on the sparse-attention path in this release.
[^13]: The Cosmos 3 family also supports visual generation through the VisualGen API. See [Visual Generation Models](#visual-generation-models).
[^14]: Requires `transformers>=5.7.0`: MiniCPM-V 4.6 was upstreamed into transformers as a native model type (`minicpmv4_6`) and the checkpoint ships no remote code (`auto_map`) to fall back on. The Qwen3.5-hybrid text tower runs in BF16. Image, video, and text inputs are supported in this release (video reuses the same NaViT-packed vision path as image via `MiniCPMV4_6InputProcessor`).
[^15]: NVFP4 checkpoint with a RoPE-free hybrid-attention text decoder and BF16 vision and audio towers; video is handled as multi-frame images. Use `--reasoning_parser inkling` for its typed-content thinking blocks. Enforced at load: `moe_expert_parallel_size` must divide 256, and `attn_backend` must stay in the `TRTLLM` family (the framework default). MTP, LoRA, function calling, constrained/guided decoding, disaggregated serving, and multimodal-hash prefix caching are not supported in this release. KV cache reuse additionally needs `kv_cache_config.mamba_state_config.periodic_snapshot_interval` set to a positive number of tokens, which snapshots the short-conv window a prefix hit has to restore; it applies to text prompts only. CUDA graph is supported, including under expert parallelism.

# Encoder-Decoder Feature Support Matrix (PyTorch Backend)

Expand Down Expand Up @@ -127,6 +130,7 @@ complete encoder input must fit in the iteration token budget.
| `Gemma4ForConditionalGeneration` | Untested | Yes | Yes | Yes | Untested | No | Untested | No | L + I + V + A [^9] |
| `Gemma4UnifiedForConditionalGeneration` | Untested | Untested | Untested | Yes | Untested | No | Untested | No | L + I + A |
| `HCXVisionForCausalLM` | Yes | Yes | No | Yes | Yes | Yes | Yes | No | L + I |
| `InklingForConditionalGeneration` | Yes | Yes | Yes | Yes | Untested | No | Yes | No | L + I + V + A [^15] |
| `LlavaLlamaModel (VILA)` | Yes | Yes | No | Yes | Yes | No | Yes | No | L + I + V |
| `LlavaNextForConditionalGeneration` | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | L + I |
| `Llama4ForConditionalGeneration` | Yes | Yes | No | Yes | Yes | No | Yes | No | L + I |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Inkling attention: Triton kernels, backend, cache manager, conv-state pool.

Inkling's attention is dense (full causal, sliding window on local layers, plus a
learned relative-bias ``score_mod``), not sparse. It lives under ``sparse/``
because that is where every model-specific attention backend already lives, and
selection goes through ``sparse/registry.py`` like its neighbours.

The attention metadata adds one thing to the base: the conv pool's per-step slot
write, which has to run outside the CUDA-graph capture region. Everything else the
decode kernel needs is a view of the base's own buffers (``page_table.py``).
"""

from .backend import InklingTritonAttention
from .cache_manager import InklingHybridCacheManager
from .conv_state import (
CONV_ROLE,
InklingConvRuntime,
InklingConvState,
InklingConvStateCache,
InklingRole,
apply_short_conv,
)
from .kernels import (
build_page_table,
inkling_decode_attention,
inkling_prefill_attention,
write_kv_cache_hnd,
)
from .metadata import InklingAttentionMetadata
from .page_table import gen_page_table, gen_seq_lens, page_div
from .params import (
InklingBackendForwardArgs,
InklingSparseAttentionConfig,
InklingSparseParams,
inkling_forward_args,
)

__all__ = [
"InklingAttentionMetadata",
"InklingBackendForwardArgs",
"InklingSparseAttentionConfig",
"InklingSparseParams",
"InklingConvRuntime",
"InklingConvState",
"InklingConvStateCache",
"InklingRole",
"InklingHybridCacheManager",
"InklingTritonAttention",
"apply_short_conv",
"build_page_table",
"gen_page_table",
"gen_seq_lens",
"inkling_forward_args",
"inkling_decode_attention",
"inkling_prefill_attention",
"page_div",
"write_kv_cache_hnd",
]
Loading
Loading