---
id: pr-tensorrt-llm-13081
repo: NVIDIA/TensorRT-LLM
pr: 13081
title: '[TRTLLM-11540][feat] Revert revert of EAGLE3 dynamic tree speculative decoding support'
author: sunnyqgg
date: '2026-04-23'
url: https://github.com/NVIDIA/TensorRT-LLM/pull/13081
source_category: upstream-code
architectures:
- sm100
- sm90
tags:
- attention kernel
- blackwell
- fmha
- hopper
- sm100
techniques: []
hardware_features:
- blackwell
- hopper
kernel_types:
- attention
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: 3cc066ba1006515bc5c78511f4fbb5d44b2e2057
inclusion_reason: Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.
changed_paths:
- cpp/tensorrt_llm/kernels/speculativeDecoding/dynamicTreeKernels.cu
- cpp/tensorrt_llm/kernels/speculativeDecoding/dynamicTreeKernels.h
- cpp/tensorrt_llm/kernels/speculativeDecoding/kvCacheUpdateKernels.cu
- cpp/tensorrt_llm/kernels/speculativeDecoding/kvCacheUpdateKernels.h
- cpp/tensorrt_llm/kernels/trtllmGenKernels/fmha/fmhaRunnerParams.h
- cpp/tensorrt_llm/kernels/trtllmGenKernels/fmha/prepareCustomMask.cu
- cpp/tensorrt_llm/kernels/xqaDispatcher.cpp
- cpp/tensorrt_llm/thop/CMakeLists.txt
- cpp/tensorrt_llm/thop/dynamicTreeOp.cpp
- cpp/tensorrt_llm/thop/parallelDecodeKVCacheUpdateOp.cpp
- docs/source/features/feature-combination-matrix.md
- docs/source/features/speculative-decoding.md
- docs/source/models/supported-models.md
- examples/llm-api/quickstart_advanced.py
- tensorrt_llm/_torch/attention_backend/interface.py
- tensorrt_llm/_torch/attention_backend/sparse/dsa.py
- tensorrt_llm/_torch/attention_backend/trtllm.py
- tensorrt_llm/_torch/modules/attention.py
- tensorrt_llm/_torch/pyexecutor/model_engine.py
- tensorrt_llm/_torch/pyexecutor/py_executor.py
- tensorrt_llm/_torch/pyexecutor/py_executor_creator.py
- tensorrt_llm/_torch/pyexecutor/resource_manager.py
- tensorrt_llm/_torch/speculative/drafting_loops.py
- tensorrt_llm/_torch/speculative/dynamic_tree_ops.py
- tensorrt_llm/_torch/speculative/eagle3.py
- tensorrt_llm/_torch/speculative/eagle3_dynamic_tree.py
- tensorrt_llm/_torch/speculative/spec_sampler_base.py
- tensorrt_llm/_torch/speculative/spec_tree_manager.py
- tensorrt_llm/_torch/speculative/utils.py
- tensorrt_llm/llmapi/llm_args.py
- tests/integration/test_lists/waives.txt
- tests/unittest/_torch/modeling/test_modeling_llama.py
- tests/unittest/_torch/speculative/test_draft_token_prepare_for_generation.py
- tests/unittest/_torch/speculative/test_draft_token_tree_sampling.py
- tests/unittest/_torch/speculative/test_eagle3.py
- tests/unittest/_torch/thop/parallel/test_custom_ops.py
- tests/unittest/others/test_kv_cache_update.py
artifact_dir: evidence/pull-bundles/tensorrt-llm/gh-13081
head_ref_oid: 966bdcded29da07ba3c9ad66cc0fb12b169ee21f
---
# [TRTLLM-11540][feat] Revert revert of EAGLE3 dynamic tree speculative decoding support

- Repository: `NVIDIA/TensorRT-LLM`
- PR: [13081](https://github.com/NVIDIA/TensorRT-LLM/pull/13081)
- Decision: `Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.`
- Reason: Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.

## Changed Paths

- `cpp/tensorrt_llm/kernels/speculativeDecoding/dynamicTreeKernels.cu`
- `cpp/tensorrt_llm/kernels/speculativeDecoding/dynamicTreeKernels.h`
- `cpp/tensorrt_llm/kernels/speculativeDecoding/kvCacheUpdateKernels.cu`
- `cpp/tensorrt_llm/kernels/speculativeDecoding/kvCacheUpdateKernels.h`
- `cpp/tensorrt_llm/kernels/trtllmGenKernels/fmha/fmhaRunnerParams.h`
- `cpp/tensorrt_llm/kernels/trtllmGenKernels/fmha/prepareCustomMask.cu`
- `cpp/tensorrt_llm/kernels/xqaDispatcher.cpp`
- `cpp/tensorrt_llm/thop/CMakeLists.txt`
- `cpp/tensorrt_llm/thop/dynamicTreeOp.cpp`
- `cpp/tensorrt_llm/thop/parallelDecodeKVCacheUpdateOp.cpp`
- `docs/source/features/feature-combination-matrix.md`
- `docs/source/features/speculative-decoding.md`
- `docs/source/models/supported-models.md`
- `examples/llm-api/quickstart_advanced.py`
- `tensorrt_llm/_torch/attention_backend/interface.py`
- `tensorrt_llm/_torch/attention_backend/sparse/dsa.py`
- `tensorrt_llm/_torch/attention_backend/trtllm.py`
- `tensorrt_llm/_torch/modules/attention.py`
- `tensorrt_llm/_torch/pyexecutor/model_engine.py`
- `tensorrt_llm/_torch/pyexecutor/py_executor.py`
- `tensorrt_llm/_torch/pyexecutor/py_executor_creator.py`
- `tensorrt_llm/_torch/pyexecutor/resource_manager.py`
- `tensorrt_llm/_torch/speculative/drafting_loops.py`
- `tensorrt_llm/_torch/speculative/dynamic_tree_ops.py`
- `tensorrt_llm/_torch/speculative/eagle3.py`
- `tensorrt_llm/_torch/speculative/eagle3_dynamic_tree.py`
- `tensorrt_llm/_torch/speculative/spec_sampler_base.py`
- `tensorrt_llm/_torch/speculative/spec_tree_manager.py`
- `tensorrt_llm/_torch/speculative/utils.py`
- `tensorrt_llm/llmapi/llm_args.py`
- `tests/integration/test_lists/waives.txt`
- `tests/unittest/_torch/modeling/test_modeling_llama.py`
- `tests/unittest/_torch/speculative/test_draft_token_prepare_for_generation.py`
- `tests/unittest/_torch/speculative/test_draft_token_tree_sampling.py`
- `tests/unittest/_torch/speculative/test_eagle3.py`
- `tests/unittest/_torch/thop/parallel/test_custom_ops.py`
- `tests/unittest/others/test_kv_cache_update.py`

## Evidence Bundle

`evidence/pull-bundles/tensorrt-llm/gh-13081`
