kestrel-mps-torch-ext
Small ABI-specific sidecar for Kestrel's native MPS tensor/stream handles.
This package follows the same basic pattern as torch-c-dlpack-ext: the
Python loader selects a native library whose filename includes the runtime
PyTorch major/minor version and loads it with ctypes.CDLL. The native
library still links against libtorch, so this is not a stable ABI. It just
isolates the torch-version-sensitive part into a small package.
Wheels are published per Python ABI (cp310, cp311, ...). Each wheel can
bundle multiple PyTorch-minor-specific dylibs. Current wheels cover torch 2.9
through 2.14 (torch29, torch210, torch211, torch212, torch213, and
torch214). Patch versions do not get separate dylibs: torch 2.12.0 and 2.12.1
both resolve to torch212.
This package does not ship Metal kernel source, a metallib, or Kestrel torch op registrations. It only exports a narrow C ABI for:
- resolving a
torch.TensorPython object to itsMTLBufferplus shape/stride metadata; - accessing the current PyTorch MPS stream, command buffer, device, and queue;
- ending PyTorch kernel coalescing and committing the stream.
The main kestrel-kernels package remains responsible for loading
kestrel_mps.metallib and dispatching the actual Metal kernels.
Build
Install the exact PyTorch version you want this wheel to target, then build without PEP 517 isolation so CMake sees that same torch install:
python -m pip install "torch==2.14.0" scikit-build-core cmake ninja packaging wheel
python -m pip wheel --no-build-isolation .
The build backend defaults MACOSX_DEPLOYMENT_TARGET to 13.0, so a build on
macOS 15 still produces a macosx_13_0_arm64 wheel. Override the target only
when intentionally changing the runtime support floor:
MACOSX_DEPLOYMENT_TARGET=14.0 python -m pip wheel --no-build-isolation .
No Kestrel source checkout is required.
Runtime
import kestrel_mps_torch_ext
kestrel_mps_torch_ext.load_torch_mps_bridge()
After that call, the ABI-matched dylib is loaded with RTLD_GLOBAL, so the
main Kestrel native library can find KestrelMPSTorchExtAPI_v1 with dlsym.
Unsupported PyTorch Minors
If the installed PyTorch minor is not bundled in the wheel, import fails before any native code is used. The error lists the installed torch version, the supported torch minors, and the missing dylib name.
Use one of the listed PyTorch minors, install a newer
kestrel-mps-torch-ext wheel that includes your minor, or email
contact@moondream.ai for help.
Metadata
Release files for kestrel-mps-torch-ext 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| kestrel_mps_torch_ext-0.1.2-cp314-cp314-macosx_13_0_arm64.whl | CPython 3.14 | CPython 3.14 | macOS 13.0+ ARM64 | Details for kestrel_mps_torch_ext-0.1.2-cp314-cp314-macosx_13_0_arm64.whl |
| kestrel_mps_torch_ext-0.1.2-cp313-cp313-macosx_13_0_arm64.whl | CPython 3.13 | CPython 3.13 | macOS 13.0+ ARM64 | Details for kestrel_mps_torch_ext-0.1.2-cp313-cp313-macosx_13_0_arm64.whl |
| kestrel_mps_torch_ext-0.1.2-cp312-cp312-macosx_13_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 13.0+ ARM64 | Details for kestrel_mps_torch_ext-0.1.2-cp312-cp312-macosx_13_0_arm64.whl |
| kestrel_mps_torch_ext-0.1.2-cp311-cp311-macosx_13_0_arm64.whl | CPython 3.11 | CPython 3.11 | macOS 13.0+ ARM64 | Details for kestrel_mps_torch_ext-0.1.2-cp311-cp311-macosx_13_0_arm64.whl |
| kestrel_mps_torch_ext-0.1.2-cp310-cp310-macosx_13_0_arm64.whl | CPython 3.10 | CPython 3.10 | macOS 13.0+ ARM64 | Details for kestrel_mps_torch_ext-0.1.2-cp310-cp310-macosx_13_0_arm64.whl |
Total release size: 1.6 MB
Release files / kestrel_mps_torch_ext-0.1.2-cp314-cp314-macosx_13_0_arm64.whl
| Download URL | kestrel_mps_torch_ext-0.1.2-cp314-cp314-macosx_13_0_arm64.whl |
|---|---|
| Size | 327.1 kB |
| Tags | CPython 3.14 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d548e18aa9edc5bdb6da7ec6c114443df1d0f04f3992f8c364d70a6c4bebf94f
|
|
BLAKE2b-256 checksum How to use checksums |
ed49819f1518ac97bbfd60df90ffaa6f5ec97f6e7b2422277c4861b0fc8a9e52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|
Release files / kestrel_mps_torch_ext-0.1.2-cp313-cp313-macosx_13_0_arm64.whl
| Download URL | kestrel_mps_torch_ext-0.1.2-cp313-cp313-macosx_13_0_arm64.whl |
|---|---|
| Size | 326.9 kB |
| Tags | CPython 3.13 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
10edab7280b63fa64595510e117b8f1398f014d474a7cf16c1fb03666affdf7b
|
|
BLAKE2b-256 checksum How to use checksums |
280ea602c90deb6b88504aafdf14571e576f8d2d3be125c3f6dc8b046d6d1154
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|
Release files / kestrel_mps_torch_ext-0.1.2-cp312-cp312-macosx_13_0_arm64.whl
| Download URL | kestrel_mps_torch_ext-0.1.2-cp312-cp312-macosx_13_0_arm64.whl |
|---|---|
| Size | 326.6 kB |
| Tags | CPython 3.12 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2c7bd937239827dfa1e7fde2980851f308608dbc86a51970bf92cd3515fc9dae
|
|
BLAKE2b-256 checksum How to use checksums |
7405869fb8240b4c4bdc9d61347d53ae25196e0effbdb1536a0d9368f5dfa381
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|
Release files / kestrel_mps_torch_ext-0.1.2-cp311-cp311-macosx_13_0_arm64.whl
| Download URL | kestrel_mps_torch_ext-0.1.2-cp311-cp311-macosx_13_0_arm64.whl |
|---|---|
| Size | 324.1 kB |
| Tags | CPython 3.11 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
367cc1988b9244f4574c90175e669552e640aab6e11dafc5706e49667153a32c
|
|
BLAKE2b-256 checksum How to use checksums |
daf0ed81182ce3cf4566ae78fa7f5d43d88b72641fbdf08efc3f7fca946ed583
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|
Release files / kestrel_mps_torch_ext-0.1.2-cp310-cp310-macosx_13_0_arm64.whl
| Download URL | kestrel_mps_torch_ext-0.1.2-cp310-cp310-macosx_13_0_arm64.whl |
|---|---|
| Size | 315.8 kB |
| Tags | CPython 3.10 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4f0ea9c82fa68e7aba7c616cad2d1bb18a41c0adebe1c1a50e8abbb8f3321b07
|
|
BLAKE2b-256 checksum How to use checksums |
367820a593ca0e17d54ba3eddcfcf17021390142db2935d6039d0bfd0c23436f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|
Security for kestrel-mps-torch-ext 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.