[TRTLLM-14026][feat] BREAKING: Remove C++ modules for legacy TRT backend#16369
Conversation
118b862 to
d48f1b0
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #59181 [ run ] triggered by Bot. Commit: |
|
PR_Github #59181 [ run ] completed with state
|
d48f1b0 to
393086c
Compare
|
PR_Github #60067 [ run ] triggered by Bot. Commit: |
yuanjingx87
left a comment
There was a problem hiding this comment.
Approved on oss compliance behalf
|
PR_Github #60067 [ run ] completed with state
|
9f0a563 to
693ce19
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #60108 [ run ] triggered by Bot. Commit: |
|
PR_Github #60108 [ run ] completed with state
|
Sever the C++ tree's compile- and link-time dependency on TensorRT so the shared core (runtime, batch manager, executor API, KV cache, sampling, kernels, nanobind bridge) builds, links, and runs without the TensorRT library. Follows the Python TensorRT-backend removal (TRTLLM-14022); PyTorch is the sole backend. Internal types (serialization-compatible): - add tensorrt_llm::DataType/Dims (common/tllmDataType.h); DataType enumerator values mirror nvinfer1::DataType for byte-compatible serialization, Dims layout mirrors nvinfer1::Dims - migrate nvinfer1::DataType/Dims -> tensorrt_llm:: across 206 surviving files; replace NvInfer*.h includes with the internal header; drop 12 dead NvInfer includes from files that never referenced nvinfer1 - add tests/unittest/bindings/test_datatype_parity.py guarding the enumerator values (auto-scheduled via the existing unittest/bindings test-db entries) Remove the TensorRT-engine execution path (unused by the PyTorch backend): - plugins/ (nvinfer_plugin_tensorrt_llm), engine runtime wrappers (tllmRuntime, tllmStreamReaders, layerProfiler, rawEngine, tllmLogger), TRT model adapters (trtGptModel*/trtEncoderModel/trtGptModelFactory), executor.cpp/executorImpl, the C++ Executor + TllmRuntime + LogitsPostProcessor nanobind bindings (0 Python users each), executor_worker, disaggServerUtil, engine I/O buffers and engine-only logits/decoder algos, executor/model.h (0 consumers), the ModelSpec test helper + binding (orphaned) - keep the retained KVCacheEvent ctor and executor::version() inline in executor.h (they are trivial; no separate .cpp needed) - decouple shared files (inflightBatchingUtils, medusaBuffers, lookaheadBuffers, dataTransceiver) from the removed engine runtime - remove classes orphaned by the engine-path removal: GuidedDecoder (the PyTorch backend has its own Python guided decoder; xgrammar stays for executor::GuidedDecodingConfig), IntervalSet and DynamicBatchTuner (both only consumed by the removed executorImpl), each with their tests; removing guidedDecoderTest empties cpp/tests/e2e_tests entirely - restore the engine-free half of test_executor_bindings.py (config/ request/result/response/stats construction and pickle tests) since the underlying bindings stay and serve the PyTorch backend; only the trtllm.Executor/engine-fixture tests are dropped; the second, duplicated test_speculative_decoding_config (shadowed, never ran) is renamed to test_decoding_config to match what it tests - delete the engine-driven C++ tests (e2e_tests engine tests, executorTestSmall*, tllmRuntimeTest, encDecBeamSearchTest, tests/utils engine builders), cudaGraphExecutorCacheTest (tests the removed CudaGraphExecutor), unit_tests/utils (tests the deleted tests/utils helpers), tests/unittest/others/test_leak.py (its body calls the removed python graph-building APIs; unscheduled in CI), C++ benchmarks (bertBenchmark, gptManagerBenchmark, disaggServerBenchmark; the prepare_dataset.py tooling used by trtllm-bench stays), examples/cpp executor examples, and the cpp/tests/resources engine-build scripts - fix kept tests: strip vestigial never-consumed TllmLogger members (7 files), repoint ropeTest.cu to kernels/gptKernels.h (+ cudaUtils.h for QuantMode/getSMVersion), inline the engine-free createDecoderBatchInputs helper into gptDecoderBatchedTest, drop the empty tensorrt_llm::runtime forward-declaration block left in batch_manager/utils/debugUtils.h, narrow requestTest's using-namespace-common to a TllmException using-declaration (common now also exports DataType, which made the unqualified executor::DataType references ambiguous) - make dependencies the deleted plugin target satisfied transitively explicit: MPI include dirs for cpp/tests, th_utils -> tensorrt_llm shared-lib link - remove the IS_BUILDING build-time env contract end to end (common/opUtils.h isBuilding + attentionOp gate + _common.py half) - remove the llm_args=None engine path from executor/base_worker.py (tllm.Executor no longer exists); llm_args is now required Build/packaging (no TensorRT): - drop find_package(TensorRT)/TRT_LIB/NvInfer include injection and the plugins/executor_worker/benchmarks subdirs from the cpp CMake; delete FindTensorRT.cmake - build_wheel.py: trt_root optional (default None), drop the tensorrt venv check and the nvinfer_plugin/executorWorker/benchmarks targets - setup.py no longer packages libnvinfer_plugin_tensorrt_llm.so / executorWorker; requirements.txt drops tensorrt - jenkins/Build.groovy: drop --benchmarks, the benchmark/libnvinfer-plugin tarball packaging, and the build_cpp_examples.py step - delist the removed tests from test-db/waives.txt/.test_durations and prune tests/integration/defs/cpp to the shared-core gtest wrappers - CI-run fixes: respell the nvinfer1 usages a post-rebase main commit (NVIDIA#16304) added to kvCacheManagerTest; retire the two CI stages emptied by the delisting (A10-CPP-1, H100_PCIe-CPP-Post-Merge-1) and drop the duplicate tensorrt-chunk scheduling of unittest/disaggregated/test_router.py; make test_to_stage_mapping's CLI check sample only stage-mapped tests - point the remaining benchmarks/cpp references (AutoDeploy bench/dist/ allreduce-strategy tests, llmc standalone packager + its test, trtllm-bench docs) at benchmarks/ and drop the orphaned get_cpp_benchmark() helper - fix the two OSS-mode gtest compile failures unmasked by dropping the nvinfer_plugin link (its PUBLIC USING_OSS_CUTLASS_*_GEMM defines had leaked into every gtest, keeping the internal-only branches dormant): inline the deleted tests/utils GpuTimer into gemmAllReduceTest.cu, and only add the mixtureOfExpertsInternalTest target when INTERNAL_CUTLASS_KERNELS_PATH provides the internal headers it includes Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
693ce19 to
e2e81d0
Compare
|
/bot skip --comment "all pre-merge/post-merge tests were passed in different runs" |
|
PR_Github #60140 [ skip ] triggered by Bot. Commit: |
Test reportPre-merge single SBSA#16369 (comment) (all passed) Pre-merge single x86#16369 (comment) (all passed) Pre-merge multi SBSA#16370 (comment) (all passed) Pre-merge multi x86 (passed with two runs, failed due to different reasons)#16370 (comment) (two reasons)
#16370 (comment) (3 flaky errors, passed at the above tests)
Post-merge single SBSA#16476 (comment) (all passed except GH200 package sanity, infra issue) Post-merge single x86 (two runs with different failures) => regard as pass.#16476 (comment) (2 flaky errors)
#16476 (comment) (6 failed)
Post-merge multi SBSA => Run two times, 5 of sanity perf check failed but accpetable)#16477 (comment) (10 perf sanity errors) Test / GB200-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-6 / test_e2e[disagg_upload-gen_only-gb200_deepseek-v32-fp4_32k4k_con1_ctx1_dep4_gen1_tep8_eplb0_mtp3_ccb-NIXL] – GB200-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-6.perf.test_perf_sanity Test / GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-2 / test_e2e[disagg_upload-e2e-gb300_kimi-k25-thinking-fp4_1k1k_con4096_ctx1_dep4_gen1_dep8_eplb0_mtp0_ccb-NIXL] – GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-2.perf.test_perf_sanity Test / GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-2 / test_e2e[disagg_upload-e2e-gb300_kimi-k25-thinking-fp4_8k1k_con4096_ctx1_dep4_gen1_dep16_eplb0_mtp0_ccb-NIXL] – GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-2.perf.test_perf_sanity Test / GB300-4_GPUs-PyTorch-PerfSanity-Post-Merge-1 / test_e2e[aggr_upload-ctx_only-gb300_deepseek-r1-fp4_128k8k_con256_ctx1_pp4_gen1_dep8_eplb0_mtp1_ccb-NIXL] – GB300-4_GPUs-PyTorch-PerfSanity-Post-Merge-1.perf.test_perf_sanity Test / GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-4 / test_e2e[disagg_upload-gen_only-gb300_kimi-k25-thinking-fp4_8k1k_con4096_ctx1_dep4_gen1_dep16_eplb0_mtp0_ccb-NIXL] – GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-4.perf.test_perf_sanity Test / GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU2-GEN1-NODE2-GPU8-Post-Merge-2 / test_e2e[disagg_upload-e2e-gb300_glm-5-fp4_8k1k_con1024_ctx1_dep2_gen1_dep8_eplb256_mtp1_ccb-NIXL] – GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU2-GEN1-NODE2-GPU8-Post-Merge-2.perf.test_perf_sanity Test / GB300-8_GPUs-2_Nodes-PyTorch-PerfSanity-Node2-GPU8-Post-Merge-2 / test_e2e[aggr_upload-deepseek_r1_fp4_v2_2_nodes_grace_blackwell-r1_fp4_v2_dep8_mtp1_8k1k] – GB300-8_GPUs-2_Nodes-PyTorch-PerfSanity-Node2-GPU8-Post-Merge-2.perf.test_perf_sanity Test / GB300-36_GPUs-9_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2 / test_e2e[disagg_upload-gen_only-gb300_kimi-k25-thinking-fp4_8k1k_con1024_ctx1_dep4_gen1_dep32_eplb416_mtp3_ccb-NIXL] – GB300-36_GPUs-9_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2.perf.test_perf_sanity Test / GB200-8_GPUs-2_Nodes-PyTorch-PerfSanity-Node2-GPU8-Post-Merge-2 / test_e2e[aggr_upload-ctx_only-gb200_deepseek-r1-fp4_128k8k_con1_ctx1_pp8_gen1_tep8_eplb0_mtp3_ccb-NIXL] – GB200-8_GPUs-2_Nodes-PyTorch-PerfSanity-Node2-GPU8-Post-Merge-2.perf.test_perf_sanity Test / GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1 / test_e2e[disagg_upload-e2e-gb300_deepseek-r1-fp4_128k8k_con256_ctx1_pp4_gen1_dep8_eplb0_mtp1_ccb-NIXL] – GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1.perf.test_perf_sanity #16477 (comment) (5 perf sanity errors) Test / GB200-8_GPUs-2_Nodes-PyTorch-PerfSanity-Node2-GPU8-Post-Merge-2 / test_e2e[aggr_upload-ctx_only-gb200_deepseek-r1-fp4_128k8k_con1_ctx1_pp8_gen1_tep8_eplb0_mtp3_ccb-NIXL] – GB200-8_GPUs-2_Nodes-PyTorch-PerfSanity-Node2-GPU8-Post-Merge-2.perf.test_perf_sanity Test / GB300-36_GPUs-9_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-1 / test_e2e[disagg_upload-gen_only-gb300_kimi-k25-thinking-fp4_8k1k_con1024_ctx1_dep4_gen1_dep32_eplb416_mtp3_ccb-NIXL] – GB300-36_GPUs-9_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-1.perf.test_perf_sanity Test / GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1 / test_e2e[disagg_upload-e2e-gb300_deepseek-r1-fp4_128k8k_con256_ctx1_pp4_gen1_dep8_eplb0_mtp1_ccb-NIXL] – GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1.perf.test_perf_sanity Test / GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-2 / test_e2e[disagg_upload-e2e-gb300_kimi-k25-thinking-fp4_8k1k_con4096_ctx1_dep4_gen1_dep16_eplb0_mtp0_ccb-NIXL] – GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-2.perf.test_perf_sanity Test / GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-4 / test_e2e[disagg_upload-gen_only-gb300_kimi-k25-thinking-fp4_8k1k_con4096_ctx1_dep4_gen1_dep16_eplb0_mtp0_ccb-NIXL] – GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-4.perf.test_perf_sanity Post-merge multi x86 => can regarded as pass with two runs#16477 (comment) (2 perf sanity errors, 1 flaky error) accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_nvfp4_4gpus[moe_backend=TRTLLM-mtp_nextn=0-tp4-fp8kv=False-attention_dp=False-cuda_graph=False-overlap_scheduler=False-low_precision_combine=False-torch_compile=True] perf/test_perf_sanity.py::test_e2e[aggr_upload-llama_v3_3_70b_instruct_fp4_blackwell-llama70b_fp4_tp4_512_32] perf/test_perf_sanity.py::test_e2e[aggr_upload-dynamo_qwen3_32b_fp8_hopper-qwen3_32b_fp8_tp2_6k1k] #16477 (comment) (2 perf sanity errors, 3 flaky errors) Test / DGX_B200-8_GPUs-PyTorch-PerfSanity-Post-Merge-3 / test_e2e[aggr_upload-qwen3_5_397b_fp4_blackwell-qwen3_5_397b_fp4_tep4_mtp3_8k1k] – DGX_B200-8_GPUs-PyTorch-PerfSanity-Post-Merge-3.perf.test_perf_sanity Test / DGX_H200-4_GPUs-PyTorch-Post-Merge-1 / test_skip_softmax_attention_4gpus[target_sparsity_0.5-fp8kv=False] – DGX_H200-4_GPUs-PyTorch-Post-Merge-1.accuracy.test_llm_api_pytorch.TestQwen3_30B_A3B_Instruct_2507 Test / DGX_B300-4_GPUs-PyTorch-Post-Merge-1 / test_nvfp4_4gpus[moe_backend=CUTLASS-mtp_nextn=0-tp4-fp8kv=True-attention_dp=True-cuda_graph=True-overlap_scheduler=True-low_precision_combine=False-torch_compile=True] – DGX_B300-4_GPUs-PyTorch-Post-Merge-1.accuracy.test_llm_api_pytorch.TestDeepSeekV3Lite Test / DGX_B200-4_GPUs-PyTorch-Post-Merge-2 / test_nvfp4_4gpus[moe_backend=TRTLLM-mtp_nextn=0-tp4-fp8kv=False-attention_dp=False-cuda_graph=False-overlap_scheduler=False-low_precision_combine=False-torch_compile=True] – DGX_B200-4_GPUs-PyTorch-Post-Merge-2.accuracy.test_llm_api_pytorch.TestDeepSeekV3Lite |
|
PR_Github #60140 [ skip ] completed with state |
|
/bot skip --comment "all pre-merge/post-merge tests were passed in different runs" |
|
PR_Github #60153 [ skip ] triggered by Bot. Commit: |
|
PR_Github #60153 [ skip ] completed with state |
TensorRT is no longer required to build TensorRT-LLM (the legacy TensorRT backend was fully removed; FindTensorRT.cmake and all nvinfer dependencies are gone, and CMake no longer consumes TensorRT_ROOT). The --trt_root flag was kept for one cycle as a documented no-op; remove it now as promised in the PR NVIDIA#16369 review: - scripts/build_wheel.py: drop the argparse flag, the trt_root parameter, and the dead -DTensorRT_ROOT forwarding (previously appended on every build since the default was never None). - tests/integration/defs/cpp/conftest.py: drop the trt_root kwarg from the build_trt_llm() call. - .claude/skills/exec-local-compile, exec-slurm-compile: remove the flag from documented build commands, flag tables, and compile.sh defaults. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
TensorRT is no longer required to build TensorRT-LLM (the legacy TensorRT backend was fully removed; FindTensorRT.cmake and all nvinfer dependencies are gone, and CMake no longer consumes TensorRT_ROOT). The --trt_root flag was kept for one cycle as a documented no-op; remove it now as promised in the PR NVIDIA#16369 review: - scripts/build_wheel.py: drop the argparse flag, the trt_root parameter, and the dead -DTensorRT_ROOT forwarding (previously appended on every build since the default was never None). - tests/integration/defs/cpp/conftest.py: drop the trt_root kwarg from the build_trt_llm() call. - .claude/skills/exec-local-compile, exec-slurm-compile: remove the flag from documented build commands, flag tables, and compile.sh defaults. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
… and CI plumbing Trailing test/example/CI cleanup after the legacy TensorRT backend removal (TRTLLM-14026, PR NVIDIA#16369). CI schedules / jenkins: - Move backend-neutral tests off the retired -TensorRT- stages and delete all dead backend=tensorrt test-db buckets; flip remaining neutral buckets to pytorch so parked coverage runs again. - NEW stages A100X-PyTorch-Post-Merge-1 and L40S-PyTorch-Post-Merge-1 schedule the restored a100/l40s post-merge coverage (CI-owner review). - Retire the -TensorRT- plumbing in L0_Test.groovy (commented stage rows, backend=tensorrt mako branch, TEST_BACKEND changeMap entry, excludedBackends) and the -TensorRT- pattern in jenkins/scripts/cbts/blocks.py. - waives.txt: drop 42 waives for deleted/unscheduled tests (the validator requires waived tests to be in an active list). Legacy engine-flow example tests: - Delete the defs/examples wrappers whose every test drove the removed convert->trtllm-build->run flow: test_{bert,chatglm,commandr, draft_target_model,eagle,enc_dec,gptj,granite,internlm,llama,mamba, medusa,mistral,mixtral,multimodal,nemotron,nemotron_nas,ngram, openai,qwen,qwen2audio,qwenvl,redrafter,whisper,bindings,flux}.py, the whisper validators, and run_llm_fp8_quant_llama_70b.py. - test_gpt.py rewritten keeping only the live test_gpt_oss_20b_lora_torch; test_phi.py drops its quantization engine test; test_e2e.py drops test_gpt3_175b_1layers_build_only. - Remove the dead helper cascade in defs/common.py (convert_weights, quantize_data, prune_checkpoint, refit_model, find_tensorrt), defs/perf/build.py and test_perf.py's trtllm-build branches, and 19 orphaned example_root fixtures across defs/conftest.py and triton_server/conftest.py (verified: no dynamic getfixturevalue resolution exists for any of them). Dormant example scripts (imported deleted ModelRunner*/builder surfaces or drove engine flows; unreachable from CI): - examples/{run,summarize,utils,mmlu,eval_long_context}.py, examples/openai_triton/**, examples/python_plugin/**, examples/models/contrib/sdxl/**, examples/llm-eval/lm-eval-harness, the engine-flow multimodal/qwenvl/qwen2audio scripts, and examples/ngram/run_dtm_ngram.py (READMEs rewritten for the PyTorch flow where a live section remains). examples/ reference sweep (checked against tests, published docs, jenkins, and code): - contrib: delete arctic, blip2, chatglm-6b/2-6b/3-6b-32k, internlm, jais, skywork, smaug (README/requirements-only legacy-flow dirs; hyperclovax stays - live PyTorch README linked from release notes). - core: delete granite and mixtral; multimodal keeps the live Qwen-Image-Bench stub + eval script but drops utils.py, __init__.py and the per-model requirements-*.txt; nemotron drops the Nemo-flow README_nemotron-3.md + requirements.txt (PyTorch READMEs stay). - top level: delete generate_checkpoint_config.py, generate_xgrammar_tokenizer_info.py, hf_lora_convert.py, sample_weight_stripping/, cpp_library/, dora/, language_adapter/. - Kept deliberately: infinitebench (dependency of the retained CLI-flow suite) and longbench/opentelemetry/sparse_attention (unreferenced but document current features). Accuracy suite: - accuracy/test_cli_flow.py and CliFlowAccuracyTestHarness are KEPT (currently unscheduled; retained for possible future reuse). - Port TestQwen2_7BInstruct::test_tp2 to the PyTorch accuracy suite (skipped: TP2 hangs in the AUTO custom allreduce on PCIe-only nodes; the LMHead AllReduce ignores allreduce_strategy, so the strategy knob cannot work around it). Misc: - automodel.py isMedusa/isEagle branch and _utils.py::supports_inflight_batching (mapped to deleted TRT model classes); test-db README example refreshed to a real test id; docs fixes in ci-overview.md and the AutoDeploy testing strategy. legacy-files.txt/ruff baseline entries for the deleted files are left to a mechanical 'legacy_utils.py prune-files' pass after this and the python-cleanup PR merge, to avoid cross-PR conflicts. Verified: defs collection passes (4206 tests), pre-commit hooks incl. the test-list AST validator pass, no broken example links. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
… and CI plumbing Trailing test/example/CI cleanup after the legacy TensorRT backend removal (TRTLLM-14026, PR NVIDIA#16369). CI schedules / jenkins: - Move backend-neutral tests off the retired -TensorRT- stages and delete all dead backend=tensorrt test-db buckets; flip remaining neutral buckets to pytorch so parked coverage runs again. - NEW stages A100X-PyTorch-Post-Merge-1 and L40S-PyTorch-Post-Merge-1 schedule the restored a100/l40s post-merge coverage (CI-owner review). - Retire the -TensorRT- plumbing in L0_Test.groovy (commented stage rows, backend=tensorrt mako branch, TEST_BACKEND changeMap entry, excludedBackends) and the -TensorRT- pattern in jenkins/scripts/cbts/blocks.py. - waives.txt: drop 42 waives for deleted/unscheduled tests (the validator requires waived tests to be in an active list). Legacy engine-flow example tests: - Delete the defs/examples wrappers whose every test drove the removed convert->trtllm-build->run flow: test_{bert,chatglm,commandr, draft_target_model,eagle,enc_dec,gptj,granite,internlm,llama,mamba, medusa,mistral,mixtral,multimodal,nemotron,nemotron_nas,ngram, openai,qwen,qwen2audio,qwenvl,redrafter,whisper,bindings,flux}.py, the whisper validators, and run_llm_fp8_quant_llama_70b.py. - test_gpt.py rewritten keeping only the live test_gpt_oss_20b_lora_torch; test_phi.py drops its quantization engine test; test_e2e.py drops test_gpt3_175b_1layers_build_only. - Remove the dead helper cascade in defs/common.py (convert_weights, quantize_data, prune_checkpoint, refit_model, find_tensorrt), defs/perf/build.py and test_perf.py's trtllm-build branches, and 19 orphaned example_root fixtures across defs/conftest.py and triton_server/conftest.py (verified: no dynamic getfixturevalue resolution exists for any of them). Dormant example scripts (imported deleted ModelRunner*/builder surfaces or drove engine flows; unreachable from CI): - examples/{run,summarize,utils,mmlu,eval_long_context}.py, examples/openai_triton/**, examples/python_plugin/**, examples/models/contrib/sdxl/**, examples/llm-eval/lm-eval-harness, the engine-flow multimodal/qwenvl/qwen2audio scripts, and examples/ngram/run_dtm_ngram.py (READMEs rewritten for the PyTorch flow where a live section remains). examples/ reference sweep (checked against tests, published docs, jenkins, and code): - contrib: delete arctic, blip2, chatglm-6b/2-6b/3-6b-32k, internlm, jais, skywork, smaug (README/requirements-only legacy-flow dirs; hyperclovax stays - live PyTorch README linked from release notes). - core: delete granite and mixtral; multimodal keeps the live Qwen-Image-Bench stub + eval script but drops utils.py, __init__.py and the per-model requirements-*.txt; nemotron drops the Nemo-flow README_nemotron-3.md + requirements.txt (PyTorch READMEs stay). - top level: delete generate_checkpoint_config.py, generate_xgrammar_tokenizer_info.py, hf_lora_convert.py, sample_weight_stripping/, cpp_library/, dora/, language_adapter/. - Kept deliberately: infinitebench (dependency of the retained CLI-flow suite) and longbench/opentelemetry/sparse_attention (unreferenced but document current features). Accuracy suite: - accuracy/test_cli_flow.py and CliFlowAccuracyTestHarness are KEPT (currently unscheduled; retained for possible future reuse). - Port TestQwen2_7BInstruct::test_tp2 to the PyTorch accuracy suite (skipped: TP2 hangs in the AUTO custom allreduce on PCIe-only nodes; the LMHead AllReduce ignores allreduce_strategy, so the strategy knob cannot work around it). Misc: - automodel.py isMedusa/isEagle branch and _utils.py::supports_inflight_batching (mapped to deleted TRT model classes); test-db README example refreshed to a real test id; docs fixes in ci-overview.md and the AutoDeploy testing strategy. legacy-files.txt/ruff baseline entries for the deleted files are left to a mechanical 'legacy_utils.py prune-files' pass after this and the python-cleanup PR merge, to avoid cross-PR conflicts. Verified: defs collection passes (4206 tests), pre-commit hooks incl. the test-list AST validator pass, no broken example links. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
… and CI plumbing Trailing test/example/CI cleanup after the legacy TensorRT backend removal (TRTLLM-14026, PR NVIDIA#16369). CI schedules / jenkins: - Move backend-neutral tests off the retired -TensorRT- stages and delete all dead backend=tensorrt test-db buckets; flip remaining neutral buckets to pytorch so parked coverage runs again. - NEW stages A100X-PyTorch-Post-Merge-1 and L40S-PyTorch-Post-Merge-1 schedule the restored a100/l40s post-merge coverage (CI-owner review). - Retire the -TensorRT- plumbing in L0_Test.groovy (commented stage rows, backend=tensorrt mako branch, TEST_BACKEND changeMap entry, excludedBackends) and the -TensorRT- pattern in jenkins/scripts/cbts/blocks.py. - waives.txt: drop 42 waives for deleted/unscheduled tests (the validator requires waived tests to be in an active list). Legacy engine-flow example tests: - Delete the defs/examples wrappers whose every test drove the removed convert->trtllm-build->run flow: test_{bert,chatglm,commandr, draft_target_model,eagle,enc_dec,gptj,granite,internlm,llama,mamba, medusa,mistral,mixtral,multimodal,nemotron,nemotron_nas,ngram, openai,qwen,qwen2audio,qwenvl,redrafter,whisper,bindings,flux}.py, the whisper validators, and run_llm_fp8_quant_llama_70b.py. - test_gpt.py rewritten keeping only the live test_gpt_oss_20b_lora_torch; test_phi.py drops its quantization engine test; test_e2e.py drops test_gpt3_175b_1layers_build_only. - Remove the dead helper cascade in defs/common.py (convert_weights, quantize_data, prune_checkpoint, refit_model, find_tensorrt), defs/perf/build.py and test_perf.py's trtllm-build branches, and 19 orphaned example_root fixtures across defs/conftest.py and triton_server/conftest.py (verified: no dynamic getfixturevalue resolution exists for any of them). Dormant example scripts (imported deleted ModelRunner*/builder surfaces or drove engine flows; unreachable from CI): - examples/{run,summarize,utils,mmlu,eval_long_context}.py, examples/openai_triton/**, examples/python_plugin/**, examples/models/contrib/sdxl/**, examples/llm-eval/lm-eval-harness, the engine-flow multimodal/qwenvl/qwen2audio scripts, and examples/ngram/run_dtm_ngram.py (READMEs rewritten for the PyTorch flow where a live section remains). examples/ reference sweep (checked against tests, published docs, jenkins, and code): - contrib: delete arctic, blip2, chatglm-6b/2-6b/3-6b-32k, internlm, jais, skywork, smaug (README/requirements-only legacy-flow dirs; hyperclovax stays - live PyTorch README linked from release notes). - core: delete granite and mixtral; multimodal keeps the live Qwen-Image-Bench stub + eval script but drops utils.py, __init__.py and the per-model requirements-*.txt; nemotron drops the Nemo-flow README_nemotron-3.md + requirements.txt (PyTorch READMEs stay). - top level: delete generate_checkpoint_config.py, generate_xgrammar_tokenizer_info.py, hf_lora_convert.py, sample_weight_stripping/, cpp_library/, dora/, language_adapter/. - Kept deliberately: infinitebench (dependency of the retained CLI-flow suite) and longbench/opentelemetry/sparse_attention (unreferenced but document current features). Accuracy suite: - accuracy/test_cli_flow.py and CliFlowAccuracyTestHarness are KEPT (currently unscheduled; retained for possible future reuse). - Port TestQwen2_7BInstruct::test_tp2 to the PyTorch accuracy suite (skipped: TP2 hangs in the AUTO custom allreduce on PCIe-only nodes; the LMHead AllReduce ignores allreduce_strategy, so the strategy knob cannot work around it). Misc: - automodel.py isMedusa/isEagle branch and _utils.py::supports_inflight_batching (mapped to deleted TRT model classes); test-db README example refreshed to a real test id; docs fixes in ci-overview.md and the AutoDeploy testing strategy. legacy-files.txt/ruff baseline entries for the deleted files are left to a mechanical 'legacy_utils.py prune-files' pass after this and the python-cleanup PR merge, to avoid cross-PR conflicts. Verified: defs collection passes (4206 tests), pre-commit hooks incl. the test-list AST validator pass, no broken example links. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
TensorRT is no longer required to build TensorRT-LLM (the legacy TensorRT backend was fully removed; FindTensorRT.cmake and all nvinfer dependencies are gone, and CMake no longer consumes TensorRT_ROOT). The --trt_root flag was kept for one cycle as a documented no-op; remove it now as promised in the PR NVIDIA#16369 review: - scripts/build_wheel.py: drop the argparse flag, the trt_root parameter, and the dead -DTensorRT_ROOT forwarding (previously appended on every build since the default was never None). - tests/integration/defs/cpp/conftest.py: drop the trt_root kwarg from the build_trt_llm() call. - .claude/skills/exec-local-compile, exec-slurm-compile: remove the flag from documented build commands, flag tables, and compile.sh defaults. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
TensorRT is no longer required to build TensorRT-LLM (the legacy TensorRT backend was fully removed; FindTensorRT.cmake and all nvinfer dependencies are gone, and CMake no longer consumes TensorRT_ROOT). The --trt_root flag was kept for one cycle as a documented no-op; remove it now as promised in the PR NVIDIA#16369 review: - scripts/build_wheel.py: drop the argparse flag, the trt_root parameter, and the dead -DTensorRT_ROOT forwarding (previously appended on every build since the default was never None). - tests/integration/defs/cpp/conftest.py: drop the trt_root kwarg from the build_trt_llm() call. - .claude/skills/exec-local-compile, exec-slurm-compile: remove the flag from documented build commands, flag tables, and compile.sh defaults. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
… and CI plumbing Trailing test/example/CI cleanup after the legacy TensorRT backend removal (TRTLLM-14026, PR NVIDIA#16369). CI schedules / jenkins: - Move backend-neutral tests off the retired -TensorRT- stages and delete all dead backend=tensorrt test-db buckets; flip remaining neutral buckets to pytorch so parked coverage runs again. - NEW stages A100X-PyTorch-Post-Merge-1 and L40S-PyTorch-Post-Merge-1 schedule the restored a100/l40s post-merge coverage (CI-owner review). - Retire the -TensorRT- plumbing in L0_Test.groovy (commented stage rows, backend=tensorrt mako branch, TEST_BACKEND changeMap entry, excludedBackends) and the -TensorRT- pattern in jenkins/scripts/cbts/blocks.py. - waives.txt: drop 42 waives for deleted/unscheduled tests (the validator requires waived tests to be in an active list). Legacy engine-flow example tests: - Delete the defs/examples wrappers whose every test drove the removed convert->trtllm-build->run flow: test_{bert,chatglm,commandr, draft_target_model,eagle,enc_dec,gptj,granite,internlm,llama,mamba, medusa,mistral,mixtral,multimodal,nemotron,nemotron_nas,ngram, openai,qwen,qwen2audio,qwenvl,redrafter,whisper,bindings,flux}.py, the whisper validators, and run_llm_fp8_quant_llama_70b.py. - test_gpt.py rewritten keeping only the live test_gpt_oss_20b_lora_torch; test_phi.py drops its quantization engine test; test_e2e.py drops test_gpt3_175b_1layers_build_only. - Remove the dead helper cascade in defs/common.py (convert_weights, quantize_data, prune_checkpoint, refit_model, find_tensorrt), defs/perf/build.py and test_perf.py's trtllm-build branches, and 19 orphaned example_root fixtures across defs/conftest.py and triton_server/conftest.py (verified: no dynamic getfixturevalue resolution exists for any of them). Dormant example scripts (imported deleted ModelRunner*/builder surfaces or drove engine flows; unreachable from CI): - examples/{run,summarize,utils,mmlu,eval_long_context}.py, examples/openai_triton/**, examples/python_plugin/**, examples/models/contrib/sdxl/**, examples/llm-eval/lm-eval-harness, the engine-flow multimodal/qwenvl/qwen2audio scripts, and examples/ngram/run_dtm_ngram.py (READMEs rewritten for the PyTorch flow where a live section remains). examples/ reference sweep (checked against tests, published docs, jenkins, and code): - contrib: delete arctic, blip2, chatglm-6b/2-6b/3-6b-32k, internlm, jais, skywork, smaug (README/requirements-only legacy-flow dirs; hyperclovax stays - live PyTorch README linked from release notes). - core: delete granite and mixtral; multimodal keeps the live Qwen-Image-Bench stub + eval script but drops utils.py, __init__.py and the per-model requirements-*.txt; nemotron drops the Nemo-flow README_nemotron-3.md + requirements.txt (PyTorch READMEs stay). - top level: delete generate_checkpoint_config.py, generate_xgrammar_tokenizer_info.py, hf_lora_convert.py, sample_weight_stripping/, cpp_library/, dora/, language_adapter/. - Kept deliberately: infinitebench (dependency of the retained CLI-flow suite) and longbench/opentelemetry/sparse_attention (unreferenced but document current features). Accuracy suite: - accuracy/test_cli_flow.py and CliFlowAccuracyTestHarness are KEPT (currently unscheduled; retained for possible future reuse). - Port TestQwen2_7BInstruct::test_tp2 to the PyTorch accuracy suite (skipped: TP2 hangs in the AUTO custom allreduce on PCIe-only nodes; the LMHead AllReduce ignores allreduce_strategy, so the strategy knob cannot work around it). Misc: - automodel.py isMedusa/isEagle branch and _utils.py::supports_inflight_batching (mapped to deleted TRT model classes); test-db README example refreshed to a real test id; docs fixes in ci-overview.md and the AutoDeploy testing strategy. Rider (squashed in): [https://nvbugs/6482297][fix] Parse boolean stage-config fields in test_to_stage_mapping (from PR NVIDIA#16671, same author). The stage regex only accepted numeric trailing fields, so the 47 runWithSbatch stage entries (all DGX_B200-PyTorch-*) were silently dropped and commented-out stage rows were matched; test_backend_filtering_consistency now tolerates tests legitimately listed under multiple backends. Carried here because this PR retires stages and reshuffles test-db buckets - the exact surface those consistency tests validate. legacy-files.txt/ruff baseline entries for the deleted files are left to a mechanical 'legacy_utils.py prune-files' pass after this and the python-cleanup PR merge, to avoid cross-PR conflicts. Verified: defs collection passes (4206 tests), pre-commit hooks incl. the test-list AST validator pass, no broken example links. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
… and CI plumbing Trailing test/example/CI cleanup after the legacy TensorRT backend removal (TRTLLM-14026, PR NVIDIA#16369). CI schedules / jenkins: - Move backend-neutral tests off the retired -TensorRT- stages and delete all dead backend=tensorrt test-db buckets; flip remaining neutral buckets to pytorch so parked coverage runs again. - NEW stages A100X-PyTorch-Post-Merge-1 and L40S-PyTorch-Post-Merge-1 schedule the restored a100/l40s post-merge coverage (CI-owner review). - Retire the -TensorRT- plumbing in L0_Test.groovy (commented stage rows, backend=tensorrt mako branch, TEST_BACKEND changeMap entry, excludedBackends) and the -TensorRT- pattern in jenkins/scripts/cbts/blocks.py. - waives.txt: drop 42 waives for deleted/unscheduled tests (the validator requires waived tests to be in an active list). Legacy engine-flow example tests: - Delete the defs/examples wrappers whose every test drove the removed convert->trtllm-build->run flow: test_{bert,chatglm,commandr, draft_target_model,eagle,enc_dec,gptj,granite,internlm,llama,mamba, medusa,mistral,mixtral,multimodal,nemotron,nemotron_nas,ngram, openai,qwen,qwen2audio,qwenvl,redrafter,whisper,bindings,flux}.py, the whisper validators, and run_llm_fp8_quant_llama_70b.py. - test_gpt.py rewritten keeping only the live test_gpt_oss_20b_lora_torch; test_phi.py drops its quantization engine test; test_e2e.py drops test_gpt3_175b_1layers_build_only. - Remove the dead helper cascade in defs/common.py (convert_weights, quantize_data, prune_checkpoint, refit_model, find_tensorrt), defs/perf/build.py and test_perf.py's trtllm-build branches, and 19 orphaned example_root fixtures across defs/conftest.py and triton_server/conftest.py (verified: no dynamic getfixturevalue resolution exists for any of them). Dormant example scripts (imported deleted ModelRunner*/builder surfaces or drove engine flows; unreachable from CI): - examples/{run,summarize,utils,mmlu,eval_long_context}.py, examples/openai_triton/**, examples/python_plugin/**, examples/models/contrib/sdxl/**, examples/llm-eval/lm-eval-harness, the engine-flow multimodal/qwenvl/qwen2audio scripts, and examples/ngram/run_dtm_ngram.py (READMEs rewritten for the PyTorch flow where a live section remains). examples/ reference sweep (checked against tests, published docs, jenkins, and code): - contrib: delete arctic, blip2, chatglm-6b/2-6b/3-6b-32k, internlm, jais, skywork, smaug (README/requirements-only legacy-flow dirs; hyperclovax stays - live PyTorch README linked from release notes). - core: delete granite and mixtral; multimodal keeps the live Qwen-Image-Bench stub + eval script but drops utils.py, __init__.py and the per-model requirements-*.txt; nemotron drops the Nemo-flow README_nemotron-3.md + requirements.txt (PyTorch READMEs stay). - top level: delete generate_checkpoint_config.py, generate_xgrammar_tokenizer_info.py, hf_lora_convert.py, sample_weight_stripping/, cpp_library/, dora/, language_adapter/. - Kept deliberately: infinitebench (dependency of the retained CLI-flow suite) and longbench/opentelemetry/sparse_attention (unreferenced but document current features). Accuracy suite: - accuracy/test_cli_flow.py and CliFlowAccuracyTestHarness are KEPT (currently unscheduled; retained for possible future reuse). - Port TestQwen2_7BInstruct::test_tp2 to the PyTorch accuracy suite (skipped: TP2 hangs in the AUTO custom allreduce on PCIe-only nodes; the LMHead AllReduce ignores allreduce_strategy, so the strategy knob cannot work around it). Misc: - automodel.py isMedusa/isEagle branch and _utils.py::supports_inflight_batching (mapped to deleted TRT model classes); test-db README example refreshed to a real test id; docs fixes in ci-overview.md and the AutoDeploy testing strategy. Rider (squashed in): [https://nvbugs/6482297][fix] Parse boolean stage-config fields in test_to_stage_mapping (from PR NVIDIA#16671, same author). The stage regex only accepted numeric trailing fields, so the 47 runWithSbatch stage entries (all DGX_B200-PyTorch-*) were silently dropped and commented-out stage rows were matched; test_backend_filtering_consistency now tolerates tests legitimately listed under multiple backends. Carried here because this PR retires stages and reshuffles test-db buckets - the exact surface those consistency tests validate. legacy-files.txt/ruff baseline entries for the deleted files are left to a mechanical 'legacy_utils.py prune-files' pass after this and the python-cleanup PR merge, to avoid cross-PR conflicts. Verified: defs collection passes (4206 tests), pre-commit hooks incl. the test-list AST validator pass, no broken example links. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
… and CI plumbing Trailing test/example/CI cleanup after the legacy TensorRT backend removal (TRTLLM-14026, PR NVIDIA#16369). CI schedules / jenkins: - Move backend-neutral tests off the retired -TensorRT- stages and delete all dead backend=tensorrt test-db buckets; flip remaining neutral buckets to pytorch so parked coverage runs again. - NEW stages A100X-PyTorch-Post-Merge-1 and L40S-PyTorch-Post-Merge-1 schedule the restored a100/l40s post-merge coverage (CI-owner review). - Retire the -TensorRT- plumbing in L0_Test.groovy (commented stage rows, backend=tensorrt mako branch, TEST_BACKEND changeMap entry, excludedBackends) and the -TensorRT- pattern in jenkins/scripts/cbts/blocks.py. - waives.txt: drop 42 waives for deleted/unscheduled tests (the validator requires waived tests to be in an active list). Legacy engine-flow example tests: - Delete the defs/examples wrappers whose every test drove the removed convert->trtllm-build->run flow: test_{bert,chatglm,commandr, draft_target_model,eagle,enc_dec,gptj,granite,internlm,llama,mamba, medusa,mistral,mixtral,multimodal,nemotron,nemotron_nas,ngram, openai,qwen,qwen2audio,qwenvl,redrafter,whisper,bindings,flux}.py, the whisper validators, and run_llm_fp8_quant_llama_70b.py. - test_gpt.py rewritten keeping only the live test_gpt_oss_20b_lora_torch; test_phi.py drops its quantization engine test; test_e2e.py drops test_gpt3_175b_1layers_build_only. - Remove the dead helper cascade in defs/common.py (convert_weights, quantize_data, prune_checkpoint, refit_model, find_tensorrt), defs/perf/build.py and test_perf.py's trtllm-build branches, and 19 orphaned example_root fixtures across defs/conftest.py and triton_server/conftest.py (verified: no dynamic getfixturevalue resolution exists for any of them). Dormant example scripts (imported deleted ModelRunner*/builder surfaces or drove engine flows; unreachable from CI): - examples/{run,summarize,utils,mmlu,eval_long_context}.py, examples/openai_triton/**, examples/python_plugin/**, examples/models/contrib/sdxl/**, examples/llm-eval/lm-eval-harness, the engine-flow multimodal/qwenvl/qwen2audio scripts, and examples/ngram/run_dtm_ngram.py (READMEs rewritten for the PyTorch flow where a live section remains). examples/ reference sweep (checked against tests, published docs, jenkins, and code): - contrib: delete arctic, blip2, chatglm-6b/2-6b/3-6b-32k, internlm, jais, skywork, smaug (README/requirements-only legacy-flow dirs; hyperclovax stays - live PyTorch README linked from release notes). - core: delete granite and mixtral; multimodal keeps the live Qwen-Image-Bench stub + eval script but drops utils.py, __init__.py and the per-model requirements-*.txt; nemotron drops the Nemo-flow README_nemotron-3.md + requirements.txt (PyTorch READMEs stay). - top level: delete generate_checkpoint_config.py, generate_xgrammar_tokenizer_info.py, hf_lora_convert.py, sample_weight_stripping/, cpp_library/, dora/, language_adapter/. - Kept deliberately: infinitebench (dependency of the retained CLI-flow suite) and longbench/opentelemetry/sparse_attention (unreferenced but document current features). Accuracy suite: - accuracy/test_cli_flow.py and CliFlowAccuracyTestHarness are KEPT (currently unscheduled; retained for possible future reuse). - Port TestQwen2_7BInstruct::test_tp2 to the PyTorch accuracy suite (skipped: TP2 hangs in the AUTO custom allreduce on PCIe-only nodes; the LMHead AllReduce ignores allreduce_strategy, so the strategy knob cannot work around it). Misc: - automodel.py isMedusa/isEagle branch and _utils.py::supports_inflight_batching (mapped to deleted TRT model classes); test-db README example refreshed to a real test id; docs fixes in ci-overview.md and the AutoDeploy testing strategy. Rider (squashed in): [https://nvbugs/6482297][fix] Parse boolean stage-config fields in test_to_stage_mapping (from PR NVIDIA#16671, same author). The stage regex only accepted numeric trailing fields, so the 47 runWithSbatch stage entries (all DGX_B200-PyTorch-*) were silently dropped and commented-out stage rows were matched; test_backend_filtering_consistency now tolerates tests legitimately listed under multiple backends. Carried here because this PR retires stages and reshuffles test-db buckets - the exact surface those consistency tests validate. legacy-files.txt/ruff baseline entries for the deleted files are left to a mechanical 'legacy_utils.py prune-files' pass after this and the python-cleanup PR merge, to avoid cross-PR conflicts. Verified: defs collection passes (4206 tests), pre-commit hooks incl. the test-list AST validator pass, no broken example links. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
… and CI plumbing Trailing test/example/CI cleanup after the legacy TensorRT backend removal (TRTLLM-14026, PR NVIDIA#16369). CI schedules / jenkins: - Move backend-neutral tests off the retired -TensorRT- stages and delete all dead backend=tensorrt test-db buckets; flip remaining neutral buckets to pytorch so parked coverage runs again. - NEW stages A100X-PyTorch-Post-Merge-1 and L40S-PyTorch-Post-Merge-1 schedule the restored a100/l40s post-merge coverage (CI-owner review). - Retire the -TensorRT- plumbing in L0_Test.groovy (commented stage rows, backend=tensorrt mako branch, TEST_BACKEND changeMap entry, excludedBackends) and the -TensorRT- pattern in jenkins/scripts/cbts/blocks.py. - waives.txt: drop 42 waives for deleted/unscheduled tests (the validator requires waived tests to be in an active list). Legacy engine-flow example tests: - Delete the defs/examples wrappers whose every test drove the removed convert->trtllm-build->run flow: test_{bert,chatglm,commandr, draft_target_model,eagle,enc_dec,gptj,granite,internlm,llama,mamba, medusa,mistral,mixtral,multimodal,nemotron,nemotron_nas,ngram, openai,qwen,qwen2audio,qwenvl,redrafter,whisper,bindings,flux}.py, the whisper validators, and run_llm_fp8_quant_llama_70b.py. - test_gpt.py rewritten keeping only the live test_gpt_oss_20b_lora_torch; test_phi.py drops its quantization engine test; test_e2e.py drops test_gpt3_175b_1layers_build_only. - Remove the dead helper cascade in defs/common.py (convert_weights, quantize_data, prune_checkpoint, refit_model, find_tensorrt), defs/perf/build.py and test_perf.py's trtllm-build branches, and 19 orphaned example_root fixtures across defs/conftest.py and triton_server/conftest.py (verified: no dynamic getfixturevalue resolution exists for any of them). Dormant example scripts (imported deleted ModelRunner*/builder surfaces or drove engine flows; unreachable from CI): - examples/{run,summarize,utils,mmlu,eval_long_context}.py, examples/openai_triton/**, examples/python_plugin/**, examples/models/contrib/sdxl/**, examples/llm-eval/lm-eval-harness, the engine-flow multimodal/qwenvl/qwen2audio scripts, and examples/ngram/run_dtm_ngram.py (READMEs rewritten for the PyTorch flow where a live section remains). examples/ reference sweep (checked against tests, published docs, jenkins, and code): - contrib: delete arctic, blip2, chatglm-6b/2-6b/3-6b-32k, internlm, jais, skywork, smaug (README/requirements-only legacy-flow dirs; hyperclovax stays - live PyTorch README linked from release notes). - core: delete granite and mixtral; multimodal keeps the live Qwen-Image-Bench stub + eval script but drops utils.py, __init__.py and the per-model requirements-*.txt; nemotron drops the Nemo-flow README_nemotron-3.md + requirements.txt (PyTorch READMEs stay). - top level: delete generate_checkpoint_config.py, generate_xgrammar_tokenizer_info.py, hf_lora_convert.py, sample_weight_stripping/, cpp_library/, dora/, language_adapter/. - Kept deliberately: infinitebench (dependency of the retained CLI-flow suite) and longbench/opentelemetry/sparse_attention (unreferenced but document current features). Accuracy suite: - accuracy/test_cli_flow.py and CliFlowAccuracyTestHarness are KEPT (currently unscheduled; retained for possible future reuse). - Port TestQwen2_7BInstruct::test_tp2 to the PyTorch accuracy suite (skipped: TP2 hangs in the AUTO custom allreduce on PCIe-only nodes; the LMHead AllReduce ignores allreduce_strategy, so the strategy knob cannot work around it). Misc: - automodel.py isMedusa/isEagle branch and _utils.py::supports_inflight_batching (mapped to deleted TRT model classes); test-db README example refreshed to a real test id; docs fixes in ci-overview.md and the AutoDeploy testing strategy. Rider (squashed in): [https://nvbugs/6482297][fix] Parse boolean stage-config fields in test_to_stage_mapping (from PR NVIDIA#16671, same author). The stage regex only accepted numeric trailing fields, so the 47 runWithSbatch stage entries (all DGX_B200-PyTorch-*) were silently dropped and commented-out stage rows were matched; test_backend_filtering_consistency now tolerates tests legitimately listed under multiple backends. Carried here because this PR retires stages and reshuffles test-db buckets - the exact surface those consistency tests validate. legacy-files.txt/ruff baseline entries for the deleted files are left to a mechanical 'legacy_utils.py prune-files' pass after this and the python-cleanup PR merge, to avoid cross-PR conflicts. Verified: defs collection passes (4206 tests), pre-commit hooks incl. the test-list AST validator pass, no broken example links. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
Overview
This PR severs the C++ tree's compile- and link-time dependency on TensorRT so the
shared core (runtime, batch manager, executor API, KV cache, sampling, kernels,
nanobind bridge) builds, links, and runs without the TensorRT library, and closes
the packaging gate (
requirements.txtdropstensorrt). It is the C++ half of thestaged TensorRT-backend removal, following examples #15763, docs #15767, tests
#15810, the Triton C++ backend #15907, and the Python backend removal (TRTLLM-14022,
PR #15918, merged to main as
7e833f7220).845ab6559e(grew from the original 512 viathe review/CI-driven amends recorded in §§ F–H: gtest fixes, MPI
includes,
--benchmarkssweep incl.docker/Dockerfile.multi, test-db lintfixes,
benchmarks/cpp→benchmarks/relocation,test_leak.pydeletion,first-CI-run fixes, the two OSS-mode gtest regression fixes, two
rebase-absorption respells of new-on-main nvinfer1 usages, and the 2026-07-16
review-comment amends — § H last table — incl. the dormant
Executor-bindingclient deletion).
used two
nvinfer1types as common currency (DataType,Dims).Those now live in
common/tllmDataType.has standalonetensorrt_llm::types withidentical enumerator values and layout (serialization stays byte-compatible),
and every surviving file is respelled
nvinfer1::X→tensorrt_llm::X. Becauseenum classtypes do not interconvert, the TensorRT-engine execution path (whichmust keep the real
nvinfer1types) cannot compile against the migrated core —so its removal is forced into the same PR, matching the shape of the original
draft (Remove tensorrt backend QiJune/TensorRT-LLM#20, commit
59eb547a6d), re-derived on the live tree.bindings, so it owns every test that drives them — engine-driven C++ gtests,
their Python integration wrappers, and all
test-db/waives/.test_durationsentries are removed here.
build_wheel.pywithout--trt_rootgreen;readelf -don
libtensorrt_llm.so/libth_common.so/bindings.*.soshows nolibnvinferNEEDED entry;
import tensorrt_llm+ bindings succeed with thetensorrtpackage hard-blocked;
test_datatype_parity.pygreen (values 0–11 match legacy);pytest --co tests/unittestcollects clean; quickstart e2e on H100 producescorrect output;
pre-commitfully green.A. Internal types (serialization-compatible)
cpp/include/tensorrt_llm/common/tllmDataType.h(ADDED)DataType(enum class : int32_t, values 0–11 =kFLOAT..kE8M0) andDims(int32_t nbDims+int64_t d[8],MAX_DIMS=8), defined intensorrt_llm::common(matching the othercommon/*.hheaders, per review — VALLIS-NERIA) and hoisted intotensorrt_llmwithusing common::DataType; using common::Dims;so the tree-widetensorrt_llm::Xspelling works. (AnILoggershim was initially included and removed on review — its only would-be consumers are deleted by this PR; review thread BowenFu.) Includes only<cstdint>+common/config.h.nvinfer1::DataTypeand theDimslayout mirrors TRT-10Dims64so previously-serialized executor configs and KV-cache metadata stay byte-compatible.cpp/file in the commit diff not otherwise named in this document)nvinfer1::DataType→tensorrt_llm::DataType(~2,000 uses),nvinfer1::Dims→tensorrt_llm::Dims(~60), 53NvInfer*.hincludes replaced bytllmDataType.h; 151 explicittllmDataType.hincludes added to files that had used the types only transitively (the new names are declared only in the new header).cpp/include23, thop 15, layers 9, nanobind 8, executor 6, common 6, tests 73, micro_benchmarks 1.NvInfer*.hincludes (runtime/{loraCache,worldConfig}.h,batch_manager/cacheFormatter.h,kernels/…/moe_util_kernels.h,kernels/weightOnlyBatchedGemv/cudaCoreGemm{,NVFP4}.h,runtime/loraManager.cpp,thop/{allgather,reducescatter,noAuxTc,IndexerTopK}Op.cpp,unit_tests/kernels/cudaCoreGemm/cudaCoreGemmKernelTest.cpp)nvinfer1at all; each verified to include its cuda headers explicitly.cpp/include/tensorrt_llm/runtime/iTensor.hnamespace nvinfer1 { class IExecutionContext; }fwd-decl.tllmRuntime.{h,cpp}) are deleted and includedNvInferRuntime.hthemselves. (The draft leaked this into its end state.)cpp/tensorrt_llm/kernels/cutlass_kernels/moe_gemm/moe_kernels.cumoeLoraNvInferType→moeLoraDataType(3 uses) + comment reword.cpp/tests/unit_tests/multi_gpu/kernels/allReduce/gemmAllReduceTest.cuusing namespace nvinfer1;.tests/unittest/bindings/test_datatype_parity.py(ADDED)tensorrt_llm.bindings.DataTypemember set + integer values match the legacynvinfer1::DataTypevalues (FLOAT=0 … NVFP4=10).unittest/bindingsentries inl0_a10/h100/gh200.yml.cpp/tests/unit_tests/batch_manager/kvCacheManagerTest.cpp(2026-07-15 amend)nvinfer1::DataType::sites inFP4AttentionWithHalfRecurrentStatesPoolTest.google-testsfixture build, which is why ALL H100/DGX CPP CI stages failed.cpp/tensorrt_llm/kernels/rmsNormFp4QuantKernels.{h,cu}(2026-07-15 post-rebase amend)#include <NvInferRuntime.h>→tllmDataType.h; 6nvinfer1::DataTypesites respelled.tensorrt_llm::DataTypefromTorchUtils::dataType. Caught by the mandatory post-rebase scan suite (check 1).B. Engine execution path — deleted C++ sources
cpp/tensorrt_llm/plugins/**nvinfer_plugin_tensorrt_llm) — only consumed by TRT engines.cpp/tensorrt_llm/batch_manager/trtGptModel*,trtEncoderModel,trtGptModelFactory) + engine-only buffers/algos (runtimeBuffers,encoderBuffers,transformerBuffers,promptTuningBuffers,rnnStateBuffers,loraBuffers,handleContextLogits,handleGenerationLogits,logitsPostProcessor,makeDecodingBatchInputOutput,updateDecoderBuffers) — the PyTorch pyexecutor has its own Python implementations.cpp/tensorrt_llm/runtime/tllmRuntime.{h,cpp},tllmStreamReaders.{h,cpp},layerProfiler.{h,cpp},tllmLogger.cpp.cpp/include/tensorrt_llm/runtime/rawEngine.h,runtime/tllmLogger.h,executor/disaggServerUtil.h,plugins/api/tllmPlugin.h.cpp/tensorrt_llm/executor/executor.cpp,executorImpl.{h,cpp}(the engineExecutor),disaggServerUtil.cpp, andmodel.h(0 remaining consumers — verified).cpp/tensorrt_llm/executor_worker/executorWorkerorchestrator binary (engine-mode only).cpp/tensorrt_llm/nanobind/Executorbinding (executor/executor.{h,cpp}) and theModelSpecbinding (testing/modelSpecBinding.{h,cpp}) — 0 Python users each after the test deletions below;kvCacheManagerTestUtilBinding(live users) kept.cpp/tensorrt_llm/testing/modelSpec.{h,cpp}+ thetesting_srcCMake target — engine test-data path helper, orphaned.kvCacheManagerTestUtil.h(header-only, live binding) kept in place.cpp/cmake/modules/FindTensorRT.cmakefind_package(TensorRT)remains.C. Relocations (retained symbols out of deleted files)
cpp/include/tensorrt_llm/executor/executor.hKVCacheEventconstructor +executor::version(), relocated from the deletedexecutor.cpp/executorImpl— now inline in the header (version()returnskTensorRtLlmVersionfrom the public generatedversion.h, newly included; the ctor is defined in-class). An interim relocation filekvCacheEvent.cppexisted and was dropped on review (VALLIS-NERIA: trivial enough for the header).D. Shared C++ files decoupled from the removed engine runtime
batch_manager/utils/inflightBatchingUtils.{h,cpp}copyGenerationLogits(needsRuntimeBuffers::GenerationLogitsCache),findOutputTensor,copyAdditionalOutputs, and theCudaGraphExecutor/CudaGraphExecutorCacheclasses (driveTllmRuntimecontexts). The PyTorch-used helpers stay.runtime/lookaheadBuffers.{h,cpp}LookaheadRuntimeBuffersclass (ctor takesTllmRuntime const&); keptLookaheadDecodingBuffers.layers/lookaheadDecodingUtils.hinclude →common/cudaUtils.h(fordivUp).batch_manager/medusaBuffers.{h,cpp}MedusaBuffersengine ctor (takesTllmRuntime const&, readsengine.getTensorDataType("medusa_logits")) +medusaModule/speculativeChoicesUtilsincludes; keptreshape/insertInputTensors.batch_manager/dataTransceiver.cppruntimeBuffers.hinclude.nanobind/runtime/bindings.cppTllmRuntimeclass binding (~40 lines) +tllmRuntime.hinclude.nanobind/batch_manager/algorithms.cppLogitsPostProcessoralgorithm binding + include.nanobind/executor/bindings.cppExecutorclass registration.ExecutorConfig, request/response types) are untouched — the PyTorch backend keeps using them.nanobind/bindings.cppmodelSpecBinding.hinclude +initBindings(mInternalTesting)call; keptinitKvCacheTestUtilBindings.common/opUtils.h+common/attentionOp.cpp+tensorrt_llm/_common.pyisBuilding()(env probe), theif (isBuilding()) return 0;gate inattentionOp::initialize, and the Python_BuildingFlag/_is_buildingwriters ofIS_BUILDING(+ now-unusedwrapsimport).IS_BUILDINGPython↔C++ contract only skipped NCCL setup duringtrtllm-build; no writer remains. Both halves deleted together (as the Phase B TODO in_common.pysaid).E. Python executor layer (the engine path's last consumers)
tensorrt_llm/executor/base_worker.py_create_engine()(constructedtllm.Executor(engine_path, ModelType.DECODER_ONLY, executor_config));setup_enginenow assertsllm_args is not Noneand always builds the PyExecutor; the threeisinstance(self.engine, tllm.Executor)branches infetch_stats/fetch_kv_cache_capacity/fetch_kv_cache_eventscollapsed to the PyTorch side.Executorclass no longer exists — anytllm.Executorattribute access would raise at runtime.llm_args=Nonewas unreachable from the LLM API since Phase B.tensorrt_llm/executor/worker.pyblock_subordinatesdrops theisinstance(self.engine, tllm.Executor)early-exit branch.tensorrt_llm/__init__.py_preload_tensorrt_libs()shim (import of thetensorrtpackage to preloadlibnvinferfor the bindings).bindings.*.so's DT_NEEDED onlibnvinfer.so.10— is gone; verified by importing withtensorrthard-blocked.F. Build & packaging (the final gate)
cpp/CMakeLists.txtfind_package(TensorRT 10 REQUIRED COMPONENTS OnnxParser)+set(TRT_LIB TensorRT::NvInfer), theTensorRT::NvInferinclude-dir injection, theBUILD_BENCHMARKSoption/messages/add_subdirectory(benchmarks/cpp), andnvinfer_plugin_tensorrt_llmfrom the build-time measurement list.cpp/tensorrt_llm/CMakeLists.txtadd_subdirectory(plugins),add_subdirectory(executor_worker),add_subdirectory(testing),${TRT_LIB}andtesting_srcfrom the link list.cpp/tensorrt_llm/{batch_manager,runtime,executor}/CMakeLists.txt,nanobind/CMakeLists.txtSRCSlists;executor/executor.cpp+testing/modelSpecBinding.cppdropped from the nanobind module.scripts/build_wheel.pybuild()function'strt_rootparam default →None; the "Ensure base TRT is installed" venv check removed;nvinfer_plugin_tensorrt_llm/executorWorkerdropped from targets; the plugin.so/.dllandexecutorWorkerinstall steps and thebin/dir removed; the--benchmarksflag + target removed. The--trt_rootCLI flag is kept (old default) as a[DEPRECATED]no-op for caller compatibility (§ H review fixes).setup.pypackage_datadropsbin/executorWorker,libs/libnvinfer_plugin_tensorrt_llm.so,libs/nvinfer_plugin_tensorrt_llm.dll.requirements.txttensorrt~=10.16.1— the global packaging gate of the staged removal.jenkins/Build.groovy--benchmarksfrom the wheel build line, the x86 Debug build line (missed initially — caught by CI run L0_MergeRequest_PR #47240,unrecognized arguments: --benchmarks; fixed 2026-07-13 amend), the Step-4 benchmark packaging block (bertBenchmark/gptManagerBenchmark/disaggServerBenchmark/libnvinfer_plugincopies into the tarball), and thebuild_cpp_examples.pystep.cplines would fail every CI build.jenkins/scripts/perf/local/slurm_install.sh(2026-07-13 amend)--benchmarks+--trt_root /usr/local/tensorrtfrom its build_wheel call.--benchmarksno longer parses; TRT root no longer needed.docs/source/blogs/Best_perf_practice_on_DeepSeek-R1_in_TensorRT-LLM.md(2026-07-13 amend)--benchmarks,--trt_root, and--python_bindings(the last was already invalid onmain).trtllm-bench, unaffected.docker/Dockerfile.multi(2026-07-13 amend)BUILD_WHEEL_ARGSdropped--benchmarks(docker/Makefile derives its default from this line, so it inherits the fix). Release stage: dropped thecpp/build/benchmarksbind mount, thebertBenchmark/gptManagerBenchmark/disaggServerBenchmarkcopies and.cppsource removals, and thebin/symlink +test -f bin/executorWorker+ldd bin/executorWorkerchecks; the lib sanity checks now usetest -f lib/libtensorrt_llm.soandldd lib/libth_common.so(DT_NEEDED onlibtensorrt_llm.soverified).--benchmarks; the binaries/sources no longer exist; the wheel no longer shipsbin/.jenkins/current_image_tags.propertiesintentionally untouched — devel-image content is unchanged (TRT inside the pinned images is unused but harmless); stripping TRT from the devel images is a follow-up with its own image rebuild + tag bump.scripts/get_wheel_from_package.pybenchmarks_dirsetup.scripts/build_cpp_examples.py(DELETED) +examples/cpp/**(11 files)executorExampleBasic/Advanced/Disaggregated/…) all constructtle::Executor(<engine path>).G. C++ tests — deleted (engine-driven) vs fixed (kept)
Deleted
cpp/tests/e2e_tests/batch_manager/{trtGptModelTest,trtGptModelRealDecoderTest,trtEncoderModelTest}.cppcpp/tests/e2e_tests/executor/**(executorTest.{h,cpp},executorMockTest.cpp,encDecTest.cpp,disaggExecutor.h,disaggExecutorTest.cpp,CMakeLists.txt)Executorwith built engines.cpp/tests/unit_tests/executor/executorTestSmall{,ArbitraryOutputTensors}.cpptests/utils/engines.cpp/tests/unit_tests/runtime/tllmRuntimeTest.cpp,cpp/tests/unit_tests/batch_manager/encDecBeamSearchTest.cppTllmRuntime/RuntimeBuffers::GenerationLogitsCache— both deleted.cpp/tests/utils/{engines,executorUtils,common}.{h,cpp}+CMakeLists.txt(thetestingUtilslib)enginesbuilds TRT engines in-memory (the only survivor-file user of TRT graph APIs);executorUtilsdrivesexecutor::Executor;commonholds engine paths/logits helpers. All consumers deleted → wholetests/utils/dies.cpp/tests/resources/scripts/build_*_engines.py+generate_expected_*_output.py+generate_hf_gpt_output.py+io_converter.py+build_engines_utils.py(22 files)generate_test_lora_weights.py— live user (lora_setupfixture feeds the surviving C++ LoRA unit tests, no engines involved).benchmarks/cpp/{bertBenchmark,gptManagerBenchmark,disaggServerBenchmark}.cpp+utils/utils.{h,cpp}+CMakeLists.txtbertBenchmarkusesTllmRuntime, the others the C++Executor). Kept + relocated (2026-07-13 amend):prepare_dataset.py+ the Pythonutils/feedtrtllm-benchand movedbenchmarks/cpp/→benchmarks/(thecpp/level was meaningless post-deletion); READMEs merged into onebenchmarks/README.md(the old top-level one still recommended the deleted C++ benchmarks); references updated (test_prepare_dataset.py,test_perf.py,sample_performance_alignment.sh, perf docs ×4,create_standalone_package.py);legacy-files.txtrenamed +gen-configsregeneratedpyproject.toml/ruff-legacy.toml/.pre-commit-config.yaml+ruff-legacy-baseline.jsonre-keyed. Historicalrelease-notes.mdmention left as-is.tests/unittest/others/test_leak.py(in the Phase B commit, 2026-07-13 amend, per PR #15918 review)tllm.Builder,net_guard,graph_rewriting,LLaMAForCausalLM) — running it (or the documented full unit suite) fails attllm.Builder(). Unscheduled in every test list; legacy TRT graph-building leak coverage with no PyTorch equivalent → deleted.Fixed (kept tests that referenced deleted files — the draft missed all of these)
unit_tests/{layers/baseSamplingLayerTest.h, layers/eagleLayerTest.cpp, layers/explicitDraftTokensLayerTest.cpp, kernels/sampling/samplingTest.h, kernels/routing/routingTest.h, kernels/eaglePackDataTest.cpp, runtime/samplingTest.cpp}tllmLogger.hinclude, themLogger = std::make_shared<TllmLogger>()line, and the member declaration.unit_tests/runtime/gptDecoderBatchedTest.cppMakeDecodingBatchInputOutput::createDecoderBatchInputsstatic (engine-free, ~50 lines) is inlined as a file-local helper; 4 call sites repointed.GptDecoderBatched(live in the PyTorch decoder path) without keeping a dead prod algorithm.unit_tests/kernels/ropeTest.cuplugins/gptAttentionCommon/gptAttentionCommon.hinclude →kernels/gptKernels.h.AttentionMaskType/PositionEmbeddingTypeenums, whose real home isgptKernels.h.unit_tests/multi_gpu/mpiUtilsTest.cppplugins/common/plugin.hinclude + theGlobalSessionHandletest (plugins::getCommSessionHandle() == &COMM_SESSION).cpp/tests/CMakeLists.txtTensorRT::OnnxParserdropped from the per-test link;add_subdirectory(utils)+ thetests/utilsinclude dir removed;nvinfer_plugin_tensorrt_llmdropped from theadd_gtestlink line;include_directories(${MPI_C_INCLUDE_DIRS})added underENABLE_MULTI_DEVICE(2026-07-13 post-rebase amends — tests previously got both the plugin link target and the MPI include dirs transitively via the plugin's PUBLIC includes; without them every gtest failed to link and MPI-touching tests failed onmpi.h).testingUtils+ plugins deleted; MPI includes made explicit.unit_tests/batch_manager/cudaGraphExecutorCacheTest.cpp+ its CMake registrationCudaGraphExecutor/CudaGraphExecutorCache— was removed frominflightBatchingUtilsin this PR (engine-path CUDA-graph runner; the PyTorch backend does CUDA graphs in Python).unit_tests/kernels/ropeTest.cu(2026-07-13 amend, additional)common/cudaUtils.hinclude +using namespace tensorrt_llm::common;added.QuantMode/getSMVersion; first actual gtest compile surfaced it.unit_tests/runtime/gptDecoderBatchedTest.cpp(2026-07-13 amend, additional)batch_manager/llmRequest.hinclude added.createDecoderBatchInputshelper dereferencesLlmRequest, previously a complete type only via the deleted algorithm's header chain.unit_tests/utils/(utilsTest.cpp + CMakeLists + parent registration)randomLogitshelper from the deletedcpp/tests/utils/(testingUtils) library — its subject is gone.cpp/tensorrt_llm/thop/CMakeLists.txt(2026-07-13 amend)th_utilsnow links${SHARED_TARGET}PUBLIC.thUtils.cppgenuinely referenceslibtensorrt_llmsymbols (ITensor::wrap,TllmException,fmtstr), but the dependency was never declared —thUtilsTestlinked only because the plugin target's presence on the link line satisfied it. With the plugin gone, ld (--as-neededpositional semantics) dropped the.solisted beforelibth_utils.aand the test failed to link. Declaring the real dependency makes CMake order the.soafter the archive.|
cpp/tests/unit_tests/multi_gpu/kernels/allReduce/gemmAllReduceTest.cu(2026-07-15 amend) | Dropped the include of the deletedcpp/tests/utils/common.h; its sole consumed symbol (tensorrt_llm::testing::GpuTimer, a ~50-line CUDA-event timer) inlined into the test file. | Phase C regression, unmasked: on main this compiled only because every gtest linkednvinfer_plugin_tensorrt_llm, whose PUBLICUSING_OSS_CUTLASS_*_GEMMdefines leaked into all tests. This PR removes that link, so the include went live and broke the shared fixture build. (An earlier triage note calling this "pre-existing / internal-CI-mode-only" was WRONG — there is no internal CI mode; CI builds gtests in OSS mode.) ||
cpp/tests/unit_tests/kernels/CMakeLists.txt(2026-07-15 amend) |mixtureOfExpertsInternalTesttarget creation gated onif(INTERNAL_CUTLASS_KERNELS_PATH). | Same unmasking: with the plugin's leaked PUBLIC define gone,remove_compile_definitionfinally took effect and the internal-path branch (#include "quantization.h", header not shipped in the OSS cutlass tarball) went live. On main the "internal" test had silently compiled the OSS path — a duplicate ofmixtureOfExpertsTest, never real internal coverage — so gating it out in OSS builds loses nothing; internal-source builds now get a genuine internal-path test for the first time. ||
cpp/tests/{e2e_tests,e2e_tests/batch_manager,unit_tests/executor,unit_tests/runtime,unit_tests/batch_manager}/CMakeLists.txt| Registrations of every deleted test pruned (guidedDecoderTeststays — see below). | Match the deletions. ||
cpp/tests/e2e_tests/batch_manager/guidedDecoderTest.cpp| Migrated (respell +tllmDataType.h) and kept. | It lives undere2e_tests/but tests the survivingGuidedDecoderwith no engine coupling. Flagged for relocation out ofe2e_tests/in a follow-up. |H. Python test suite + CI metadata
tests/integration/defs/cpp/test_e2e.py(DELETED)e2e_testsbinaries (test_model,test_benchmarks).tests/integration/defs/cpp/test_multi_gpu.pytest_mpi_utils,test_fused_gemm_allreduce,test_cache_transceiver,test_user_buffer,test_nccl_utils) — exactly the shared-core KEEP list. Deleted:test_llama_executor{,_logits_proc,_guided_decoding},test_enc_dec,test_trt_gpt_real_decoder,TestDisagg(4 methods), theirrun_*helpers, and the engine-model fixtures (prepare_multi_gpu_model_tests,prepare_model_multi_gpu,gpt/llama_single_gpu_model,llama_multi_gpu_model,prepare_models_disagg,multi_gpu_model).tests/integration/defs/cpp/cpp_common.pyprepare_model_tests(engine builder driving the deletedbuild_*_engines.py) removed.tests/integration/defs/cpp/conftest.pyprepare_model+build_benchmarksfixtures removed. Kept:lora_setup(generates numpy LoRA weights — no engines — for the surviving C++ LoRA unit tests).tests/unittest/bindings/test_executor_bindings.py(DELETED)trtllm.Executortests (was already waived since TRTLLM-13781).tests/unittest/bindings/binding_test_utils.py(DELETED)test_executor_bindings.py.tests/unittest/utils/cpp_paths.pyllm_root(consumed bytests/unittest/conftest.py+ one auto_deploy test). Deleted: theModelSpecimport (module-level — broke collection of the whole bindings suite),get_base_model_spec, and the engine-path/results-path fixtures (0 users each, verified fixture-by-fixture).test_executor.py,test_base_worker.py) define their own local names.tests/integration/defs/test_mlpf_results.py(DELETED)gptManagerBenchmarkon a built engine; unscheduled in any test list.tests/integration/test_lists/test-db/l0_{a10,a30,dgx_h100,h100}.ymlcpp/test_e2e.pymodel/benchmark entries + theTestDisaggsymmetric-executor entries.tests/integration/test_lists/waives.txtcpp/test_e2e.py::*,TestDisagg::*, thetest_executor_bindings.pywaive).tests/integration/defs/.test_durationsbenchmarks/cpp/README.mdprepare_dataset.py,utils/*) and points benchmarking attrtllm-bench/trtllm-serve; allgptManagerBenchmarkcontent removed.First-CI-run fixes (2026-07-15 amends)
jenkins/L0_Test.groovyA10-CPP-1andH100_PCIe-CPP-Post-Merge-1stage definitions.//comments.tests/integration/test_lists/test-db/l0_b200.ymlunittest/disaggregated/test_router.pyfrom the tensorrt post_merge chunk.tests/unittest/tools/test_test_to_stage_mapping.pytest_cli_functionalitysamples only stage-mapped tests (skips if none).[:MAX_SAMPLES]of a glob-ordered list; our delisting shifted the window onto PRE-EXISTING unmapped test-db entries (violation sets byte-identical branch vs main).tests/unittest/auto_deploy/singlegpu/smoke/test_ad_trtllm_bench.py,tests/unittest/auto_deploy/multigpu/custom_ops/test_ad_dist_strategies.pyscript_dir = Path(root_dir, "benchmarks", "cpp")→Path(root_dir, "benchmarks")(+dataset_toolpath).benchmarks/cpp→benchmarks/relocation (§ G) missed these cwd references; 6 AutoDeploy bench CI failures.examples/auto_deploy/paragraf/create_standalone_package.py+tests/unittest/auto_deploy/standalone/test_standalone_test_export.pyPath(root_dir, "benchmarks")string.llmc/create_standalone_package.py; main #16324 renamed the packager toparagraf/— the one conflict at the95f9f92a76rebase, resolved by taking main's forwarding shim and re-applying the fix at the new location.)tests/integration/defs/common.pyget_cpp_benchmark()(+ autoflake dropped the orphanedis_windowsimport).tests/integration/defs/perf/test_perf.py,docs/source/commands/trtllm-bench.rstprepare_dataset.pypath/link →benchmarks/.Review-comment fixes (2026-07-16 amends)
examples/disaggregated/slurm/benchmark/disaggr_torch.slurm,…/disaggr_torch_dwdp.slurm--benchmarksfrom thebuild_wheel=truesource-build command.build_wheel.pyby this PR — argparse would reject it and fail the source build.--trt_rootkept (still an accepted arg).tests/integration/README.md--benchmarks" prerequisite sentence.trtllm-bench..claude/skills/exec-local-compile/SKILL.md,.claude/skills/exec-slurm-compile/{SKILL.md,scripts/compile.sh}--benchmarksfrom checked-in compile commands and flag tables.benchmarks/prepare_dataset.pydocs/source/legacy/+release-notes.mdmentions left as historical record.cpp/include/tensorrt_llm/common/tllmDataType.h2022-2026→2026; ILogger/ILoggerSeverity shim deleted.TllmLoggeris deleted here).scripts/build_wheel.py--trt_roothelp text → "[DEPRECATED] No effect: TensorRT is no longer required to build. Accepted for backward compatibility and will be removed in a future release."-DTensorRT_ROOThas zero CMake consumers afterFindTensorRT.cmake's deletion); kept accepting it so existing checked-in build commands don't break — actual removal + caller sweep is a follow-up.cpp/include/tensorrt_llm/executor/executor.h(OrchestratorConfig),cpp/tensorrt_llm/nanobind/executor/executorConfig.cpp@deprecateddoc comment on the class + comment at the nanobind binding site.executorWorkerbinary is deleted; sole remaining user is a dormant example). Class/binding retained for serialization + Python-binding compatibility; removal deferred to the dormant-consumer follow-up pending API-stability review.legacy-files.txt,.pre-commit-config.yaml,pyproject.toml,ruff-legacy.tomlbuild_cpp_examples.py, deleted test wrappers); configs regenerated viascripts/legacy_utils.py gen-configs,check-configsgreen.legacy_utils.py prune-files).ruff-legacy-baseline.jsonhad zero entries for our files.cpp/include/tensorrt_llm/executor/executor.hclass Executordeclaration (all 4 engine-path ctors, theshared_ptr<Model>ctor, ~30 methods) and the now-orphanedclass Model;fwd-decl.executor.cpp's deletion removed every implementation, so the packaged header declared an API that compiles but cannot link. Zero users remain in the retained tree (grep: only comments/strings). Everything else in the header keeps its implementation —version()/KVCacheEventctor (now inline in the header, see the VALLIS-NERIA row below),KVCacheEventManager(executorKVCacheEventManager.cpp, bound + used by PyExecutor),ModelType(serialized, disagg),JsonSerialization, all config/request/response classes. Fullgoogle-tests build_wheel_targetsrebuild green (846 targets).cpp/include/tensorrt_llm/common/tllmDataType.hDataType/Dimsmoved intonamespace commonwithusing common::DataType; using common::Dims;hoists intotensorrt_llm.common/*.hheaders' namespace convention. The hoist keeps every existingtensorrt_llm::Xspelling valid — zero call-site changes.cpp/include/tensorrt_llm/executor/executor.h+cpp/tensorrt_llm/executor/{kvCacheEvent.cpp,CMakeLists.txt}version()made inline (header now includes the public generatedversion.h) and theKVCacheEventctor defined in-class; the interim relocation filekvCacheEvent.cppdeleted and pruned fromSRCS.bindings.executor.__version__unaffected.examples/bindings/**(5 D),tests/integration/defs/deterministic/**(3 D),defs/common.py,defs/conftest.py, legacy-lint lists (legacy-files.txt, 3 generated configs,ruff-legacy-baseline.json)Executor-binding clients: the 4 binding examples (+ README; the dir held nothing else), the unscheduled deterministic Mixtral test + driver + payload, the orphanedgenerate_deterministic_cmdhelper anddeterministic_test_rootfixture; lint lists pruned.AttributeError: … no attribute 'Executor'(binding deleted by this PR). Nothing to migrate to — they demo the removed low-level Executor API; the LLM API is the replacement. Zero test-db/waives/durations/CODEOWNERS entries existed.I. Review-driven scope change (chronological)
tllmDataType.hwas authored in a transitionalalias form (
using DataType = nvinfer1::DataType;…) so the 206-file respell couldland as a standalone, provably-behavior-free PR while the plugin/engine path kept
compiling, with the real-enum flip + engine deletion deferred to the next PR
(the original two-step split of the removal plan).
staging was dropped; the header was flipped to the real standalone types and the
engine-path removal + packaging gate were folded into this PR (§ A–H above). The
alias-form design record is kept in the internal design notes.
benchmarks, examples/cpp, and Jenkins handling were incomplete): the 12
deleted-header include stragglers (§ G "Fixed"),
guidedDecoderTestclassification,executor/model.h, ModelSpec/testing_src,benchmarks/cpp,examples/cpp,Build.groovy,cpp_paths.py— all found by systematic sweeps(deleted-header include scan, python deleted-symbol scan, fixture-consumer counts).
the kvCacheManagerTest rebase-absorption respell (§ A), and the two OSS-mode gtest
regression fixes (§ G) — the latter overturned an earlier "pre-existing" misdiagnosis
and produced the mandatory post-rebase scan suite: cpp-wide nvinfer grep incl.
cpp/tests/, plugin-link grep,USING_OSS_CUTLASS/remove_compile_definitionaudit, full OSS-modegoogle-testsbuild — all four must be green before any force-push.95f9f92a76(2026-07-15): one conflict (paragraf rename, § H) andone scan-suite catch (rmsNormFp4QuantKernels, § A) — both folded in.
a914fe4cd8(2026-07-16): no conflicts; main's 24 new commits addzero TRT-surface references (checked the whole range diff). The rebase silently
resurrected the removed ILogger shim (started from a pre-amend state) — caught by
interdiffing the old and new heads against main's own range diff, re-applied.
--benchmarkscaller sweep + its generalization (the removal-consistency sweep: declared-but-
unimplemented API check via
nmover the built libs, callers-of-removed-thingschecks → one further real find, the legacy-lint prune); dead
class Executordeclaration removed;
--trt_rootmarked deprecated;OrchestratorConfigdeprecationcomments;
DataType/Dimsmoved intotensorrt_llm::common(+usinghoist);kvCacheEvent.cppinlined away; dormantExecutor-binding clients(
examples/bindings/,defs/deterministic/) verified-broken and deleted.J. Validation record
Current state (2026-07-16 10:45 UTC,
845ab6559eona914fe4cd8):the last two header amends: (1) cpp-wide nvinfer grep incl.
cpp/tests/— 0 hits;(2)
nvinfer_pluginCMake grep — 0 hits; (3) OSS-cutlass define audit — both testusers self-define, internal target gated. (4) full OSS-mode
ninja google-tests build_wheel_targets(sm90): 835 targets, zero failures atthe rebased base, 846 targets, zero failures after the
class Executorremoval; the two final header amends (
tensorrt_llm::commonnamespace move +kvCacheEvent.cppinlining) and the python-only dormant-client deletion stillneed one rebuild pass — delegated to williamj, must be green before force-push.
(Previous run at
393086c7f7/95f9f92a76: also 4/4, incl. thermsNormFp4QuantKernels respell check 1 caught.)
the ten CI tests' exact run phases against the CI-fixture-equivalent build:
test_unit_tests[common-90]28/28 PASS;test_unit_tests[kernels-90]1138/1139(single failure
MixtureOfExpertsTest.PermuteSweepNumTokens<fp8×int4>— the knownMoE-permute GPU-contention flake family, isolation retest pending); layers/thop +
the 6 multi-GPU tests in progress at time of writing. The CI failure mode itself
(fixture build failure) is closed by scan-suite check 4.
rebase): zero
libnvinferNEEDED inlibtensorrt_llm.so+ bindings + nixl/ucxwrappers; datatype parity test green; TinyLlama quickstart e2e coherent.
Superseded note: the 2026-07-14 record called
mixtureOfExpertsInternalTest/gemmAllReduceTest"pre-existing OSS-mode gaps" — WRONG, both were Phase Cregressions via the plugin PUBLIC-define leak; fixed in this PR (§ G).
Original validation record (2026-07-10,
53d64f3e74):python3 scripts/build_wheel.py --use_ccache --skip_building_wheel --cuda_architectures native— no--trt_root— exit 0.(Gotcha:
BUILD_WHEEL_TARGETSis a CMake cache variable; the first incremental runkept the stale target list and failed at the final aggregate target — resolved with
--configure_cmake.)readelf -donlibtensorrt_llm.so,libth_common.so,bindings.*.so:zero
nvinfer/TensorRT NEEDED entries.import tensorrt_llm+tensorrt_llm.bindingswith thetensorrtpackagehard-blocked via a
sys.meta_pathblocker: OK.tests/unittest/bindings/test_datatype_parity.py: 2 passed.pytest --co -q tests/unittest: exit 0 (collection clean).assert seen with one local checkpoint is a pre-existing Python weight-loader
incompatibility with that checkpoint — path untouched by this PR.)
pre-commit runon all 512 files: green (autoflake/clang-format/cmake-formatreformats absorbed into the commit).
K. Follow-ups (deliberately NOT in this PR)
Consolidated 2026-07-14 by cross-checking the Phase B review threads. Summary of
what stays out:
backend: tensorrttest-db entries, inert TRT waives, the remaining reviewer-verifieddormant deleted-module consumers under
examples/+ integration helpers(chienchunhung thread — deferral accepted on the merged Phase B PR; the
examples/bindings/+defs/deterministic/subset was pulled INTO this PR onreview, § H), relocation of backend-neutral tests out of
-TensorRT-labelledstages, and
-TensorRT-stage retirement inL0_Test.groovy. Needs CI-owner +examples-owner ack.
trailing cleanup"): remove
functional.py(relocate retained enums /AllReduceParams, ~55_torch/repoints), removequantize_by_modelopt.pyas acoordinated unit (NB:
nvidia-modeloptSTAYS in requirements — the PyTorchbackend consumes modelopt checkpoints; only the legacy export path is dead),
load_calib_datasetorphan (closes nvbugs/6215107),bench/build/dissolve,tools/plugin_gen/,unet/pp/__init__.pystraggler.test_gather_generation_logits_cuda_graph→llm_function_core.txt):TestQwen2_7BInstruct::test_tp2pytorch port (trivial), aggregated Ulysses cp2accuracy test (validate with CP owners first),
test_fp8_rowwiseport (blocked onprovisioning a rowwise-quantized checkpoint), W8A16 = feature gap (no port).
stages in this PR's
/bot run(--extra-stage) + monitor post-merge boards afterlanding. LoRA surface here is respell-only + engine-buffer deletion; the three C++
LoRA gtests are kept.
(
orchestratorUtils.h,promptTuningParams,requestWithIdtangle), thedead-in-practice C++ spec-dec decoder stack (fold into the 1.4 TRTLLMSampler
removal), stale
gptJsonConfig.cpp:273comment;transferAgent.cppself-sufficient wrapper dlopen (replaces
_common.py's RTLD_GLOBAL bridge, whichis kept — it concerns our own lib's symbols, not TRT).
--tensorrtinstall line +install_tensorrt.sh) — the one follow-up requiring an image rebuild +jenkins/current_image_tags.propertiesbump (deliberately untouched here).prepare_dataset.pydedup —benchmarks/standalone copy vs the driftedpackaged twin
tensorrt_llm/bench/dataset/(trtllm-bench prepare-dataset).guidedDecoderTest.cppout ofcpp/tests/e2e_tests/(unit test of asurviving component; kept in place to avoid churn).
runtime: "cpp"(bertBenchmark-era label) +test_perf.py's TRT branch +defs/perf/build.py: dead config surface, part ofthe test-list sweep above.
L. PR-split assessment (2026-07-15, updated 12:00 UTC)
Verdict: keep the single PR. Below: what the ~576 files actually are, then why
each bucket is chained to the next, then the splits that were considered.
L.1 What the files are (576: 2 A / 302 M / 264 D / 8 R)
common/tllmDataType.h,test_datatype_parity.pyKVCacheEventctor +version()relocation is inline inexecutor.hper review)nvinfer1::{DataType,Dims,ILogger}→tensorrt_llm::across kernels 43, runtime 28, batch_manager 24,cpp/include23, thop 15, layers 9, nanobind 8, executor 6, common 6, tests 73, micro_benchmarks 1plugins/**131, TRT model adapters + engine buffers/algos inbatch_manager/20, engine runtime wrappers inruntime/7, their public headers incpp/include/12,executor{,_worker}/7, nanobindExecutor/ModelSpecbindings 4,testing/3,FindTensorRT.cmake1cpp/tests/e2e_tests/**10,unit_testsengine tests 7,cpp/tests/utils/(in-memory engine builder) 7,cpp/tests/resources/scripts/build_*_engines.pyetc. 23→(22 D + 1 kept)benchmarks/cpp/{bert,gptManager,disaggServer}Benchmark.cpp+ CMake 7,examples/cpp/**11; the 8 renames = surviving python dataset toolsbenchmarks/cpp/→benchmarks/inflightBatchingUtils,lookaheadBuffers,medusaBuffers, nanobind pruning,opUtils.h/attentionOpIS_BUILDING, pythonbase_worker/worker/__init__/_commonTllmLoggermembers ×7,gptDecoderBatchedTesthelper inline,ropeTest/mpiUtilsTestinclude repoints,cpp/tests/CMakeListslink/MPI fixes, GpuTimer inline + MoE-internal gate (§ G "Fixed")cpp/CMakeLists, per-dir CMake prunes,build_wheel.py,setup.py,requirements.txt,Build.groovy,Dockerfile.multi,slurm_install.sh,get_wheel_from_package.pydefs/cpp/test_e2e.pyD,test_multi_gpu.pypruned, test-db ymls,waives.txt,.test_durations,L0_Test.groovystages, mapping-test fix; + the review-driven dormant-client deletions (examples/bindings/5 D,defs/deterministic/3 D, 2 helper edits)trtllm-bench.rst, ruff-legacy configs/baseline (rename fallout)L.2 The dependency chain — why the buckets can't land separately
Each arrow is a hard breakage on
mainif the two sides are in different PRs:tllmDataType.hdeclares realenum classtypes. A file sayingnvinfer1::DataTypecannot receive atensorrt_llm::DataType— every one of the ~2,000 uses in the 206 surviving filesmust flip in the same commit or those files stop compiling.
(
plugins/,trtGptModel*,tllmRuntime, C++Executor) must keep the realnvinfer1types to talk to TensorRT, but it consumes the shared core headers thatare now respelled (
iTensor.h,bufferManager.h,modelConfig.h, …).enum classdoesn't interconvert → the engine path cannot compile against the migrated core.
Splitting = a PR that leaves
mainunbuildable. (The only escape is the aliasstaging — designed as a transitional alias form, rejected in review: "remove nvinfer
fully, not import nvinfer anymore", § I.2.)
deleted engine types:
inflightBatchingUtilsheldCudaGraphExecutor(drives thedeleted
TllmRuntime),medusaBuffers/lookaheadBuffershave engine ctors takingTllmRuntime const&, nanobind registers the deletedExecutorclass,base_worker.pyconstructstllm.Executor. Without the § C–E edits in the samecommit, the library and the Python import both break.
cpp/CMakeLists.txtdoesfind_package(TensorRT REQUIRED)andadd_subdirectory(plugins);setup.pypackages
libnvinfer_plugin_*.so/bin/executorWorker;Build.groovy/Dockerfilecopy the benchmark binaries. Any of these referencing a deleted target fails every
build — same commit or nothing ships.
requirements.txtdroppingtensorrtisthe point of the PR and is only correct once nothing links it.
gtests link the deleted
Executor/TllmRuntime;cpp/tests/utils/enginesbuildsTRT engines in-memory. Keeping the tests = keeping the code. (Ownership rule from
Phase B: the PR that deletes a binary owns every test that drives it.)
tests crash the trt-test-db lint (AST validator +
tests: Nonegotcha); stalewaives fail the duplicate/AST validators; the two stages our delisting emptied
(
A10-CPP-1,H100_PCIe-CPP-Post-Merge-1) hard-fail as empty stages. CI turns redin the same pipeline run that tests the PR — these cannot trail.
dependency deleted in Update TRT-LLM code #3 (plugin PUBLIC defines/includes,
testingUtils,tllmLogger.h) stopped papering over a latent gap. On pre-PR main these edits areno-ops at best, unbuildable at worst (e.g. the GpuTimer inline collides with the
still-existing
tests/utils/common.hdefinition; the MoE-internal gate woulddisable a then-working target).
L.3 Splits considered
using DataType = nvinfer1::DataType)NvInfer.himports alive for another PR cycle.benchmarks/relocation precursor (#5's renames + reference sweep)mainwindow where green engine tests are deleted for a not-yet-landed reason, plus a second CI-metadata review.Even taking both viable precursors, the core PR only shrinks ~576 → ~480 while adding
two more rebase-churn windows — and external rebases have already broken this branch
five times (#16304 + #14848 nvinfer stragglers, lost test-db fixes, the paragraf
conflict, the lost-ILogger-amend rebase), which is what the mandatory post-rebase scan
suite + interdiff check now guard. Review effort is better spent on the ~2,700 added
lines mapped by §§ A–H than on re-reviewing three PRs' worth of CI metadata.
M. Review guide — the files that actually need eyes (2026-07-15 12:20 UTC)
Of 576 files, ~35 carry review risk. The rest are mechanical respells (guarded by
test_datatype_parity.py+ the full OSS google-tests build), pure deletions (reviewthe list, § B/G — not the content), or validator-gated metadata (test-db/waives/
durations lint). Suggested order below; "What to verify" is the actual review task.
M.1 New code — highest value per line (2 added files + 1 inlined relocation, ~250 lines)
cpp/include/tensorrt_llm/common/tllmDataType.h(A)nvinfer1::DataType(kFLOAT=0 … kE8M0=11);Dimslayout = TRT-10Dims64(int32_t nbDims+int64_t d[8],MAX_DIMS=8); header stays dependency-free (<cstdint>+config.honly); types live intensorrt_llm::commonwithusinghoists intotensorrt_llm(both spellings name the same type).cpp/include/tensorrt_llm/executor/executor.h(inlinedKVCacheEventctor +version())executorImpl.cpp(relocation, not rewrite; inlined per review — VALLIS-NERIA).tests/unittest/bindings/test_datatype_parity.py(A)M.2 Shared production code, surgically edited (~12 files)
batch_manager/utils/inflightBatchingUtils.{h,cpp}copyGenerationLogits/findOutputTensor/copyAdditionalOutputs/CudaGraphExecutor{,Cache}removed; the PyTorch-used helpers (collectRequestIds, terminate/pause helpers…) byte-untouched.batch_manager/medusaBuffers.{h,cpp},runtime/lookaheadBuffers.{h,cpp}LookaheadRuntimeBuffershalf removed; the decoder-side halves (used by the shared decoder) intact;lookaheadDecodingUtils.h→cudaUtils.hinclude swap still providesdivUp.common/opUtils.h+common/attentionOp.cppif (isBuilding()) return 0;gate is safe because no writer ofIS_BUILDINGremains (Python_BuildingFlagdeleted in the same commit) — i.e. the gate was already always-false at runtime.attentionOp::initializedoes NCCL setup in a context that previously skipped it.nanobind/executor/bindings.cppExecutorclass registration dropped;ExecutorConfig/request/response/KV-event types (live PyTorch API surface) all still registered.import tensorrt_llmbreaks or LLM-API types vanish.nanobind/runtime/bindings.cpp,nanobind/batch_manager/algorithms.cpp,nanobind/bindings.cppinitKvCacheTestUtilBindingskept.tensorrt_llm/executor/base_worker.pyisinstance(self.engine, tllm.Executor)branches keep PyExecutor semantics identical; the newassert self.llm_args is not Noneis genuinely unreachable-safe (LLM API always passes llm_args since Phase B).tensorrt_llm/__init__.py_preload_tensorrt_libs()is safe ⇔ no binding carriesDT_NEEDED libnvinfer— cross-check the readelf validation in § J.import tensorrt_llmImportError in wheel-only envs.cpp/include/tensorrt_llm/runtime/iTensor.hnvinfer1::IExecutionContextfwd-decl breaks no remaining user (its users are deleted).M.3 Packaging & CI wiring — small diffs, big blast radius (~10 files)
requirements.txttensorrt~=10.16.1drop — THE point of the PR. Confirm nothing at import time still needs it (§ J: import withtensorrthard-blocked).scripts/build_wheel.py--trt_rootkept as a[DEPRECATED]no-op (old default retained) so existing build commands don't break; deleted targets gone fromBUILD_WHEEL_TARGETS(CMake CACHE var — stale caches need--configure_cmake).jenkins/Build.groovy+docker/Dockerfile.multitest -f lib/libtensorrt_llm.so,ldd libth_common.so) actually gate what they claim.current_image_tags.propertiesintentionally NOT bumped (devel-image content unchanged).jenkins/L0_Test.groovyA10-CPP-1,H100_PCIe-CPP-Post-Merge-1); no other stage's schedule touched.cpp/CMakeLists.txt+cpp/tensorrt_llm/CMakeLists.txtfind_package(TensorRT)/TRT_LIBfully gone; no surviving target references a deleted one (scan-suite check 2).setup.pybin/executorWorker+ plugin.so/.dlldropped from package_data.M.4 Judgment calls in kept tests — worth a deliberate opinion (~8 files)
cpp/tests/unit_tests/kernels/CMakeLists.txtmixtureOfExpertsInternalTestonly exists whenINTERNAL_CUTLASS_KERNELS_PATHis set — on main it silently compiled the OSS path (plugin PUBLIC-define leak defeatedremove_compile_definition), so OSS builds lose zero real coverage and internal builds gain a genuine internal test.unit_tests/multi_gpu/kernels/allReduce/gemmAllReduceTest.cuGpuTimerinlined (sole consumer of deletedtests/utils/common.h) instead of keeping a shared helper lib for one user.unit_tests/runtime/gptDecoderBatchedTest.cppcreateDecoderBatchInputs, ~50 lines) inlined as a file-local test helper to keep realGptDecoderBatchedcoverage.cpp/tensorrt_llm/thop/CMakeLists.txtth_utilsnow declares its real${SHARED_TARGET}dep PUBLIC (was satisfied accidentally by the plugin's presence on link lines).cpp/tests/CMakeLists.txtMPI_C_INCLUDE_DIRS+ no plugin onadd_gtestlink line (both previously leaked transitively from the plugin target).tests/integration/defs/cpp/test_multi_gpu.pytests/unittest/tools/test_test_to_stage_mapping.py[:MAX_SAMPLES]window was hitting PRE-EXISTING unmapped test-db warts our delisting shifted into view (violation sets byte-identical branch vs main).unit_tests/batch_manager/kvCacheManagerTest.cpp,kernels/rmsNormFp4QuantKernels.{h,cu}M.5 What does NOT need line-by-line review
test + the full OSS google-tests builds (1008/835/846 targets at successive heads)
libnvinfer-NEEDED readelf.("drives deleted engine path?"), not the deleted content.
gate exactly this class of error.
@coderabbitai summary
Description
Test Coverage
PR Checklist
Please review the following before submitting your PR:
PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.
PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.
Test cases are provided for new code paths (see test instructions)
If PR introduces API changes, an appropriate PR label is added - either
api-compatibleorapi-breaking. Forapi-breaking, includeBREAKINGin the PR title.Any new dependencies have been scanned for license and vulnerabilities
CODEOWNERS updated if ownership changes
Documentation updated as needed
Update tava architecture diagram if there is a significant design change in PR.
The reviewers assigned automatically/manually are appropriate for the PR.
Please check this after reviewing the above items as appropriate for this PR.
GitHub Bot Help
To see a list of available CI bot commands, please comment
/bot help.