Skip to content

[TRTLLM-12173][tests] Add E2E accuracy test for nano v3 omni#13616

Merged
2ez4bz merged 1 commit into
NVIDIA:mainfrom
2ez4bz:dev-omni-tests
May 7, 2026
Merged

[TRTLLM-12173][tests] Add E2E accuracy test for nano v3 omni#13616
2ez4bz merged 1 commit into
NVIDIA:mainfrom
2ez4bz:dev-omni-tests

Conversation

@2ez4bz
Copy link
Copy Markdown
Collaborator

@2ez4bz 2ez4bz commented Apr 29, 2026

Description

As title states.

Test Coverage

Added new E2E MMMU accuracy test for BF16 / FP8 / NVFP4.

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)

  • 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.

Summary by CodeRabbit

  • New Features

    • Extended multimodal model testing support for Nemotron-3-Nano-Omni models across BF16, FP8, and NVFP4 quantization configurations.
  • Tests

    • Added comprehensive accuracy test coverage for multimodal models on H100 and B200 GPUs with multiple precision configurations.

@2ez4bz 2ez4bz requested review from a team as code owners April 29, 2026 17:13
@2ez4bz 2ez4bz requested review from moraxu and tijyojwad April 29, 2026 17:13
@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented Apr 29, 2026

/bot help

@github-actions
Copy link
Copy Markdown

GitHub Bot Help

/bot [-h] ['run', 'kill', 'skip', 'reuse-pipeline'] ...

Provide a user friendly way for developers to interact with a Jenkins server.

Run /bot [-h|--help] to print this help message.

See details below for each supported subcommand.

Details

run [--reuse-test (optional)pipeline-id --disable-fail-fast --skip-test --stage-list "A10-PyTorch-1, xxx" --gpu-type "A30, H100_PCIe" --test-backend "pytorch, cpp" --add-multi-gpu-test --only-multi-gpu-test --disable-multi-gpu-test --post-merge --extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx" --detailed-log --debug(experimental) --high-priority]

Launch build/test pipelines. All previously running jobs will be killed.

--reuse-test (optional)pipeline-id (OPTIONAL) : Allow the new pipeline to reuse build artifacts and skip successful test stages from a specified pipeline or the last pipeline if no pipeline-id is indicated. If the Git commit ID has changed, this option will be always ignored. The DEFAULT behavior of the bot is to reuse build artifacts and successful test results from the last pipeline.

--disable-reuse-test (OPTIONAL) : Explicitly prevent the pipeline from reusing build artifacts and skipping successful test stages from a previous pipeline. Ensure that all builds and tests are run regardless of previous successes.

--disable-fail-fast (OPTIONAL) : Disable fail fast on build/tests/infra failures.

--skip-test (OPTIONAL) : Skip all test stages, but still run build stages, package stages and sanity check stages. Note: Does NOT update GitHub check status.

--stage-list "A10-PyTorch-1, xxx" (OPTIONAL) : Only run the specified test stages. Supports wildcard * for pattern matching (e.g., "*PerfSanity*" matches all stages containing PerfSanity). Examples: "A10-PyTorch-1, xxx", "PerfSanity". Note: Does NOT update GitHub check status.

--gpu-type "A30, H100_PCIe" (OPTIONAL) : Only run the test stages on the specified GPU types. Examples: "A30, H100_PCIe". Note: Does NOT update GitHub check status.

--test-backend "pytorch, cpp" (OPTIONAL) : Skip test stages which don't match the specified backends. Only support [pytorch, cpp, tensorrt, triton]. Examples: "pytorch, cpp" (does not run test stages with tensorrt or triton backend). Note: Does NOT update GitHub pipeline status.

--only-multi-gpu-test (OPTIONAL) : Only run the multi-GPU tests. Note: Does NOT update GitHub check status.

--disable-multi-gpu-test (OPTIONAL) : Disable the multi-GPU tests. Note: Does NOT update GitHub check status.

--add-multi-gpu-test (OPTIONAL) : Force run the multi-GPU tests in addition to running L0 pre-merge pipeline.

--post-merge (OPTIONAL) : Run the L0 post-merge pipeline instead of the ordinary L0 pre-merge pipeline.

--extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx" (OPTIONAL) : Run the ordinary L0 pre-merge pipeline and specified test stages. Supports wildcard * for pattern matching. Examples: --extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx", --extra-stage "Post-Merge".

--detailed-log (OPTIONAL) : Enable flushing out all logs to the Jenkins console. This will significantly increase the log volume and may slow down the job.

--debug (OPTIONAL) : Experimental feature. Enable access to the CI container for debugging purpose. Note: Specify exactly one stage in the stage-list parameter to access the appropriate container environment. Note: Does NOT update GitHub check status.

--high-priority (OPTIONAL) : Run the pipeline with high priority. This option is restricted to authorized users only and will route the job to a high-priority queue.

kill

kill

Kill all running builds associated with pull request.

skip

skip --comment COMMENT

Skip testing for latest commit on pull request. --comment "Reason for skipping build/test" is required. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break.

reuse-pipeline

reuse-pipeline

Reuse a previous pipeline to validate current commit. This action will also kill all currently running builds associated with the pull request. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break.

@2ez4bz 2ez4bz changed the title [TRTLLM-12173] Add E2E accuracy test for nano v3 omni [TRTLLM-12173][tests] Add E2E accuracy test for nano v3 omni Apr 29, 2026
@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented Apr 29, 2026

/bot run

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 29, 2026

📝 Walkthrough

Walkthrough

Extends multimodal LLM evaluation by modifying MultimodalLmEvalWrapper to forward additional parameters (chat_template_kwargs, model_type, is_force_single_image) to the base class constructor. Introduces a new test suite for Nemotron-3-Nano-Omni models across BF16, FP8, and NVFP4 quantization configurations with platform-specific GPU constraints and deterministic sampling settings.

Changes

Cohort / File(s) Summary
Wrapper Parameter Forwarding
tensorrt_llm/evaluate/lm_eval.py
Modified MultimodalLmEvalWrapper.__init__ to explicitly pass chat_template_kwargs, model_type, and is_force_single_image to base class constructor alongside existing parameters.
Model Reference Documentation
tests/integration/defs/accuracy/references/mmmu.yaml
Updated MMMU test comments, broadened Nemotron model specification, and added accuracy reference entries for Nemotron-3-Nano-Omni-30B-A3B-Reasoning with FP8 and NVFP4 quantization variants.
Nemotron Model Test Suite
tests/integration/defs/accuracy/test_llm_api_pytorch_multimodal.py
Added TestNanoV3Omni class with parametrized test covering BF16, FP8, and NVFP4 configurations, deterministic sampling, chunked prefill optimization, and GPU-generation-specific skip markers.
Test Selection Lists
tests/integration/test_lists/qa/llm_function_core.txt, tests/integration/test_lists/test-db/l0_b200.yml, tests/integration/test_lists/test-db/l0_h100.yml
Added TestNanoV3Omni::test_auto_dtype test entries for BF16, FP8, and NVFP4 variants across multiple GPU-specific test selection profiles (QA core, B200, H100).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The description lacks substantial detail; it states 'As title states' instead of explaining the purpose, implementation, and test coverage comprehensively. Expand the description section to explain what the test does, why it's needed, the test configurations (BF16/FP8/NVFP4), and implementation details beyond just repeating the title.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarizes the main change: adding an end-to-end accuracy test for the nano v3 omni model.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Review rate limit: 9/10 reviews remaining, refill in 6 minutes.

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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tests/integration/defs/accuracy/references/mmmu.yaml`:
- Line 25: Remove the unresolved merge-time question comment "# Can this be
removed?" from the canonical reference data and either delete the comment
entirely or replace it with a clear, actionable placeholder linking to a tracked
issue (e.g., "TODO: remove after ISSUE-1234 - <issue URL>") so the file contains
no ambiguity; update the corresponding reference entry so it remains valid and
commit the change.

In `@tests/integration/defs/accuracy/test_llm_api_pytorch_multimodal.py`:
- Line 444: The placeholder comment "# Note: these need to be changed to refer
to the models on scratch before merging." is an outstanding pre-merge TODO and
must be resolved: either replace the comment with the actual scratch model
identifiers used in this test (update the model name strings referenced in the
test setup/fixtures so tests point to the correct models) or remove the note and
add a concise tracked-issue reference (e.g., "TODO: track in ISSUE-xxx") if the
change will be done later; locate the placeholder comment in
tests/integration/defs/accuracy/test_llm_api_pytorch_multimodal.py and update
the surrounding test fixture/model variables (the test's model name constants)
accordingly so no pre-merge action item remains.
- Around line 445-480: MODEL_PARAMS is defined as a mutable list (and other
nearby mutable containers) which triggers RUF012; change those to immutable
containers by replacing the list with a tuple of pytest.param entries and
convert any mutable dict-like configs to immutable mappings (e.g.,
types.MappingProxyType or frozen dataclass/tuple) so tests cannot mutate shared
state; update the definition of MODEL_PARAMS and any related config holders
(referencing MODEL_PARAMS and KvCacheConfig usages) to use tuple/immutable
mapping equivalents and ensure all callers expecting sequence still work with a
tuple.
🪄 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: 8fe1b4d6-64f6-4142-8fb1-070f603fe3d9

📥 Commits

Reviewing files that changed from the base of the PR and between 3b7af1c and 5b4a104.

📒 Files selected for processing (6)
  • tensorrt_llm/evaluate/lm_eval.py
  • tests/integration/defs/accuracy/references/mmmu.yaml
  • tests/integration/defs/accuracy/test_llm_api_pytorch_multimodal.py
  • tests/integration/test_lists/qa/llm_function_core.txt
  • tests/integration/test_lists/test-db/l0_b200.yml
  • tests/integration/test_lists/test-db/l0_h100.yml

Comment thread tests/integration/defs/accuracy/references/mmmu.yaml Outdated
Comment thread tests/integration/defs/accuracy/test_llm_api_pytorch_multimodal.py Outdated
Comment thread tests/integration/defs/accuracy/test_llm_api_pytorch_multimodal.py Outdated
@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented Apr 29, 2026

/bot kill

Comment thread tests/integration/defs/accuracy/test_llm_api_pytorch_multimodal.py Outdated
Comment thread tests/integration/defs/accuracy/test_llm_api_pytorch_multimodal.py
@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46194 [ run ] triggered by Bot. Commit: 5b4a104 Link to invocation

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46197 [ kill ] triggered by Bot. Commit: 5b4a104 Link to invocation

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46194 [ run ] completed with state ABORTED. Commit: 5b4a104

Link to invocation

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46197 [ kill ] completed with state SUCCESS. Commit: 5b4a104
Successfully killed previous jobs for commit 5b4a104

Link to invocation

@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented Apr 29, 2026

/bot run

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46204 [ run ] triggered by Bot. Commit: 76688c5 Link to invocation

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46204 [ run ] completed with state SUCCESS. Commit: 76688c5
/LLM/main/L0_MergeRequest_PR pipeline #36317 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

@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented Apr 29, 2026

/bot run --disable-fail-fast

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46226 [ run ] triggered by Bot. Commit: 76688c5 Link to invocation

@xinhe-nv
Copy link
Copy Markdown
Collaborator

xinhe-nv commented Apr 30, 2026

@coderabbitai review the code as a QA engineer.

@coderabbitai

This comment was marked as resolved.

@coderabbitai

This comment was marked as resolved.

Comment thread tests/integration/defs/accuracy/references/mmmu.yaml
@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46744 [ run ] completed with state SUCCESS. Commit: bee433d
/LLM/main/L0_MergeRequest_PR pipeline #36774 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

Link to invocation

@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented May 5, 2026

/bot run

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46833 [ run ] triggered by Bot. Commit: bee433d Link to invocation

@2ez4bz 2ez4bz force-pushed the dev-omni-tests branch from bee433d to 6ca6de5 Compare May 5, 2026 21:06
@2ez4bz 2ez4bz requested review from a team as code owners May 5, 2026 21:06
@2ez4bz 2ez4bz requested review from EmmaQiaoCh and yuanjingx87 May 5, 2026 21:06
@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented May 5, 2026

/bot help

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

GitHub Bot Help

/bot [-h] ['run', 'kill', 'skip', 'reuse-pipeline'] ...

Provide a user friendly way for developers to interact with a Jenkins server.

Run /bot [-h|--help] to print this help message.

See details below for each supported subcommand.

Details

run [--reuse-test (optional)pipeline-id --disable-fail-fast --skip-test --stage-list "A10-PyTorch-1, xxx" --gpu-type "A30, H100_PCIe" --test-backend "pytorch, cpp" --add-multi-gpu-test --only-multi-gpu-test --disable-multi-gpu-test --post-merge --extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx" --detailed-log --debug(experimental) --high-priority]

Launch build/test pipelines. All previously running jobs will be killed.

--reuse-test (optional)pipeline-id (OPTIONAL) : Allow the new pipeline to reuse build artifacts and skip successful test stages from a specified pipeline or the last pipeline if no pipeline-id is indicated. If the Git commit ID has changed, this option will be always ignored. The DEFAULT behavior of the bot is to reuse build artifacts and successful test results from the last pipeline.

--disable-reuse-test (OPTIONAL) : Explicitly prevent the pipeline from reusing build artifacts and skipping successful test stages from a previous pipeline. Ensure that all builds and tests are run regardless of previous successes.

--disable-fail-fast (OPTIONAL) : Disable fail fast on build/tests/infra failures.

--skip-test (OPTIONAL) : Skip all test stages, but still run build stages, package stages and sanity check stages. Note: Does NOT update GitHub check status.

--stage-list "A10-PyTorch-1, xxx" (OPTIONAL) : Only run the specified test stages. Supports wildcard * for pattern matching (e.g., "*PerfSanity*" matches all stages containing PerfSanity). Examples: "A10-PyTorch-1, xxx", "PerfSanity". Note: Does NOT update GitHub check status.

--gpu-type "A30, H100_PCIe" (OPTIONAL) : Only run the test stages on the specified GPU types. Examples: "A30, H100_PCIe". Note: Does NOT update GitHub check status.

--test-backend "pytorch, cpp" (OPTIONAL) : Skip test stages which don't match the specified backends. Only support [pytorch, cpp, tensorrt, triton]. Examples: "pytorch, cpp" (does not run test stages with tensorrt or triton backend). Note: Does NOT update GitHub pipeline status.

--only-multi-gpu-test (OPTIONAL) : Only run the multi-GPU tests. Note: Does NOT update GitHub check status.

--disable-multi-gpu-test (OPTIONAL) : Disable the multi-GPU tests. Note: Does NOT update GitHub check status.

--add-multi-gpu-test (OPTIONAL) : Force run the multi-GPU tests in addition to running L0 pre-merge pipeline.

--post-merge (OPTIONAL) : Run the L0 post-merge pipeline instead of the ordinary L0 pre-merge pipeline.

--extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx" (OPTIONAL) : Run the ordinary L0 pre-merge pipeline and specified test stages. Supports wildcard * for pattern matching. Examples: --extra-stage "H100_PCIe-TensorRT-Post-Merge-1, xxx", --extra-stage "Post-Merge".

--detailed-log (OPTIONAL) : Enable flushing out all logs to the Jenkins console. This will significantly increase the log volume and may slow down the job.

--debug (OPTIONAL) : Experimental feature. Enable access to the CI container for debugging purpose. Note: Specify exactly one stage in the stage-list parameter to access the appropriate container environment. Note: Does NOT update GitHub check status.

--high-priority (OPTIONAL) : Run the pipeline with high priority. This option is restricted to authorized users only and will route the job to a high-priority queue.

kill

kill

Kill all running builds associated with pull request.

skip

skip --comment COMMENT

Skip testing for latest commit on pull request. --comment "Reason for skipping build/test" is required. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break.

reuse-pipeline

reuse-pipeline

Reuse a previous pipeline to validate current commit. This action will also kill all currently running builds associated with the pull request. IMPORTANT NOTE: This is dangerous since lack of user care and validation can cause top of tree to break.

@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented May 5, 2026

/bot run --stage-list "Build-Docker-Images"

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46863 [ run ] triggered by Bot. Commit: 6ca6de5 Link to invocation

@2ez4bz 2ez4bz force-pushed the dev-omni-tests branch from 6ca6de5 to eac4f9c Compare May 5, 2026 23:48
@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented May 5, 2026

/bot run --stage-list "Build-Docker-Images"

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46876 [ run ] triggered by Bot. Commit: eac4f9c Link to invocation

@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented May 6, 2026

/bot run --stage-list "Build-Docker-Images"

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46909 [ run ] triggered by Bot. Commit: eac4f9c Link to invocation

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #46909 [ run ] completed with state FAILURE. Commit: eac4f9c
/LLM/main/L0_MergeRequest_PR pipeline #36916 (Partly Tested) 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

@2ez4bz 2ez4bz force-pushed the dev-omni-tests branch from eac4f9c to fa4837c Compare May 6, 2026 15:56
@2ez4bz 2ez4bz requested a review from a team as a code owner May 6, 2026 15:56
@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented May 6, 2026

/bot run

1 similar comment
@tburt-nv
Copy link
Copy Markdown
Collaborator

tburt-nv commented May 6, 2026

/bot run

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #47029 [ run ] triggered by Bot. Commit: fa4837c Link to invocation

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #47029 [ run ] completed with state SUCCESS. Commit: fa4837c
/LLM/main/L0_MergeRequest_PR pipeline #37004 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

Signed-off-by: William Zhang <133824995+2ez4bz@users.noreply.github.com>
@2ez4bz 2ez4bz force-pushed the dev-omni-tests branch from fa4837c to c9f462d Compare May 6, 2026 23:21
@2ez4bz
Copy link
Copy Markdown
Collaborator Author

2ez4bz commented May 6, 2026

/bot run

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #47046 [ run ] triggered by Bot. Commit: c9f462d Link to invocation

@tensorrt-cicd
Copy link
Copy Markdown
Collaborator

PR_Github #47046 [ run ] completed with state SUCCESS. Commit: c9f462d
/LLM/main/L0_MergeRequest_PR pipeline #37019 completed with status: 'SUCCESS'

CI Report

Link to invocation

@2ez4bz 2ez4bz merged commit 89b9ec0 into NVIDIA:main May 7, 2026
6 checks passed
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.

7 participants