Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
61be95e
[None][feat] Add DeepSeek V4.1 support
ziyixiong-nv Sep 30, 2026
53128b8
[None][test] Enable DeepSeek V4.1 L0 coverage on Blackwell
ziyixiong-nv Sep 30, 2026
b61ef7d
[None][fix] Resolve DeepSeek V4.1 integration compatibility
ziyixiong-nv Sep 30, 2026
18c471f
[None][fix] Restore CI compatibility for DeepSeek V4.1 support
ziyixiong-nv Oct 1, 2026
33c0eda
[None][test] Allow the B200 attention suite to complete
ziyixiong-nv Oct 1, 2026
bd45c9e
Disable retries only for remote tail requests
AlessioNetti Oct 1, 2026
559c9f6
Fix chunked prefill when remote-tail replay is enabled
AlessioNetti Oct 1, 2026
3a2a033
Propagate remote tail length properly with generation-first disagg sc…
AlessioNetti Oct 1, 2026
bade9e5
[None][fix] Remove unrelated container overrides from DeepSeek support
ziyixiong-nv Oct 2, 2026
53ace99
[None][fix] Support DeepGEMM builds without std::format
ziyixiong-nv Oct 2, 2026
fec2aa5
[None][test] Align remote-tail deadlock coverage with main
ziyixiong-nv Oct 2, 2026
6de42c7
[None][fix] Preserve DeepSeek request state and bound staging caches
ziyixiong-nv Oct 2, 2026
15ea005
[None][test] Update remote-tail executor statistics fixture
ziyixiong-nv Oct 3, 2026
f0901e4
[None][fix] Reserve CSA2 workspace and unblock remote-tail scheduling
liji-nv Oct 6, 2026
8b046a0
[None][chore] Remove unrelated KV shutdown checks
liji-nv Oct 6, 2026
f80c1ab
[None][refactor] Include compression family in CSA2 cache identities
liji-nv Oct 6, 2026
27f75c6
[None][fix] Validate generation replay mode during P/D handshake
liji-nv Oct 6, 2026
7aed18b
[None][fix] Remove dead first-draft replay gate
ziyixiong-nv Oct 7, 2026
8c0cad6
[None][test] Adapt DeepSeek replay tests to explicit engine inputs
ziyixiong-nv Oct 7, 2026
6801fc7
[None][test] Require Blackwell for native FP8 Engram coverage
ziyixiong-nv Oct 8, 2026
6cf5045
[None][test] Set no-replay default in multimodal scheduler fixture
ziyixiong-nv Oct 8, 2026
5cb5bd0
[None][test] Initialize engines in transfer lifecycle executor fixture
ziyixiong-nv Oct 8, 2026
78e3ad3
[None][test] Align warmup fixtures with decoder runner migration
ziyixiong-nv Oct 8, 2026
9393cf0
[None][test] Fix CED runner fixtures and gate V4.1 GPU tests
ziyixiong-nv Oct 9, 2026
25919a7
[None][test] Set connector capacity mode in sparse metadata fixture
ziyixiong-nv Oct 10, 2026
497e281
[None][test] Adapt ragged sampler fixtures to acceptance RNG slots
ziyixiong-nv Oct 11, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ ad-test-workspace/
*/tllm_debug/**
*.patch
!cpp/tensorrt_llm/deep_ep/*.patch
!3rdparty/patches/*.patch
!3rdparty/vendor_patches/*.patch
examples/disaggregated/slurm/benchmark/logs/
scripts/attribution/data/checksum_to_paths.yml
Expand Down
11 changes: 8 additions & 3 deletions 3rdparty/fetch_content.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,9 @@
{
"name": "deepgemm",
"git_repository": "https://github.com/deepseek-ai/DeepGEMM",
"git_tag": "8b1392b978f5a03c828dd1711090d7fb50958b8a",
"git_tag": "b64107f2b9599ca76445b7f62eedf66bae1d095b",
"git_submodules_recurse": true,
"source_subdir": "dont-add-this-project-with-add-subdirectory",
"patch_file": "patches/deepgemm_configurable_barrier_timeout.patch"
"source_subdir": "dont-add-this-project-with-add-subdirectory"
},
{
"name": "eigen",
Expand All @@ -57,6 +56,12 @@
"git_submodules_recurse": true,
"source_subdir": "dont-add-this-project-with-add-subdirectory"
},
{
"name": "fmt",
"git_repository": "https://github.com/fmtlib/fmt",
"git_tag": "553ec11ec06fbe0beebfbb45f9dc3c9eabd83d28",
"source_subdir": "dont-add-this-project-with-add-subdirectory"
},
{
"name": "googlebenchmark",
"git_repository": "https://github.com/google/benchmark",
Expand Down
82 changes: 0 additions & 82 deletions 3rdparty/patches/deepgemm_configurable_barrier_timeout.patch

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,8 @@ std::vector<SharedPtr<Block>> Block::clearStaleBlocksAfterPageUnlink(

// If this is a full-attention block or a sink block: evict subtree.
// Mirrors Python: pages = remove_subtree(self)
if (alc && (!alc->windowSize.has_value() || block.ordinal() < BlockOrdinal{alc->numSinkBlocks}))
if (alc && alc->requiresPrefixCoverage()
&& (!alc->windowSize.has_value() || block.ordinal() < BlockOrdinal{alc->numSinkBlocks}))
{
pruneStart = block.prev;
detachedBlocks.push_back(removeSubtree(block));
Expand Down Expand Up @@ -887,6 +888,10 @@ std::vector<BlockRadixTree::MatchResult> BlockRadixTree::pruneMatch(
bool shortened = false;
for (auto [lcId, attn] : attnLcs)
{
if (!attn->requiresPrefixCoverage())
{
continue;
}
auto const staleRange = attn->getStaleRange(numTok, mTokensPerBlock);
int const staleBeg = staleRange.beg.value();
int const staleEnd = staleRange.end.value();
Expand Down
16 changes: 16 additions & 0 deletions cpp/tensorrt_llm/batch_manager/kv_cache_manager_v2/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,19 @@ inline void validateNoDuplicateBufferRoles(std::vector<BufferConfig> const& buff

} // namespace detail

//! Controls whether an attention lifecycle participates in prefix matching and page reuse.
enum class AttentionReusePolicy
{
//! Commit reusable pages and require live-window coverage when matching a prefix.
REQUIRED = 0,
//! Keep request-local working pages; never publish or reuse them through the radix tree.
PRIVATE = 1,
//! Commit reusable pages without constraining the REQUIRED prefix match. The caller selects
//! available groups at resume; missing or unselected groups use fresh pages for recomputation.
//! These pages may be evicted independently without removing the REQUIRED prefix.
OPTIONAL = 2,
};

struct AttentionLayerConfig
{
static constexpr LayerType type = LayerType::ATTENTION;
Expand All @@ -150,6 +163,9 @@ struct AttentionLayerConfig
// nullopt or 0 = no sink tokens.
std::optional<int> numSinkTokens;

// Private working pages never constrain prefix matching or enter the tree.
AttentionReusePolicy reusePolicy = AttentionReusePolicy::REQUIRED;

[[nodiscard]] std::optional<int> windowSize() const noexcept
{
return slidingWindowSize;
Expand Down
Loading
Loading