Repository navigation
Accept older ROCm minor versions within the same major - #959
Conversation
|
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. |
|
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. |
Coverage report —
|
| 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.
08db9fb to
4d90ae8
Compare
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.
ROCm build variants were matched by exact tag, so a system on ROCm 10.1 rejects the existing
rocm100builds.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.