[package] authors = ["nathanielsimard "] categories = ["science", "no-std", "embedded", "wasm"] description = "Ndarray backend for the Burn framework" documentation = "https://docs.rs/burn-ndarray" edition.workspace = true keywords = ["deep-learning", "machine-learning", "data"] license.workspace = true name = "burn-ndarray" readme.workspace = true repository = "https://github.com/tracel-ai/burn/tree/main/crates/burn-ndarray" version.workspace = true [lints] workspace = true [features] blas-accelerate = [ "blas-src/accelerate", # Accelerate framework (macOS only) "ndarray/blas", ] blas-netlib = ["blas-src/netlib", "ndarray/blas"] blas-openblas = ["blas-src/openblas", "ndarray/blas", "openblas-src"] blas-openblas-system = [ "blas-src/openblas", "ndarray/blas", "openblas-src/system", ] default = ["std", "simd", "multi-threads"] doc = ["default"] multi-threads = [ "rayon", "ndarray/rayon", "matrixmultiply/threading", ] simd = ["macerator", "bytemuck", "seq-macro", "itertools"] std = [ "burn-autodiff", "burn-std/std", "burn-backend/std", "burn-ir/std", "ndarray/std", "matrixmultiply/std", "rand/std", "rand/std_rng", "num-traits/std", "macerator/std", ] tracing = [ "burn-autodiff?/tracing", "burn-std/tracing", "burn-backend/tracing", "burn-ir/tracing", ] # Serves as a ref impl for some burn-cubecl kernels export_tests = [] [dependencies] # ** Please make sure all dependencies support no_std when std is disabled ** burn-autodiff = { path = "../burn-autodiff", version = "=0.21.0-pre.2", default-features = false, optional = true } burn-std = { path = "../burn-std", version = "=0.21.0-pre.2", default-features = false } burn-ir = { path = "../burn-ir", version = "=0.21.0-pre.2", default-features = false } burn-backend = { path = "../burn-backend", version = "=0.21.0-pre.2", default-features = false } atomic_float = { workspace = true } blas-src = { workspace = true, default-features = false, optional = true } # no-std compatible const-random = { workspace = true } libm = { workspace = true } matrixmultiply = { workspace = true, default-features = false } ndarray = { workspace = true } num-traits = { workspace = true } openblas-src = { workspace = true, optional = true } paste = { workspace = true } rand = { workspace = true, default-features = false } # SIMD bytemuck = { workspace = true, optional = true } itertools = { version = "0.14", optional = true } macerator = { workspace = true, optional = true } seq-macro = { version = "0.3", optional = true } # Parallel rayon = { workspace = true, optional = true } [target.'cfg(not(target_has_atomic = "ptr"))'.dependencies] portable-atomic = { workspace = true } portable-atomic-util = { workspace = true } [dev-dependencies] bytes = { workspace = true } [package.metadata.docs.rs] features = ["doc"] rustdoc-args = ["--cfg", "docsrs"]