Repository navigation
[https://nvbugs/6939002][fix] Tell the agentx aiperf fork from PyPI aiperf before skipping its install - #20482
Conversation
…iperf before skipping its install
agentx_client.ensure_aiperf skips installing the pinned agentx-harness
build when aiperf_is_usable() succeeds. That check only imported `aiperf`
and checked the datasets major version. requirements-dev.txt pins the
upstream PyPI aiperf==0.8.0, which shares the import name, so once the
CI image's datasets became 4.x the check passed on the PyPI build. The
client then ran `aiperf profile --scenario inferencex-agentx-mvp`, which
PyPI aiperf rejects ("Unknown option: --scenario"), and the lane failed
before sending a request.
The check now also requires the fork's scenario registry to resolve the
inferencex-agentx-mvp scenario, and logs why a check failed. A PyPI
aiperf now leads to the pinned fork being installed as before.
Remove this bug's waiver.
Signed-off-by: chenfeiz0326 <203214996+chenfeiz0326@users.noreply.github.com>
420b731 to
e1d7a72
Compare
|
/bot run --disable-fail-fast |
|
Requesting a code-owner review. This fixes NVBug 6939002: the GB300 AgentX DSpark con1456 perf-sanity lane has failed on every release/1.3 post-merge since build 29. Since datasets was unpinned (#19909), |
|
PR_Github #78707 [ run ] triggered by Bot. Commit: |
|
PR_Github #78707 [ run ] completed with state
|
tests/unittest/conftest.py has an autouse fixture that requests capfd, and pytest refuses capsys together with capfd, so five of the probe tests errored at setup in the CI unit-test lane. Signed-off-by: chenfeiz0326 <203214996+chenfeiz0326@users.noreply.github.com>
|
The previous blossom-ci run (L0_MergeRequest_PR #320) failed in |
|
/bot run --disable-fail-fast |
|
PR_Github #78710 [ run ] triggered by Bot. Commit: |
|
PR_Github #78710 [ run ] completed with state
|
|
CI status for 9031b8b (L0_MergeRequest_PR #321, UNSTABLE): no test failed. All 12 |
|
Automatically added "ci: full pre-merge approved" because this PR has satisfied the required GitHub review approvals. Unresolved review conversations and other required checks remain independent merge requirements. |
|
/bot run --disable-fail-fast |
|
PR_Github #78798 [ run ] triggered by Bot. Commit: |
|
PR_Github #78798 [ run ] completed with state |
Description
The GB300 AgentX perf-sanity lane
disagg_upload-e2e-gb300_deepseek-v4-pro-dspark_agentx_con1456_ctx3_dep8_gen1_dep16_eplb0_dspark5_ccb-NIXLhas failed on every release/1.3 post-merge run since build 29, and on main since build 3020, before sending a single request:Root cause
agentx_client.ensure_aiperfskips installing the pinned agentx-harness build whenaiperf_is_usable()succeeds. That check only importedaiperf(plus its deps) and checked thatdatasetsis 4.x or newer.requirements-dev.txtpins the upstream PyPIaiperf==0.8.0, which has the same import name. Whilerequirements.txtpinneddatasets==3.1.0, the check always failed and the fork was installed. #19909 (release/1.3) and #20175 (main) unpinneddatasets(now 4.7.0). Since then the check passes on the PyPI aiperf, the fork is never installed, and PyPI aiperf rejects--scenario.CI history matches. On release/1.3, post-merge 28 (without #19909) passed and 29 onward (with it) failed. On main, 3018 passed, while 3020 and 3021 (with #20175) failed.
Fix
aiperf_is_usable()now also requires the fork's scenario registry to resolveinferencex-agentx-mvp, and logs the reason when a check fails. With the PyPI aiperf present, the pinned fork is installed as before.build_aiperf_cmd.tests/unittest/scripts/test_perf_agentx_aiperf_probe.py, already collected byunittest/scriptsinl0_cpu.yml. On the old client, 5 of its 6 cases fail.Test Coverage
Original case, oci-jhb, 10x GB300, CI image
pytorch-26.09-py3-sbsa-ubuntu24.04-skip-tritondevel-202610130623-20146, release/1.3 post-merge 34 wheel:Unknown option: --scenario; pytest 1 failedhealth OK: 79373 requests over 3629.9s, submission_valid=true; pytest 1 passedtests/unittest/scripts: the new test passes, andtest_subprocess_timeoutspasses.Fixes https://nvbugs/6939002
🤖 Generated with Claude Code
Dev Engineer Review
aiperf_is_usable()now rejects anaiperfinstall unless it imports the required modules, registersinferencex-agentx-mvp, and usesdatasets4 or newer. It logs the failure reason.build_aiperf_cmduses the shared scenario constant. Verify that the probe and command stay aligned when the scenario changes.QA Engineer Review
datasets, a missing module, and command scenario selection.waives.txt, so that specific change could not be confirmed from the inspected diff.Per-File QA Perspective
tests/integration/defs/perf/agentx_client.py: Verify that an upstream PyPIaiperfinstall fails the probe and triggers fork installation. Verify that command construction passes the scenario checked by the probe.tests/unittest/scripts/test_perf_agentx_aiperf_probe.py: Covers probe success and failure paths and scenario selection. It is a unit-test file, not an integration test-list entry.tests/integration/test_lists/waives.txt: The supplied change summary describes removal of a performance-test waiver. The inspected output did not establish that file’s diff; verify the intended test is no longer skipped.