kernels 0.17.2__tar.gz → 0.17.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kernels-0.17.2 → kernels-0.17.3}/Cargo.lock +4 -4
- {kernels-0.17.2 → kernels-0.17.3}/PKG-INFO +1 -1
- {kernels-0.17.2 → kernels-0.17.3}/kernels/Cargo.toml +2 -2
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_variants.py +36 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/uv.lock +1 -1
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/Cargo.toml +1 -1
- {kernels-0.17.2 → kernels-0.17.3}/pyproject.toml +1 -1
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/backends.py +6 -1
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/benchmark.py +2 -1
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/variants.py +14 -0
- {kernels-0.17.2 → kernels-0.17.3}/Cargo.toml +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/README.md +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/README.md +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/pytest.ini +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/rust/config.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/rust/lib.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/rust/lock.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/rust/version.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/conftest.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/kernel_locking/kernels.lock +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/kernel_locking/pyproject.toml +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/layer_locking/kernels.lock +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/layer_locking/pyproject.toml +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_archs.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_basic.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_benchmarks.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_cli_info.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_config.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_digest.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_kernel_lock.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_metadata.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_version.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_deps.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_doctest.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_entry_points.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_func.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_importer.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_interval_tree.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_kernel_locking.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_layer.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_loaded_kernels.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_python_deps.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_resolver.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_status.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_tvm_ffi.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_user_agent.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_validate.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_verify.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/compat.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/deps.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/git_url.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/kernel_deps.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/mod.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/name.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/parse.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v1.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v2.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v3.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v4.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v5.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/digest.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/git.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/lib.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/lock.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/metadata.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/python_dependencies.json +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/version.rs +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/kernels-common/tests/data/legacy-sha-provenance.json +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/__init__.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/_rust.pyi +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/_system.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/_versions.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/_windows.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/archs.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmark.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmarks/__init__.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmarks/activation.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmarks/attention.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmarks/layer_norm.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/__init__.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/benchmark_graphics.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/download.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/info.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/lock.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/verify_signature.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/versions.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/compat.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/deps.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/hf_hub.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/importer.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/install.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/__init__.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/_interval_tree.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/device.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/func.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/globals.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/kernelize.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/layer.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/mode.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/repos.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/load.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/locking.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/python_depends.json +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/python_deps.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/resolver.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/status.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/validate.py +0 -0
- {kernels-0.17.2 → kernels-0.17.3}/src/kernels/verify.py +0 -0
|
@@ -1056,7 +1056,7 @@ dependencies = [
|
|
|
1056
1056
|
|
|
1057
1057
|
[[package]]
|
|
1058
1058
|
name = "hf-kernel-builder"
|
|
1059
|
-
version = "0.17.
|
|
1059
|
+
version = "0.17.3"
|
|
1060
1060
|
dependencies = [
|
|
1061
1061
|
"base32",
|
|
1062
1062
|
"built",
|
|
@@ -1537,7 +1537,7 @@ dependencies = [
|
|
|
1537
1537
|
|
|
1538
1538
|
[[package]]
|
|
1539
1539
|
name = "kernel-abi-check"
|
|
1540
|
-
version = "0.17.
|
|
1540
|
+
version = "0.17.3"
|
|
1541
1541
|
dependencies = [
|
|
1542
1542
|
"cpp_demangle",
|
|
1543
1543
|
"eyre",
|
|
@@ -1551,7 +1551,7 @@ dependencies = [
|
|
|
1551
1551
|
|
|
1552
1552
|
[[package]]
|
|
1553
1553
|
name = "kernels-common"
|
|
1554
|
-
version = "0.17.
|
|
1554
|
+
version = "0.17.3"
|
|
1555
1555
|
dependencies = [
|
|
1556
1556
|
"base64",
|
|
1557
1557
|
"digest",
|
|
@@ -1572,7 +1572,7 @@ dependencies = [
|
|
|
1572
1572
|
|
|
1573
1573
|
[[package]]
|
|
1574
1574
|
name = "kernels-python"
|
|
1575
|
-
version = "0.17.
|
|
1575
|
+
version = "0.17.3"
|
|
1576
1576
|
dependencies = [
|
|
1577
1577
|
"kernels-common",
|
|
1578
1578
|
"pyo3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "kernels-python"
|
|
3
|
-
version = "0.17.
|
|
3
|
+
version = "0.17.3"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
description = "Kernels data structures (Python bindings)"
|
|
6
6
|
homepage = "https://github.com/huggingface/kernels"
|
|
@@ -19,4 +19,4 @@ serde_json = "1"
|
|
|
19
19
|
|
|
20
20
|
[dependencies.kernels-common]
|
|
21
21
|
path = "../kernels-common"
|
|
22
|
-
version = "0.17.
|
|
22
|
+
version = "0.17.3"
|
|
@@ -250,6 +250,42 @@ def test_resolve_rocm():
|
|
|
250
250
|
assert {vs.variant for vs in trace} == set(RESOLVE_VARIANTS)
|
|
251
251
|
|
|
252
252
|
|
|
253
|
+
ROCM_VARIANTS = [
|
|
254
|
+
parse_variant(f"torch215-cxx11-{rocm}-x86_64-linux") for rocm in ["rocm72", "rocm100", "rocm101", "rocm102"]
|
|
255
|
+
]
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
def _resolve_rocm(rocm_version: str):
|
|
259
|
+
return _resolve_variant_for_system(
|
|
260
|
+
variants=ROCM_VARIANTS,
|
|
261
|
+
selected_backend=ROCm(Version(rocm_version)),
|
|
262
|
+
cpu="x86_64",
|
|
263
|
+
os="linux",
|
|
264
|
+
torch_version=Version("2.15"),
|
|
265
|
+
torch_cxx11_abi=True,
|
|
266
|
+
tvm_ffi_version=None,
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
def test_resolve_rocm_best_older_minor():
|
|
271
|
+
# Newest minor that is not newer than the system, same major only.
|
|
272
|
+
result, _ = _resolve_rocm("10.1")
|
|
273
|
+
assert [v.variant_str for v in result] == [
|
|
274
|
+
"torch215-cxx11-rocm101-x86_64-linux",
|
|
275
|
+
"torch215-cxx11-rocm100-x86_64-linux",
|
|
276
|
+
]
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
def test_resolve_rocm_no_different_major():
|
|
280
|
+
result, _ = _resolve_rocm("7.2")
|
|
281
|
+
assert [v.variant_str for v in result] == ["torch215-cxx11-rocm72-x86_64-linux"]
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
def test_resolve_rocm_no_newer_minor():
|
|
285
|
+
result, _ = _resolve_rocm("10.0")
|
|
286
|
+
assert [v.variant_str for v in result] == ["torch215-cxx11-rocm100-x86_64-linux"]
|
|
287
|
+
|
|
288
|
+
|
|
253
289
|
def test_resolve_cpu_linux():
|
|
254
290
|
result, trace = _resolve_variant_for_system(
|
|
255
291
|
variants=RESOLVE_VARIANTS,
|
|
@@ -232,7 +232,12 @@ def _backend() -> Backend:
|
|
|
232
232
|
cuda_version = Version(torch.version.cuda)
|
|
233
233
|
return CUDA(version=cuda_version)
|
|
234
234
|
elif torch.version.hip is not None:
|
|
235
|
-
|
|
235
|
+
# Note: the ROCm version does not always match the HIP version
|
|
236
|
+
# (e.g. ROCm 10.0 uses HIP 7.15). So, we should use
|
|
237
|
+
# `torch.version.rocm`. However, this attribute is only available
|
|
238
|
+
# since Torch 2.10, so use `torch.version.hip` as a fallback.
|
|
239
|
+
rocm = getattr(torch.version, "rocm", None) or torch.version.hip
|
|
240
|
+
rocm_version = Version(rocm.split("-")[0])
|
|
236
241
|
return ROCm(version=rocm_version)
|
|
237
242
|
elif torch.backends.mps.is_available():
|
|
238
243
|
return Metal()
|
|
@@ -403,7 +403,8 @@ def collect_machine_info() -> MachineInfo:
|
|
|
403
403
|
gpu = torch.cuda.get_device_name(0)
|
|
404
404
|
# ROCm uses the CUDA API but has torch.version.hip
|
|
405
405
|
if hasattr(torch.version, "hip") and torch.version.hip:
|
|
406
|
-
|
|
406
|
+
rocm_version = getattr(torch.version, "rocm", None) or torch.version.hip
|
|
407
|
+
backend_type = f"ROCm {rocm_version}"
|
|
407
408
|
else:
|
|
408
409
|
backend_type = f"CUDA {torch.version.cuda}" if torch.version.cuda else "CUDA"
|
|
409
410
|
elif backend_name == "xpu":
|
|
@@ -474,6 +474,20 @@ def _check_variants(
|
|
|
474
474
|
)
|
|
475
475
|
)
|
|
476
476
|
continue
|
|
477
|
+
# Same for ROCm: given a system ROCm version of x.y, only ROCm
|
|
478
|
+
# versions x.z, where z <= y qualify.
|
|
479
|
+
elif isinstance(selected_backend, ROCm) and isinstance(v.arch.backend, ROCm):
|
|
480
|
+
if (
|
|
481
|
+
v.arch.backend.version.major != selected_backend.version.major
|
|
482
|
+
or v.arch.backend.version.minor > selected_backend.version.minor
|
|
483
|
+
):
|
|
484
|
+
result.append(
|
|
485
|
+
VariantRejected(
|
|
486
|
+
variant=v,
|
|
487
|
+
reason=f"ROCm version ({v.arch.backend.version}) is not compatible with system ROCm version ({selected_backend.version})",
|
|
488
|
+
)
|
|
489
|
+
)
|
|
490
|
+
continue
|
|
477
491
|
elif v.arch.backend.variant_str != selected_backend.variant_str:
|
|
478
492
|
result.append(
|
|
479
493
|
VariantRejected(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|