Cargo Features

fastkmeans-rs has no features set by default.

[dependencies]
fastkmeans-rs = { version = "1.0.6", features = ["npy", "openblas", "mkl", "accelerate", "cuda", "metal_gpu"] }
npy = ndarray-npy

Required by compare-kmeans and compare-kmeans-cuda binaries

openblas = blas-src, openblas-src

BLAS acceleration features
Use system OpenBLAS (requires libopenblas-dev on Linux, brew install openblas on macOS)

Enables blas of ndarray ^0.16

mkl = blas-src, intel-mkl-src

Use Intel MKL (recommended for Intel/AMD CPUs on Linux)

Enables blas of ndarray ^0.16

accelerate = accelerate-src, blas-src

Use Apple Accelerate framework (macOS only, recommended for macOS)

Enables blas of ndarray ^0.16

cuda = cudarc

CUDA GPU acceleration
Requires CUDA toolkit installed (nvcc in PATH)

Affects fastkmeans-rs::cuda

Required by the compare-kmeans-cuda binary

metal_gpu

Metal GPU acceleration (macOS only, Apple Silicon recommended)
Uses Metal compute shaders for GPU-accelerated k-means

Enables metal ^0.31 and objc

metal:

Metal GPU dependencies (macOS only, optional)

Affects fastkmeans-rs::metal_gpu

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

ndarray-npy npy?

Enables ndarray-npy ^0.9

blas-src accelerate? mkl? openblas?

Enables blas-src ^0.10

BLAS backends (optional)

openblas-src openblas?
intel-mkl-src mkl?
accelerate-src accelerate?
cudarc cuda?

Enables cudarc

CUDA dependencies (optional)