Skip to content

Accept older ROCm minor versions within the same major - #959

Merged
danieldk merged 1 commit into
huggingface:mainfrom
Abdennacer-Badaoui:rocm-hip-major-compat
Nov 2, 2026
Merged

danieldk merged 1 commit into
huggingface:mainfrom
Abdennacer-Badaoui:rocm-hip-major-compat

Conversation

@Abdennacer-Badaoui

@Abdennacer-Badaoui Abdennacer-Badaoui commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

ROCm build variants were matched by exact tag, so a system on ROCm 10.1 rejects the existing rocm100 builds.

This applies the same rule we use for CUDA: given a system ROCm version x.y, builds for ROCm x.z with z <= y are accepted, newest first. Builds for a different major are still rejected, so 7.x and 10.x builds never mix.

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown

Hi @Abdennacer-Badaoui, thanks for your interest in contributing!

This project requires that pull request authors are vouched, and you are not in the list of vouched users.

This PR will be closed automatically. See https://github.com/huggingface/kernels/blob/main/CONTRIBUTING.md for more details.

@github-actions github-actions Bot closed this Nov 2, 2026
@HuggingFaceDocBuilderDev

Copy link
Copy Markdown

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Coverage report — kernels/

Measured on: Python 3.10 / Torch 2.13.0.
Other CI configurations are not included in this number.
Hardware-gated code paths (ROCm/XPU/NPU/Darwin/Windows) are excluded or unreachable on the Linux+CUDA runner.

Total coverage: 88.5% — threshold: 80% — ✅

Per-file breakdown
Name Stmts Miss Cover Missing
src/kernels/__init__.py 14 0 100%
src/kernels/_system.py 6 1 83% 10
src/kernels/_versions.py 130 14 89% 53, 59-60, 63-64, 102, 165-170, 199, 219
src/kernels/archs.py 56 1 98% 94
src/kernels/backends.py 215 63 71% 42, 46, 50-53, 70, 92, 110, 119, 123, 127-129, 150, 159, 163, 167-169, 190, 201, 203, 210-213, 222, 226, 230-255, 263, 286-306
src/kernels/compat.py 9 1 89% 5
src/kernels/deps.py 70 1 99% 56
src/kernels/digest.py 58 5 91% 71-73, 136-137
src/kernels/hf_hub.py 62 2 97% 21, 23
src/kernels/importer.py 74 5 93% 158, 162, 165, 179-180
src/kernels/install.py 21 7 67% 76-100
src/kernels/layer/__init__.py 7 0 100%
src/kernels/layer/_interval_tree.py 103 4 96% 23, 52, 147, 150
src/kernels/layer/device.py 48 12 75% 42, 47-49, 91, 96-98, 101, 149, 152, 156
src/kernels/layer/func.py 93 5 95% 94, 119, 195, 315, 390
src/kernels/layer/globals.py 5 0 100%
src/kernels/layer/inspect.py 27 0 100%
src/kernels/layer/kernelize.py 83 7 92% 306, 314-315, 321, 325, 341-343
src/kernels/layer/layer.py 320 14 96% 212, 259, 447, 606-607, 628, 636, 647, 688, 692, 705, 760, 801, 876
src/kernels/layer/mode.py 14 0 100%
src/kernels/layer/repos.py 136 36 74% 32, 35-42, 73, 86, 90, 99-100, 103, 106-109, 116-117, 120, 123-126, 133-134, 137, 140-143, 150-151, 154, 157-160, 235
src/kernels/load.py 71 2 97% 338, 378
src/kernels/locking.py 89 64 28% 35-83, 91-98, 102-125, 137, 152-159, 165-175, 179-186
src/kernels/python_deps.py 58 6 90% 59-60, 64-65, 101, 104
src/kernels/resolver.py 162 1 99% 248
src/kernels/status.py 50 2 96% 25, 79
src/kernels/validate.py 104 7 93% 9, 101, 172, 195-196, 232-233
src/kernels/variants.py 282 17 94% 65, 96, 117, 147, 256-257, 299-302, 304, 388-394, 400-406, 455-461
src/kernels/verify.py 102 6 94% 44, 176-178, 266-267
TOTAL 2469 283 89%

Updated by the Test kernels workflow on commit 4d90ae8bdd3c38683b8901ee872fc990c7d5530d.

@danieldk danieldk reopened this Nov 2, 2026
@Abdennacer-Badaoui Abdennacer-Badaoui changed the title Accept older ROCm builds with the same HIP major Accept older ROCm minor versions within the same major Nov 2, 2026

@danieldk danieldk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks great, thanks!

@danieldk
danieldk merged commit f3feb6b into huggingface:main Nov 2, 2026
43 of 47 checks passed
danieldk pushed a commit that referenced this pull request Nov 2, 2026
Backport of #959 to `release-0.18`, for a 0.18.1 release. Cherry-picked
cleanly.
danieldk pushed a commit that referenced this pull request Nov 2, 2026
Backport to `release-0.17`, for a 0.17.3 release (transformers pins
`kernels<0.18`).

Two commits:

1. **#902, Python part only:** read the ROCm version from
`torch.version.rocm`, falling back to `torch.version.hip`. 0.17 still
uses `torch.version.hip`, which is 7.16 on ROCm 10.1. Without this, #959
alone would make 0.17 accept `rocm7x` builds on ROCm 10.x, which is the
cross-major mixing we want to avoid. The kernel-builder parts of #902
are left out.
2. **#959:** accept older ROCm minor versions within the same major.
There was a small conflict in `test_variants.py`, because 0.17's
`test_resolve_cpu_linux` has no `linux_abi` parameter. I kept 0.17's
version.

Checked by mocking `torch.version.hip = "7.16…"` and `torch.version.rocm
= "10.1.0"`: the backend is detected as ROCm 10.1, and only the
`rocm101`/`rocm100` builds are accepted (not
`rocm71`/`rocm72`/`rocm714`).

`test_variants.py`, `test_archs.py` and `test_basic.py` run with the
same results as unmodified `release-0.17`: the 3 new tests pass. The 2
failures and 4 errors in `test_get_variants` and `test_basic.py` also
happen on `release-0.17` without these changes.
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.

3 participants