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.
Files changed (108) hide show
  1. {kernels-0.17.2 → kernels-0.17.3}/Cargo.lock +4 -4
  2. {kernels-0.17.2 → kernels-0.17.3}/PKG-INFO +1 -1
  3. {kernels-0.17.2 → kernels-0.17.3}/kernels/Cargo.toml +2 -2
  4. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_variants.py +36 -0
  5. {kernels-0.17.2 → kernels-0.17.3}/kernels/uv.lock +1 -1
  6. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/Cargo.toml +1 -1
  7. {kernels-0.17.2 → kernels-0.17.3}/pyproject.toml +1 -1
  8. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/backends.py +6 -1
  9. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/benchmark.py +2 -1
  10. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/variants.py +14 -0
  11. {kernels-0.17.2 → kernels-0.17.3}/Cargo.toml +0 -0
  12. {kernels-0.17.2 → kernels-0.17.3}/README.md +0 -0
  13. {kernels-0.17.2 → kernels-0.17.3}/kernels/README.md +0 -0
  14. {kernels-0.17.2 → kernels-0.17.3}/kernels/pytest.ini +0 -0
  15. {kernels-0.17.2 → kernels-0.17.3}/kernels/rust/config.rs +0 -0
  16. {kernels-0.17.2 → kernels-0.17.3}/kernels/rust/lib.rs +0 -0
  17. {kernels-0.17.2 → kernels-0.17.3}/kernels/rust/lock.rs +0 -0
  18. {kernels-0.17.2 → kernels-0.17.3}/kernels/rust/version.rs +0 -0
  19. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/conftest.py +0 -0
  20. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/kernel_locking/kernels.lock +0 -0
  21. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/kernel_locking/pyproject.toml +0 -0
  22. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/layer_locking/kernels.lock +0 -0
  23. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/layer_locking/pyproject.toml +0 -0
  24. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_archs.py +0 -0
  25. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_basic.py +0 -0
  26. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_benchmarks.py +0 -0
  27. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_cli_info.py +0 -0
  28. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_config.py +0 -0
  29. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_digest.py +0 -0
  30. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_kernel_lock.py +0 -0
  31. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_metadata.py +0 -0
  32. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_data_version.py +0 -0
  33. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_deps.py +0 -0
  34. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_doctest.py +0 -0
  35. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_entry_points.py +0 -0
  36. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_func.py +0 -0
  37. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_importer.py +0 -0
  38. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_interval_tree.py +0 -0
  39. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_kernel_locking.py +0 -0
  40. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_layer.py +0 -0
  41. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_loaded_kernels.py +0 -0
  42. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_python_deps.py +0 -0
  43. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_resolver.py +0 -0
  44. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_status.py +0 -0
  45. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_tvm_ffi.py +0 -0
  46. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_user_agent.py +0 -0
  47. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_validate.py +0 -0
  48. {kernels-0.17.2 → kernels-0.17.3}/kernels/tests/test_verify.py +0 -0
  49. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/compat.rs +0 -0
  50. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/deps.rs +0 -0
  51. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/git_url.rs +0 -0
  52. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/kernel_deps.rs +0 -0
  53. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/mod.rs +0 -0
  54. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/name.rs +0 -0
  55. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/parse.rs +0 -0
  56. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v1.rs +0 -0
  57. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v2.rs +0 -0
  58. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v3.rs +0 -0
  59. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v4.rs +0 -0
  60. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/config/v5.rs +0 -0
  61. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/digest.rs +0 -0
  62. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/git.rs +0 -0
  63. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/lib.rs +0 -0
  64. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/lock.rs +0 -0
  65. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/metadata.rs +0 -0
  66. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/python_dependencies.json +0 -0
  67. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/src/version.rs +0 -0
  68. {kernels-0.17.2 → kernels-0.17.3}/kernels-common/tests/data/legacy-sha-provenance.json +0 -0
  69. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/__init__.py +0 -0
  70. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/_rust.pyi +0 -0
  71. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/_system.py +0 -0
  72. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/_versions.py +0 -0
  73. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/_windows.py +0 -0
  74. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/archs.py +0 -0
  75. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmark.py +0 -0
  76. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmarks/__init__.py +0 -0
  77. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmarks/activation.py +0 -0
  78. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmarks/attention.py +0 -0
  79. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/benchmarks/layer_norm.py +0 -0
  80. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/__init__.py +0 -0
  81. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/benchmark_graphics.py +0 -0
  82. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/download.py +0 -0
  83. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/info.py +0 -0
  84. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/lock.py +0 -0
  85. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/verify_signature.py +0 -0
  86. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/cli/versions.py +0 -0
  87. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/compat.py +0 -0
  88. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/deps.py +0 -0
  89. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/hf_hub.py +0 -0
  90. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/importer.py +0 -0
  91. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/install.py +0 -0
  92. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/__init__.py +0 -0
  93. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/_interval_tree.py +0 -0
  94. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/device.py +0 -0
  95. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/func.py +0 -0
  96. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/globals.py +0 -0
  97. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/kernelize.py +0 -0
  98. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/layer.py +0 -0
  99. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/mode.py +0 -0
  100. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/layer/repos.py +0 -0
  101. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/load.py +0 -0
  102. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/locking.py +0 -0
  103. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/python_depends.json +0 -0
  104. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/python_deps.py +0 -0
  105. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/resolver.py +0 -0
  106. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/status.py +0 -0
  107. {kernels-0.17.2 → kernels-0.17.3}/src/kernels/validate.py +0 -0
  108. {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.2"
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.2"
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.2"
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.2"
1575
+ version = "0.17.3"
1576
1576
  dependencies = [
1577
1577
  "kernels-common",
1578
1578
  "pyo3",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kernels
3
- Version: 0.17.2
3
+ Version: 0.17.3
4
4
  Requires-Dist: huggingface-hub>=1.10.0
5
5
  Requires-Dist: packaging>=20.0
6
6
  Requires-Dist: pyyaml>=6
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "kernels-python"
3
- version = "0.17.2"
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.2"
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,
@@ -1158,7 +1158,7 @@ wheels = [
1158
1158
 
1159
1159
  [[package]]
1160
1160
  name = "kernels"
1161
- version = "0.17.2"
1161
+ version = "0.17.3"
1162
1162
  source = { editable = "." }
1163
1163
  dependencies = [
1164
1164
  { name = "huggingface-hub" },
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "kernels-common"
3
- version = "0.17.2"
3
+ version = "0.17.3"
4
4
  edition = "2024"
5
5
  description = "Code shared by kernel-builder and kernels"
6
6
  homepage = "https://github.com/huggingface/kernels"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kernels"
3
- version = "0.17.2"
3
+ version = "0.17.3"
4
4
  description = "Download compute kernels"
5
5
  authors = [
6
6
  { name = "Daniel de Kok", email = "daniel@huggingface.co" },
@@ -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
- rocm_version = Version(torch.version.hip.split("-")[0])
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
- backend_type = f"ROCm {torch.version.hip}"
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