Skip to content

[TRTLLM-14473][chore] Remove legacy TensorRT-backend tests, examples, and CI plumbing#16610

Open
Wanli-Jiang wants to merge 1 commit into
NVIDIA:mainfrom
Wanli-Jiang:user/williamj/trtllm-14027-tests-examples
Open

[TRTLLM-14473][chore] Remove legacy TensorRT-backend tests, examples, and CI plumbing#16610
Wanli-Jiang wants to merge 1 commit into
NVIDIA:mainfrom
Wanli-Jiang:user/williamj/trtllm-14027-tests-examples

Conversation

@Wanli-Jiang

@Wanli-Jiang Wanli-Jiang commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Features

Why this PR exists

Phase C removed the TensorRT engine backend itself (trtllm-build,
convert_checkpoint.py flows, ModelRunner*, tensorrt_llm.builder).
This PR removes the test wrappers, example scripts, and CI plumbing that
existed only to exercise that removed backend. Everything deleted here
falls into one of two buckets:

  1. Cannot run anymore — it invokes a command or imports a module that
    no longer exists (trtllm-build, examples/run.py, deleted model
    classes), or
  2. Cannot be reached anymore — it was scheduled only on the
    backend: tensorrt test-db buckets / -TensorRT- CI stages retired
    here, or referenced by nothing at all (verified by reference sweep).

Change groups

1. CI schedules / jenkins (CI-owner review requested)

Change Detail
Retire -TensorRT- stages All commented-out -TensorRT-Post-Merge stage rows, the backend=tensorrt mako branch, the TEST_BACKEND changeMap entry, and excludedBackends mentions removed from jenkins/L0_Test.groovy; the ("-TensorRT-", "tensorrt") pattern dropped from jenkins/scripts/cbts/blocks.py (kept in sync with the groovy map, hence in this PR, not the infra PR)
Delete dead backend: tensorrt buckets l0_a30.yml (−33), l0_dgx_h200.yml (−21), plus legacy subsets in l0_a10/h100/l40s
Re-home neutral coverage Backend-neutral tests moved off retired stages; remaining neutral buckets flipped to pytorch so parked coverage runs again (l0_a100, l0_b200, l0_dgx_h200 4-GPU, l0_l40s)
NEW stages A100X-PyTorch-Post-Merge-1 and L40S-PyTorch-Post-Merge-1 schedule the restored a100/l40s post-merge coverage — this is the main thing CI owners should eyeball
waives.txt 42 waives dropped for deleted/unscheduled tests (the AST validator requires waived tests to exist in an active list)

Note: the dead runPackageSanityCheck wheel-check removal is not in
this PR — it moved to the infra PR (TRTLLM-14027) since it is package
infra, uncoupled from test schedules.

2. Legacy engine-flow integration tests (~14k lines)

  • Deleted tests/integration/defs/examples/ wrappers — every test in
    them 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 two whisper
    validators, and run_llm_fp8_quant_llama_70b.py.
  • Pruned, not deleted: test_gpt.py (740→84 lines, keeps the live
    test_gpt_oss_20b_lora_torch), test_phi.py (drops the quantization
    engine test), test_e2e.py (drops test_gpt3_175b_1layers_build_only
    unscheduled and invokes trtllm-build).
  • Helper cascade in defs/common.py: convert_weights,
    quantize_data, prune_checkpoint, refit_model, find_tensorrt
    last consumers were the wrappers above. defs/perf/build.py (1,524
    lines) and test_perf.py's trtllm-build/build.py branches removed;
    the non-trtllm-bench build-script legs now raise RuntimeError so a
    future misconfiguration fails loudly.
  • 19 orphaned *_example_root fixtures removed across
    defs/conftest.py and triton_server/conftest.py. Verified: zero
    users, and no dynamic request.getfixturevalue(f"...") resolution
    exists anywhere in defs that could reach them.

3. Dormant example scripts (~6k lines)

All imported deleted ModelRunner*/builder surfaces or drove engine
flows, and were unreachable from CI:

  • examples/{run, summarize, utils, mmlu, eval_long_context}.py
  • examples/openai_triton/** (TRT plugin demos), examples/python_plugin/**
  • examples/models/contrib/sdxl/**, examples/llm-eval/lm-eval-harness/**
  • Engine-flow multimodal scripts (build_multimodal_engine.py, run.py,
    eval.py), qwenvl/**, qwen2audio/**
  • examples/ngram/run_dtm_ngram.py (READMEs rewritten for the PyTorch
    flow where a live section remains)

4. examples/ reference sweep (~4.5k lines)

Every path checked against tests, published docs, jenkins, and code
(three independent scan agents + manual verification; the parked CLI-flow
suite deliberately not counted as a consumer):

  • contrib — 9 of 10 dirs deleted: arctic, blip2 (redirect stub),
    chatglm-6b/2-6b/3-6b-32k, internlm, jais, skywork, smaug
    README/requirements-only legacy-flow dirs, zero references.
    hyperclovax stays (live PyTorch README linked from release notes).
  • core: granite/ and mixtral/ deleted (legacy-flow READMEs only);
    multimodal/ keeps the live Qwen-Image-Bench stub +
    qwen_image_bench_eval.py (used by live unittests) but drops
    utils.py, __init__.py, and 6 per-model requirements-*.txt;
    nemotron/ drops the Nemo-flow README_nemotron-3.md +
    requirements.txt (the three current PyTorch READMEs stay).
  • top level: generate_checkpoint_config.py (fed trtllm-build),
    generate_xgrammar_tokenizer_info.py (unreferenced; the live path
    calls _xgrammar_tokenizer_info() directly), hf_lora_convert.py
    (produced the removed .npy LoRA format), sample_weight_stripping/,
    cpp_library/, dora/, language_adapter/.

5. Small code prunes

  • tensorrt_llm/models/automodel.py: the decoding_mode
    isMedusa/isEagle branch — it mapped to MedusaForCausalLM /
    EagleForCausalLM TRT model classes deleted in Phase B, so the branch
    could only raise; no caller passes decoding_mode. PyTorch spec-dec
    does not use this path.
  • tensorrt_llm/_utils.py::supports_inflight_batching — same story.
  • Docs touch-ups: ci-overview.md, AutoDeploy testing_strategy.md,
    test-db README example refreshed to a real test id.

6. Additions (the +110)

  • TestQwen2_7BInstruct::test_tp2 ported to the PyTorch accuracy suite
    (test_llm_api_pytorch.py) + its qa/llm_function_core.txt entry.
    Currently skipped with reason: TP2 hangs in the AUTO custom
    allreduce on PCIe-only (all-SYS topology) nodes, and the LMHead
    AllReduce ignores allreduce_strategy, so the knob cannot work around
    it. Unskip once validated on NVLink or the lm_head strategy plumbing is
    fixed. (Two nvbug filings pending for the underlying defects.)

Deliberately KEPT

Item Why
accuracy/test_cli_flow.py + CliFlowAccuracyTestHarness User decision: retained for possible future reuse. Unscheduled and currently non-runnable (engine flow gone); collects cleanly; commit message records the decision
examples/infinitebench/ Dataset-prep dependency of the retained CLI-flow suite
examples/{longbench, opentelemetry, sparse_attention} Unreferenced but document current features — user decision to keep
examples/models/contrib/hyperclovax/ Live PyTorch README, linked from published release notes
benchmarks/prepare_dataset.py Not in this PR — kept as a shim in the python-cleanup PR (TRTLLM-14474)
Stale "TRT flow" sections inside live READMEs (hyperclovax, exaone) Trim-worthy but that is editing live docs, not deleting dead ones — left for doc owners

Validation

  • Collection: tests/integration/defs collects 4,225 tests on the
    rebased base, zero errors (was 4,207 pre-sweep; −1 deleted dead test,
    +19 upstream additions).
  • Hooks: full pre-commit passes, including the waives/test-list AST
    validator and the test-db config checks.
  • Cross-PR union: merging this branch with the infra
    (TRTLLM-14027), python-cleanup (TRTLLM-14474), and cpp-cleanup
    (TRTLLM-14475) branches onto origin/main is conflict-free and was
    verified to produce the intended combined tree.
  • Rebase note: the branch was rebased onto origin/main
    b8604c46ce; the waives.txt conflict was resolved as upstream's
    version minus exactly our 42 deletions
    (our change verified to be
    pure deletion).

Known follow-ups (not in this PR)

  • legacy-files.txt / ruff-baseline entries for files deleted here go
    stale — a mechanical scripts/legacy_utils.py prune-files +
    gen-configs pass runs after this and the python-cleanup PR merge
    (kept out of both to avoid cross-PR conflicts).
  • File two nvbugs from the test_tp2 investigation: (1) AUTO custom
    allreduce deadlock on all-SYS PCIe topology; (2) LMHead/Linear
    AllReduce constructed without model_config.allreduce_strategy.
  • Handoff to examples owners: the now-consumerless model example dirs'
    remaining trtllm-build README sections.

Summary by CodeRabbit

  • Documentation

    • Updated testing guidance and waiver examples to reflect current accuracy tests.
    • Simplified NGram speculative decoding documentation and clarified multimodal usage through supported serving and API workflows.
    • Removed outdated guides for retired model, plugin, evaluation, and deployment workflows.
  • Removed Features

    • Retired numerous legacy example scripts and integrations, including older multimodal, tokenizer, evaluation, plugin, and engine-building workflows.
  • Tests

    • Updated CI coverage and test selections for current PyTorch-based workflows.
    • Added coverage for Qwen TP2 behavior and large-token generation scenarios.

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-compatible or api-breaking. For api-breaking, include BREAKING in 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.

Comment thread jenkins/L0_Test.groovy
}


def runPackageSanityCheck(pipeline, wheel_path, reinstall_dependencies=false, cpver="cp312")

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure whether we need to keep this function or not.

If need to keep, we might need to update the example runs.

@Wanli-Jiang
Wanli-Jiang force-pushed the user/williamj/trtllm-14027-tests-examples branch from d3a833e to 6669d31 Compare July 20, 2026 09:01
@Wanli-Jiang
Wanli-Jiang marked this pull request as ready for review July 20, 2026 09:03
@Wanli-Jiang
Wanli-Jiang requested review from a team as code owners July 20, 2026 09:03
@Wanli-Jiang

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@xinhe-nv

xinhe-nv commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

@coderabbitai check tests/unittest/llmapi/apps, if there is any test that still uses tensorrt backend

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #60335 [ run ] triggered by Bot. Commit: 6669d31 Link to invocation

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR removes numerous legacy examples, plugins, model workflows, dependencies, and integration helpers. It updates CI backend selection, shifts test matrices toward PyTorch and LLM API coverage, adds a skipped TP2 accuracy test, and replaces selected documentation and waiver entries.

Changes

Legacy workflow and documentation cleanup

Layer / File(s) Summary
Documentation and example cleanup
docs/..., examples/...
Legacy multimodal, NGram, Triton lookup, and related example workflows are removed or redirected to current APIs; obsolete requirements and documentation entries are deleted.

CI and runtime changes

Layer / File(s) Summary
CI backend selection and stage sharding
jenkins/...
TensorRT stage-name mappings are removed from backend detection, and Jenkins stage definitions are updated for PyTorch sharding and post-merge coverage.
Runtime API simplification
tensorrt_llm/...
Inflight-batching engine detection and DecodingMode-based AutoModel architecture selection are removed.

Integration and test configuration

Layer / File(s) Summary
Integration infrastructure and runtime coverage
tests/integration/defs/...
Legacy conversion, quantization, example-root, and TensorRT performance-build helpers are removed; Phi and E2E tests use newer Torch or LLM API paths.
Test matrix and waiver updates
tests/integration/test_lists/...
Backend conditions, accuracy registrations, test examples, and waiver entries are updated for PyTorch, FMHA, Ray, KV-cache, and LLM API coverage.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested reviewers: chienchunhung

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately summarizes the main change: removing legacy TensorRT-backend tests, examples, and CI plumbing.
Description check ✅ Passed The PR explains the cleanup, CI migration, retained coverage, and validation, though the template’s Description/Test Coverage sections are left unfilled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@BowenFu BowenFu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — reviewed for over-deletion. Nothing the live PyTorch/AutoDeploy path or any scheduled test/CI stage depends on is removed: _utils.py's supports_inflight_batching is a TRT-engine-only helper with zero remaining importers (former callers all deleted here or in #16369), and the 42 dropped waives all target deleted example defs / de-scheduled TRT perf configs — no active pytorch/llmapi/disagg/moe waive was dropped, so the validator invariant holds.

Two non-blocking notes (dead code, not breakage):

  • runPackageSanityCheck is not actually deleted despite the PR description — it still lives in L0_Test.groovy (~:4373) and references deleted generate_checkpoint_config.py/run.py. Its call site is commented out so it's dead/unreachable, but the description is inaccurate.
  • The retained CliFlowAccuracyTestHarness now dangles on deleted summarize.py/eval_long_context.py (it's unscheduled — test_cli_flow is in no active list — so nothing breaks, but the harness is non-functional). Minor doc link rot in accuracy README + speculative-decoding.md too.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tests/integration/defs/examples/test_phi.py (1)

54-56: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Profiler key doesn't match the test name.

ci_profiler.start/stop is keyed on "test_llm_torch_multi_lora_support" (the shared helper's name) rather than this test's own name, unlike the analogous new test in test_gpt.py which profiles under its own test name. If another Phi (or future) test reuses this helper, profiling data will collide under the same key.

🔧 Proposed fix
-    defs.ci_profiler.start("test_llm_torch_multi_lora_support")
+    defs.ci_profiler.start("test_phi_4_mini_instruct_with_bf16_lora_torch")
     test_llm_torch_multi_lora_support(hf_model_dir=llm_phi_model_root,
                                       llm_venv=llm_venv,
                                       num_loras=2,
                                       lora_rank=8,
                                       target_hf_modules=["qkv_proj"],
                                       target_trtllm_modules=["attn_qkv"],
                                       zero_lora_weights=True,
                                       tensor_parallel_size=1)
-    defs.ci_profiler.stop("test_llm_torch_multi_lora_support")
+    defs.ci_profiler.stop("test_phi_4_mini_instruct_with_bf16_lora_torch")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/integration/defs/examples/test_phi.py` around lines 54 - 56, Update the
profiler key passed to ci_profiler.start in the Phi test to use that test's own
function name rather than the shared test_llm_torch_multi_lora_support helper
name, and ensure the corresponding stop call uses the same key.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/source/features/auto_deploy/advanced/testing_strategy.md`:
- Around line 120-121: Update the testing strategy example around the documented
registration format so the modeling_llama entry is either a concrete fully
qualified test node ID or is explicitly identified as a command-style selector
supported by CI YAML. Keep the existing individual test-case example unchanged
and ensure the examples match the format described in the surrounding
documentation.

In `@tests/integration/defs/accuracy/test_llm_api_pytorch.py`:
- Around line 4385-4396: Remove the unconditional pytest.skip from test_tp2, or
replace it with a topology-aware skip that allows execution on validated NVLink
platforms while excluding unsupported PCIe-only topologies. Also remove the
test_tp2 entry from tests/integration/test_lists/qa/llm_function_core.txt until
the test is executable in QA.

---

Outside diff comments:
In `@tests/integration/defs/examples/test_phi.py`:
- Around line 54-56: Update the profiler key passed to ci_profiler.start in the
Phi test to use that test's own function name rather than the shared
test_llm_torch_multi_lora_support helper name, and ensure the corresponding stop
call uses the same key.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b0e0665b-32db-490b-9b84-1f1c9fa2816c

📥 Commits

Reviewing files that changed from the base of the PR and between b8604c4 and 6669d31.

⛔ Files ignored due to path filters (3)
  • examples/models/core/qwen2audio/audio/glass-breaking-151256.mp3 is excluded by !**/*.mp3
  • examples/models/core/qwenvl/pics/1.png is excluded by !**/*.png
  • examples/models/core/qwenvl/pics/demo.jpeg is excluded by !**/*.jpeg
📒 Files selected for processing (149)
  • docs/source/developer-guide/ci-overview.md
  • docs/source/features/auto_deploy/advanced/testing_strategy.md
  • examples/cpp_library/CMakeLists.txt
  • examples/cpp_library/build.sh
  • examples/cpp_library/main.cpp
  • examples/cpp_library/tensorrt_llm_libutils.h
  • examples/dora/README.md
  • examples/dora/normalize_weights.py
  • examples/eval_long_context.py
  • examples/generate_checkpoint_config.py
  • examples/generate_xgrammar_tokenizer_info.py
  • examples/hf_lora_convert.py
  • examples/language_adapter/README.md
  • examples/llm-eval/lm-eval-harness/README.md
  • examples/llm-eval/lm-eval-harness/lm_eval_tensorrt_llm.py
  • examples/llm-eval/lm-eval-harness/requirements.txt
  • examples/mmlu.py
  • examples/models/contrib/arctic/README.md
  • examples/models/contrib/blip2/README.md
  • examples/models/contrib/chatglm-6b/README.md
  • examples/models/contrib/chatglm-6b/requirements.txt
  • examples/models/contrib/chatglm-6b/tokenization_chatglm.py
  • examples/models/contrib/chatglm2-6b/README.md
  • examples/models/contrib/chatglm2-6b/requirements.txt
  • examples/models/contrib/chatglm2-6b/tokenization_chatglm.py
  • examples/models/contrib/chatglm3-6b-32k/README.md
  • examples/models/contrib/chatglm3-6b-32k/requirements.txt
  • examples/models/contrib/chatglm3-6b-32k/tokenization_chatglm.py
  • examples/models/contrib/internlm/.gitignore
  • examples/models/contrib/internlm/README.md
  • examples/models/contrib/internlm/requirements.txt
  • examples/models/contrib/jais/README.md
  • examples/models/contrib/jais/requirements.txt
  • examples/models/contrib/sdxl/README.md
  • examples/models/contrib/sdxl/build_sdxl_unet.py
  • examples/models/contrib/sdxl/pipeline_stable_diffusion_xl.py
  • examples/models/contrib/sdxl/run_sdxl.py
  • examples/models/contrib/skywork/README.md
  • examples/models/contrib/skywork/requirements.txt
  • examples/models/contrib/smaug/README.md
  • examples/models/contrib/smaug/requirements.txt
  • examples/models/core/granite/README.md
  • examples/models/core/mixtral/README.md
  • examples/models/core/mixtral/requirements.txt
  • examples/models/core/multimodal/README.md
  • examples/models/core/multimodal/__init__.py
  • examples/models/core/multimodal/build_multimodal_engine.py
  • examples/models/core/multimodal/eval.py
  • examples/models/core/multimodal/requirements-eclair.txt
  • examples/models/core/multimodal/requirements-internlm-xcomposer2.txt
  • examples/models/core/multimodal/requirements-llava_onevision.txt
  • examples/models/core/multimodal/requirements-qwen2vl.txt
  • examples/models/core/multimodal/requirements-vila.txt
  • examples/models/core/multimodal/run.py
  • examples/models/core/multimodal/utils.py
  • examples/models/core/nemotron/README_nemotron-3.md
  • examples/models/core/nemotron/requirements.txt
  • examples/models/core/qwen2audio/README.md
  • examples/models/core/qwen2audio/requirements.txt
  • examples/models/core/qwen2audio/run.py
  • examples/models/core/qwen2audio/run_chat.py
  • examples/models/core/qwen2audio/utils.py
  • examples/models/core/qwenvl/README.md
  • examples/models/core/qwenvl/requirements.txt
  • examples/models/core/qwenvl/run.py
  • examples/models/core/qwenvl/run_chat.py
  • examples/models/core/qwenvl/show_pic.py
  • examples/models/core/qwenvl/vit_onnx_trt.py
  • examples/ngram/README.md
  • examples/ngram/run_dtm_ngram.py
  • examples/openai_triton/README.md
  • examples/openai_triton/manual_plugin/CMakeLists.txt
  • examples/openai_triton/manual_plugin/README.md
  • examples/openai_triton/manual_plugin/TritonFlashAttentionPlugin.cpp
  • examples/openai_triton/manual_plugin/TritonFlashAttentionPlugin.h
  • examples/openai_triton/manual_plugin/build.py
  • examples/openai_triton/manual_plugin/fmha_triton.py
  • examples/openai_triton/manual_plugin/plugin.py
  • examples/openai_triton/manual_plugin/run.py
  • examples/openai_triton/manual_plugin/tritonPlugins.cpp
  • examples/openai_triton/plugin_autogen/README.md
  • examples/openai_triton/plugin_autogen/build_engine.py
  • examples/openai_triton/plugin_autogen/kernel_config.py
  • examples/openai_triton/plugin_autogen/run_engine.py
  • examples/python_plugin/README.md
  • examples/python_plugin/build_lookup.py
  • examples/python_plugin/plugin_lib/__init__.py
  • examples/python_plugin/plugin_lib/lookup_kernel.py
  • examples/python_plugin/plugin_lib/lookup_plugin.py
  • examples/python_plugin/run_lookup.py
  • examples/run.py
  • examples/sample_weight_stripping/README.md
  • examples/summarize.py
  • examples/utils.py
  • jenkins/L0_Test.groovy
  • jenkins/scripts/cbts/blocks.py
  • tensorrt_llm/_utils.py
  • tensorrt_llm/models/automodel.py
  • tests/integration/defs/accuracy/test_llm_api_pytorch.py
  • tests/integration/defs/common.py
  • tests/integration/defs/conftest.py
  • tests/integration/defs/examples/run_llm_fp8_quant_llama_70b.py
  • tests/integration/defs/examples/test_bert.py
  • tests/integration/defs/examples/test_bindings.py
  • tests/integration/defs/examples/test_chatglm.py
  • tests/integration/defs/examples/test_commandr.py
  • tests/integration/defs/examples/test_draft_target_model.py
  • tests/integration/defs/examples/test_eagle.py
  • tests/integration/defs/examples/test_enc_dec.py
  • tests/integration/defs/examples/test_flux.py
  • tests/integration/defs/examples/test_gpt.py
  • tests/integration/defs/examples/test_gptj.py
  • tests/integration/defs/examples/test_granite.py
  • tests/integration/defs/examples/test_internlm.py
  • tests/integration/defs/examples/test_llama.py
  • tests/integration/defs/examples/test_mamba.py
  • tests/integration/defs/examples/test_medusa.py
  • tests/integration/defs/examples/test_mistral.py
  • tests/integration/defs/examples/test_mixtral.py
  • tests/integration/defs/examples/test_multimodal.py
  • tests/integration/defs/examples/test_nemotron.py
  • tests/integration/defs/examples/test_nemotron_nas.py
  • tests/integration/defs/examples/test_ngram.py
  • tests/integration/defs/examples/test_openai.py
  • tests/integration/defs/examples/test_phi.py
  • tests/integration/defs/examples/test_qwen.py
  • tests/integration/defs/examples/test_qwen2audio.py
  • tests/integration/defs/examples/test_qwenvl.py
  • tests/integration/defs/examples/test_redrafter.py
  • tests/integration/defs/examples/test_whisper.py
  • tests/integration/defs/examples/validate_whisper_beam_logits.py
  • tests/integration/defs/examples/validate_whisper_log_probs_determinism.py
  • tests/integration/defs/perf/build.py
  • tests/integration/defs/perf/test_perf.py
  • tests/integration/defs/test_e2e.py
  • tests/integration/defs/triton_server/conftest.py
  • tests/integration/test_lists/qa/README.md
  • tests/integration/test_lists/qa/llm_function_core.txt
  • tests/integration/test_lists/test-db/README.md
  • tests/integration/test_lists/test-db/l0_a10.yml
  • tests/integration/test_lists/test-db/l0_a100.yml
  • tests/integration/test_lists/test-db/l0_a30.yml
  • tests/integration/test_lists/test-db/l0_b200.yml
  • tests/integration/test_lists/test-db/l0_dgx_h200.yml
  • tests/integration/test_lists/test-db/l0_gb203.yml
  • tests/integration/test_lists/test-db/l0_gh200.yml
  • tests/integration/test_lists/test-db/l0_h100.yml
  • tests/integration/test_lists/test-db/l0_l40s.yml
  • tests/integration/test_lists/waives.txt
💤 Files with no reviewable changes (111)
  • examples/openai_triton/README.md
  • examples/llm-eval/lm-eval-harness/requirements.txt
  • examples/openai_triton/manual_plugin/README.md
  • examples/llm-eval/lm-eval-harness/README.md
  • examples/models/contrib/chatglm3-6b-32k/requirements.txt
  • tests/integration/defs/examples/test_bindings.py
  • examples/models/contrib/internlm/requirements.txt
  • tests/integration/defs/examples/test_gptj.py
  • examples/models/contrib/skywork/README.md
  • examples/python_plugin/plugin_lib/lookup_kernel.py
  • examples/openai_triton/plugin_autogen/README.md
  • examples/models/core/multimodal/build_multimodal_engine.py
  • examples/models/contrib/jais/README.md
  • examples/models/contrib/jais/requirements.txt
  • examples/models/core/mixtral/README.md
  • examples/models/core/qwenvl/requirements.txt
  • examples/cpp_library/CMakeLists.txt
  • examples/models/contrib/chatglm-6b/requirements.txt
  • examples/models/core/mixtral/requirements.txt
  • examples/models/contrib/chatglm2-6b/requirements.txt
  • examples/models/core/multimodal/requirements-vila.txt
  • examples/models/contrib/chatglm2-6b/README.md
  • examples/cpp_library/build.sh
  • examples/models/core/multimodal/requirements-eclair.txt
  • examples/models/core/nemotron/README_nemotron-3.md
  • examples/models/contrib/chatglm3-6b-32k/README.md
  • examples/openai_triton/plugin_autogen/kernel_config.py
  • examples/models/contrib/smaug/README.md
  • examples/dora/README.md
  • examples/models/contrib/internlm/README.md
  • examples/models/contrib/chatglm2-6b/tokenization_chatglm.py
  • examples/python_plugin/plugin_lib/init.py
  • examples/models/core/qwenvl/README.md
  • examples/models/core/multimodal/requirements-internlm-xcomposer2.txt
  • examples/models/contrib/chatglm-6b/README.md
  • tests/integration/defs/examples/test_bert.py
  • examples/generate_xgrammar_tokenizer_info.py
  • examples/models/core/qwen2audio/README.md
  • examples/models/core/granite/README.md
  • examples/sample_weight_stripping/README.md
  • examples/models/core/multimodal/utils.py
  • tests/integration/defs/examples/test_flux.py
  • examples/models/core/qwen2audio/requirements.txt
  • tests/integration/defs/examples/run_llm_fp8_quant_llama_70b.py
  • examples/models/contrib/sdxl/build_sdxl_unet.py
  • examples/openai_triton/manual_plugin/build.py
  • examples/models/core/qwen2audio/run_chat.py
  • examples/openai_triton/manual_plugin/CMakeLists.txt
  • examples/models/contrib/internlm/.gitignore
  • tests/integration/defs/examples/test_medusa.py
  • examples/models/core/qwenvl/vit_onnx_trt.py
  • examples/python_plugin/run_lookup.py
  • examples/openai_triton/manual_plugin/tritonPlugins.cpp
  • examples/models/contrib/arctic/README.md
  • examples/models/contrib/sdxl/README.md
  • tests/integration/defs/examples/test_chatglm.py
  • examples/models/contrib/sdxl/run_sdxl.py
  • examples/language_adapter/README.md
  • tests/integration/defs/examples/test_eagle.py
  • examples/models/contrib/skywork/requirements.txt
  • examples/models/contrib/chatglm-6b/tokenization_chatglm.py
  • examples/ngram/run_dtm_ngram.py
  • examples/models/core/qwenvl/show_pic.py
  • examples/models/core/nemotron/requirements.txt
  • examples/models/core/multimodal/requirements-llava_onevision.txt
  • examples/models/core/qwenvl/run_chat.py
  • examples/cpp_library/tensorrt_llm_libutils.h
  • examples/python_plugin/build_lookup.py
  • examples/models/core/qwen2audio/utils.py
  • examples/openai_triton/plugin_autogen/run_engine.py
  • examples/python_plugin/README.md
  • examples/generate_checkpoint_config.py
  • tests/integration/defs/examples/test_commandr.py
  • examples/run.py
  • examples/models/core/multimodal/run.py
  • examples/openai_triton/manual_plugin/fmha_triton.py
  • examples/hf_lora_convert.py
  • examples/models/contrib/chatglm3-6b-32k/tokenization_chatglm.py
  • examples/models/core/multimodal/eval.py
  • tests/integration/defs/examples/test_mamba.py
  • examples/mmlu.py
  • examples/cpp_library/main.cpp
  • examples/eval_long_context.py
  • examples/models/core/multimodal/requirements-qwen2vl.txt
  • examples/models/contrib/sdxl/pipeline_stable_diffusion_xl.py
  • tests/integration/defs/examples/test_granite.py
  • examples/models/contrib/blip2/README.md
  • tests/integration/defs/examples/test_internlm.py
  • examples/openai_triton/manual_plugin/TritonFlashAttentionPlugin.cpp
  • examples/openai_triton/manual_plugin/run.py
  • examples/dora/normalize_weights.py
  • examples/models/contrib/smaug/requirements.txt
  • tests/integration/defs/test_e2e.py
  • tests/integration/defs/examples/test_enc_dec.py
  • examples/openai_triton/manual_plugin/plugin.py
  • examples/utils.py
  • examples/openai_triton/plugin_autogen/build_engine.py
  • tests/integration/defs/examples/test_llama.py
  • examples/summarize.py
  • examples/llm-eval/lm-eval-harness/lm_eval_tensorrt_llm.py
  • examples/models/core/qwen2audio/run.py
  • tests/integration/test_lists/test-db/l0_a30.yml
  • examples/openai_triton/manual_plugin/TritonFlashAttentionPlugin.h
  • jenkins/scripts/cbts/blocks.py
  • tests/integration/defs/examples/test_draft_target_model.py
  • examples/models/core/qwenvl/run.py
  • examples/python_plugin/plugin_lib/lookup_plugin.py
  • tests/integration/test_lists/test-db/l0_dgx_h200.yml
  • tests/integration/test_lists/waives.txt
  • tests/integration/defs/conftest.py
  • tests/integration/defs/triton_server/conftest.py

Comment on lines +120 to +121
- accuracy/test_llm_api_pytorch.py::TestLlama3_1_8B::test_auto_dtype
- unittest/_torch/modeling -k "modeling_llama"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Align the example with the documented registration format.

Line 121 is a directory-level -k selector, not an individual fully qualified test case as described in Lines 113-115. Either use a concrete node ID or explicitly document that CI YAML also accepts command-style selectors.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/source/features/auto_deploy/advanced/testing_strategy.md` around lines
120 - 121, Update the testing strategy example around the documented
registration format so the modeling_llama entry is either a concrete fully
qualified test node ID or is explicitly identified as a command-style selector
supported by CI YAML. Keep the existing individual test-case example unchanged
and ensure the examples match the format described in the surrounding
documentation.

Comment on lines +4385 to +4396
@pytest.mark.skip(
reason="TP2 hangs in the AUTO custom allreduce on PCIe-only (all-SYS "
"topology) nodes; the LMHead AllReduce ignores allreduce_strategy and "
"always takes the AUTO path (tunable_allreduce), so the strategy knob "
"cannot work around it. Unskip once validated on an NVLink platform "
"or the lm_head strategy plumbing is fixed.")
@pytest.mark.skip_less_device(2)
def test_tp2(self):
with LLM(self.MODEL_PATH, tensor_parallel_size=2) as llm:
task = CnnDailymail(self.MODEL_NAME)
task.evaluate(llm,
extra_evaluator_kwargs=self.EXTRA_EVALUATOR_KWARGS)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Do not schedule an unconditionally skipped TP2 test. pytest.mark.skip prevents this test from providing any QA coverage, despite its new QA-list entry. Remove it from the list until it can run, or replace the unconditional skip with a topology-aware condition and validate it on a supported NVLink platform.

  • tests/integration/defs/accuracy/test_llm_api_pytorch.py#L4385-L4396: make the skip conditional on unsupported topology, or retain this as an unlisted placeholder.
  • tests/integration/test_lists/qa/llm_function_core.txt#L697-L697: remove the entry until the test is executable in QA.
📍 Affects 2 files
  • tests/integration/defs/accuracy/test_llm_api_pytorch.py#L4385-L4396 (this comment)
  • tests/integration/test_lists/qa/llm_function_core.txt#L697-L697
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/integration/defs/accuracy/test_llm_api_pytorch.py` around lines 4385 -
4396, Remove the unconditional pytest.skip from test_tp2, or replace it with a
topology-aware skip that allows execution on validated NVLink platforms while
excluding unsupported PCIe-only topologies. Also remove the test_tp2 entry from
tests/integration/test_lists/qa/llm_function_core.txt until the test is
executable in QA.

Source: Path instructions

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

scope="tests/unittest/llmapi/apps"

echo "== Files in scope =="
fd --type f . "$scope" | sort

echo
echo "== Structural outline =="
ast-grep outline "$scope" --items all --type class,function --view compact || true

echo
echo "== TensorRT/backend-related occurrences with context =="
rg -n -i -C 4 \
  -e '\btensorrt\b' \
  -e '\btrtllm\b' \
  -e '\btrt_llm\b' \
  -e '\bbackend\s*=' \
  -e '\bbackend\s*:' \
  -e '\bbackend\b' \
  "$scope" || true

echo
echo "== Python imports/calls that may configure backend =="
ast-grep run --lang python --pattern 'LLM($$$)' "$scope" || true
ast-grep run --lang python --pattern '$OBJ = LLM($$$)' "$scope" || true

Length of output: 66941


🏁 Script executed:

#!/bin/bash
set -euo pipefail

scope="tests/unittest/llmapi/apps"

echo "== Exact/near-exact legacy backend tokens in Python source =="
python3 - <<'PY'
import ast
from pathlib import Path

root = Path("tests/unittest/llmapi/apps")
for path in sorted(root.rglob("*.py")):
    try:
        tree = ast.parse(path.read_text())
    except SyntaxError as exc:
        print(f"{path}:{exc.lineno}: syntax error: {exc}")
        continue
    for node in ast.walk(tree):
        if isinstance(node, ast.Constant) and isinstance(node.value, str):
            value = node.value.lower()
            if "tensorrt" in value or value in {"trt", "trtllm"}:
                print(f"{path}:{node.lineno}: {node.value!r}")
PY

echo
echo "== All backend fixture parameterizations and server CLI construction =="
rg -n -i -C 3 \
  -e '`@pytest`\.fixture\([^)]*params\s*=' \
  -e 'pytest\.mark\.parametrize\([^)]*backend' \
  -e '["'\'']--backend["'\'']' \
  -e 'backend\s*==|backend\s*!=' \
  "$scope" -g '*.py' || true

echo
echo "== Parent-level pytest fixtures/configuration that could supply a backend =="
fd --type f --glob 'conftest.py' tests/unittest/llmapi | sort | while read -r file; do
  echo "--- $file"
  rg -n -i -C 3 -e '\btensorrt\b' -e '\bbackend\b' "$file" || true
done

echo
echo "== Focused declarations for backend fixture parameters =="
rg -n -i -U -C 2 \
  '`@pytest`\.fixture\([\s\S]{0,250}?params\s*=\s*\[[^\]]+\][\s\S]{0,150}?def backend\b' \
  "$scope" -g '*.py' || true

Length of output: 34786


@xinhe-nv I found no tests in tests/unittest/llmapi/apps that still use --backend tensorrt or otherwise select the retired TensorRT backend.

All local backend fixtures are constrained to pytorch, and direct server launches likewise explicitly use pytorch where a backend is supplied. I also checked parent tests/unittest/llmapi fixture configuration; it does not inject a TensorRT backend.

The only stale backend-related item is a comment in _test_openai_reasoning.py referring to the old “TRT backend” behavior. It does not affect execution, since that module’s backend values no longer include TensorRT.

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #60335 [ run ] completed with state SUCCESS. Commit: 6669d31
/LLM/main/L0_MergeRequest_PR pipeline #48679 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

… 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>
@Wanli-Jiang
Wanli-Jiang force-pushed the user/williamj/trtllm-14027-tests-examples branch from 6669d31 to 1913f7a Compare July 21, 2026 03:31
@Wanli-Jiang

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #60561 [ run ] triggered by Bot. Commit: 1913f7a Link to invocation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants