Repository navigation
mps-pointops 0.2.0
Added
- Flat, variable-length 3D
fps,knn, andradiusAPIs with sorted batch vectors, separate reference and query point sets, global indices, and compact[query, reference]edge tensors. - Native Metal kernels for the flat MPS paths. Radius search uses SIMD prefix ranks to retain the first matching reference points in input order.
- Optional
torch_cluster1.6.3-style imports andknn_graph/radius_graphwrappers. The point-cloud entry points were exercised through PyG 2.7.0 on MPS.
Numerical compatibility
- FPS count calculation now follows the original CPU and GPU degree-conversion rules and preserves scalar versus length-one tensor ratio behavior.
- Flat float32 radius search uses the torch-cluster threshold obtained by computing
r * rin double precision and rounding to float32. Dense Ball Query keeps its PyTorch3D threshold contract.
Verification and scope
- Apple M5 Pro, PyTorch 2.7.0: 147 passed, 7 expected skips in separate Safe and Fast Math runs. The raw logs identify the tested code commit.
- GitHub CI covers macOS with Python 3.10 and 3.12, the oldest supported PyTorch 2.7.0 combination, Linux CPU tests, and wheel contents.
- This release supports 3D point coordinates. PyG 2.8.0 calls separate
torch.ops.pygoperators that the shim does not register. The float16 radius path and very small radii have the numerical limitations described in the README.
Install
python -m pip install "git+https://github.com/gamzerA/mps-pointops.git@v0.2.0"The attached wheel can also be installed directly. SHA256SUMS contains hashes for the wheel and source distribution.
Full changes: v0.1.1...v0.2.0