[TRTLLM-13696][test] Part2.1: Migrate CPU only tests - runtime - #16498
Conversation
|
/bot run --stage-list "CPU-Generic-x86-1, CPU-Generic-arm-1" --disable-fail-fast |
|
PR_Github #59698 [ run ] triggered by Bot. Commit: |
|
PR_Github #59698 [ run ] completed with state
|
b8c05bf to
f4d41dd
Compare
|
/bot run --stage-list "CPU-Generic-x86-1, CPU-Generic-arm-1" --disable-fail-fast |
|
PR_Github #59921 [ run ] triggered by Bot. Commit: |
|
PR_Github #59921 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #59942 [ run ] triggered by Bot. Commit: |
|
PR_Github #59942 [ run ] completed with state
|
4ba739a to
e35de74
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #60333 [ run ] triggered by Bot. Commit: |
|
PR_Github #60333 [ run ] completed with state
|
e35de74 to
b137093
Compare
|
/bot run --stage-list "CPU-Generic-x86-1, CPU-Generic-arm-1" --disable-fail-fast |
|
PR_Github #60568 [ run ] triggered by Bot. Commit: |
|
PR_Github #60568 [ run ] completed with state
|
b137093 to
b4df526
Compare
|
/bot run --stage-list "CPU-Generic-x86-1, CPU-Generic-arm-1" --disable-fail-fast |
|
PR_Github #60668 [ run ] triggered by Bot. Commit: |
b4df526 to
6236369
Compare
|
/bot run --stage-list "CPU-Generic-x86-1, CPU-Generic-arm-1" --disable-fail-fast |
|
PR_Github #60675 [ run ] triggered by Bot. Commit: |
|
PR_Github #63320 [ run ] triggered by Bot. Commit: |
|
PR_Github #63320 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #63379 [ run ] triggered by Bot. Commit: |
|
PR_Github #63379 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #63431 [ run ] triggered by Bot. Commit: |
|
PR_Github #63431 [ run ] completed with state
|
Signed-off-by: Yuan Tong <13075180+tongyuantongyu@users.noreply.github.com>
Signed-off-by: Yuan Tong <13075180+tongyuantongyu@users.noreply.github.com>
6daf6e5 to
7409d59
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #63635 [ run ] triggered by Bot. Commit: |
|
PR_Github #63635 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #63703 [ run ] triggered by Bot. Commit: |
|
PR_Github #63703 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #63735 [ run ] triggered by Bot. Commit: |
|
PR_Github #63735 [ run ] completed with state |
NVIDIA#16498 moved tests/unittest/_torch/distributed from l0_dgx_h100 to l0_cpu, so this file now runs with zero GPUs. The three tests that build an AllReduce skip when the trtllm custom ops are not registered, since AllReduce.__init__ resolves torch.ops.trtllm.allreduce before any of the logic under test. test_lamport_skipped still needs a GPU because the workspace helper it drives allocates device tensors. Signed-off-by: pjdurden <prajjwalchittori1@gmail.com>
NVIDIA#16498 moved tests/unittest/_torch/distributed from l0_dgx_h100 to l0_cpu, so this file now runs with zero GPUs. The three tests that build an AllReduce skip when the trtllm custom ops are not registered, since AllReduce.__init__ resolves torch.ops.trtllm.allreduce before any of the logic under test. test_lamport_skipped still needs a GPU because the workspace helper it drives allocates device tensors. Signed-off-by: pjdurden <prajjwalchittori1@gmail.com>
Dev Engineer Review
--unittest-markexprfor stages whosestageNamestarts withCPU-now targetscpu_only(instead ofcpu_only and not disabled); non-CPU-*stages still usenot cpu_only.jenkins/L0_Test.groovysoCPU-Generic-x86-1andCPU-Generic-arm-1use thel0_cputest-db context (replacingl0_cpu_x86/l0_cpu_arm).test_unittests_v2mark-expression handling intests/integration/defs/test_unittests.py:-m <expr>already exists, it is rewritten to(<case_expr>) and (<unittest_markexpr>).-m <unittest_markexpr>is appended to the per-case pytestarg_list.dtypenormalization/validation fromBaseLlmArgsintensorrt_llm/llmapi/llm_args.pyby deleting thevalidate_dtypevalidator that previously rewrotedtype="auto"→"float16"on pre-SM80 CUDA and rejecteddtype="bfloat16"on those devices.pytest.mark.cpu_only(mostly module-levelpytestmark, plus a few decorator-level marks) and small determinism/compatibility tweaks where needed (e.g., async URL fetching switched toasyncio.run(), MPI/tiktoken cache fixtures added/adjusted for CPU determinism).tests/README.mdto clarify CPU-only CI guidance and the GPU-independent unit-test marking approach, and to improve the CI-bridge documentation (including updated wording and examples).Key risk areas to review:
cpu_only-marked test genuinely avoids CUDA/GPU-only code paths and doesn’t rely on prior GPU-dependentdtyperewrite/rejection behavior.l0_cputier plus theCPU-Generic-*→l0_cpumapping fully covers the intended runtime/unit migration.dtypeauto-rewrite/rejection doesn’t cause failures in tests expecting the old behavior.QA Engineer Review
Test-db / CI list changes (test-list-only scope)
tests/integration/test_lists/test-db/:l0_cpu.yml(newsystem_gpu_count: 0/cpu_onlytier;stage: pre_merge,backend: generic,orchestrator: mpi).l0_cpu_arm.ymlandl0_cpu_x86.yml.l0_a10.yml(reduced executor/llmapi module sets to match CPU-only migration targets).l0_a100.yml(removedunittest/llmapi/test_executor.py; splitunittest/llmapi/test_llm.pyinto part0 vs not-part0 runs).l0_b200.yml(removed specific tests from KV-cache stats and post-merge backend pytorch lists).l0_dgx_h100.yml(swap/adjust selected distributed and llmapi tests).l0_gh200.yml(update backend pytorch entry fromtest_llm_quant.pytounittest/bindings).l0_h100.yml(swap/remove a few Ray and post-merge PyTorch entries).Test code changes (outside
test_lists/)Touched test logic/selection mechanics and key determinism points:
tests/integration/defs/test_unittests.pytest_unittests_v2to merge-mmark expressions correctly into per-casearg_list.tests/unittest/llmapi/test_mpi_session.pyTLLM_DISABLE_MPI), and broadened CPU-only gating for specific tests.tests/unittest/inputs/test_url_validation.pyasyncio.run()and marked module CPU-only.tests/unittest/_torch/modules/dwdp/test_dwdp_mapping.pytensorrt_llm.mapping.mpi_disabledfor consistent behavior under CPU.tests/unittest/llmapi/test_kv_cache_dtype_override.pyget_llm_args(...)invocation to passgpus_per_node=1alongsidekv_cache_dtype="nvfp4"and marked CPU-only.Widespread marking-only changes:
Many modules under
tests/unittest/**now setpytestmark = pytest.mark.cpu_only(module-level or per-test decorators), restricting execution to CPU environments without otherwise changing assertions.Verdict (test code): needs follow-up (large CPU-only test surface expanded; requires confirming CI stability across the new
l0_cputier and theCPU-Generic-*mappings).Description
First wave of tests that can be moved to run without GPU.
Test Coverage
The 2 CPU pipelines.
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.