Repository navigation
perf(tensilelite): deselect common configs that opt out of every target architecture - #15280
Draft
Alex-Vasile wants to merge 1 commit into
Conversation
Alex-Vasile
force-pushed
the
users/alvasile/tl-speedup-30-deselect-opted-out-configs
branch
from
November 6, 2026 18:24
608703b to
dcfc894
Compare
❌ PR Check — Action Required
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
…et architecture Tests/common/conftest.py deselects at collection time every config whose marks skip all target architectures, so the xdist scheduler sees only runnable tests (on gfx942, 146 of 709). Reports say deselected instead of skipped; the executed set is unchanged.
Alex-Vasile
force-pushed
the
users/alvasile/tl-speedup-30-deselect-opted-out-configs
branch
from
November 6, 2026 18:45
dcfc894 to
5a5a68f
Compare
1 task done
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
JIRA ID : AIHPBLAS-5256
Motivation
The TensileLite common tests are one pytest test per YAML config, parametrized over the GPU architectures being targeted. A config opts out of an architecture with a
skip-<arch>mark. Those configs are still collected and sent to the pytest-xdist scheduler (pytest-xdist is the pytest plugin that runs tests in parallel worker processes), where they only report a skip. On gfx942 that is 563 of the 709 common tests. The defaultloadscheduler sizes its first chunks from the full count, 44 tests per worker, so the 7 most expensive configs, adjacent in collection order, land on one worker.Technical Details
Tests/common/conftest.pychanges in 2 places:pytest_generate_testsstores the architecture list it parametrized with in the pytest stash under a new_ARCHS_KEY, so architectures are detected once.pytest_collection_modifyitemshook deselects every item underTests/commonwhose marks includeskip-<arch>for every target architecture. It reads the marksconfigMarksalready attached and opens no files.Reports now say
N deselectedfor those configs instead ofN skipped. Other skips are unchanged and still report as skips: multi-GPUcommconfigs, the StinkyTofu backend, disabled paths, and configs that skip only some of their target architectures. The set of tests that execute does not change. The diff is test infrastructure only.Test Plan
Run from
projects/hipblaslt/tensilelite:tox -e py3 -- tensilelite/Tests -m common --collect-onlylists the collected and deselected tests on the local GPU.--build-only --gpu-targets gfx942checks the count with an explicit target and no GPU detection.pre-commit run --files tensilelite/Tests/common/conftest.pychecks formatting and lint.Test Result
Time saved: 48 s (-7.8%) of CI-like build-stage wall time, 612 s before against 564 s after, with pytest-xdist's default
loadscheduler. Measured on the original unsplit branch on the gfx942 (MI300X) host, 25 cores,--build-only --gpu-targets gfx942 -n 4with the cache cleared, against the commit before it; 564 s is the mean of 2 runs (566 and 562 s), and the number of runs behind the 612 s is not recorded.These results were recorded on the original unsplit branch with
--collect-only -m "common and not skip-gfx94X":--build-only --gpu-targets gfx942: 146 of 709 collected, 563 deselected. The kept set equals the tests that ran in an earlier CI-like build stage, and none of the 563 had run there.--use-cachewith a GPU detected: 146 of 709, the earlier run stage's set pluscomm/gfx950/fused_a2a, which the multi-GPU check skips when one GPU is visible.--gpu-targets "gfx942;gfx950": 269, the union of the gfx942 (146) and gfx950 (224) sets.No unit test is added for the hook.
Not yet run on this branch. Automated GitHub checks are pending.
Related
Device / Architecture Coverage
Host-only pytest collection change. No kernel generation, product code or GPU behavior changes, so passing PR checks are sufficient.
Submission Checklist
Risk level
Low (2/5): test-harness change that decides which common tests are scheduled; a wrong mark match would hide a runnable config, and the hook has no unit test of its own.