[package] authors = ["nathanielsimard "] categories = ["science", "no-std", "embedded", "wasm"] description = "Flexible and Comprehensive Deep Learning Framework in Rust" edition.workspace = true keywords = ["deep-learning", "machine-learning", "tensor", "pytorch", "ndarray"] license.workspace = true name = "burn-core" readme.workspace = true repository = "https://github.com/tracel-ai/burn/tree/main/crates/burn-core" version.workspace = true [features] default = [ "std", "burn-candle?/default", "burn-common/default", "burn-dataset?/default", "burn-ndarray?/default", "burn-tch?/default", "burn-tensor/default", "burn-wgpu?/default", "burn-cuda?/default", "burn-autodiff?/default", ] std = [ "burn-autodiff?/std", "bincode/std", "burn-candle?/std", "burn-common/std", "burn-ndarray?/std", "burn-tensor/std", "burn-wgpu?/std", "burn-cuda?/std", "flate2", "half/std", "log", "rand/std", "rmp-serde", "serde/std", "serde_json/std", "num-traits/std", ] doc = [ "std", # Backends "dataset", "candle", "fusion", "ndarray", "tch", "wgpu", "vision", "autodiff", # Doc features "burn-candle/doc", "burn-common/doc", "burn-dataset/doc", "burn-ndarray/doc", "burn-tch/doc", "burn-tensor/doc", "burn-wgpu/doc", "burn-cuda/doc", ] dataset = ["burn-dataset"] network = ["burn-common/network"] sqlite = ["burn-dataset?/sqlite"] sqlite-bundled = ["burn-dataset?/sqlite-bundled"] vision = ["burn-dataset?/vision", "burn-common/network"] # Backend autodiff = ["burn-autodiff"] fusion = ["burn-wgpu?/fusion"] ## Backend features metal = ["burn-candle?/metal"] accelerate = ["burn-candle?/accelerate", "burn-ndarray?/blas-accelerate"] openblas = ["burn-ndarray?/blas-openblas"] openblas-system = ["burn-ndarray?/blas-openblas-system"] blas-netlib = ["burn-ndarray?/blas-netlib"] autotune = ["burn-wgpu?/autotune"] template = ["burn-wgpu?/template"] ndarray = ["burn-ndarray"] tch = ["burn-tch"] candle = ["burn-candle"] candle-cuda = ["candle", "burn-candle/cuda"] wgpu = ["burn-wgpu"] cuda-jit = ["burn-cuda"] # Custom deserializer for Record that is helpful for importing data, such as PyTorch pt files. record-item-custom-serde = ["thiserror", "regex"] # Serialization formats experimental-named-tensor = ["burn-tensor/experimental-named-tensor"] # Backwards compatibility with previous serialized data format. record-backward-compat = [] test-tch = ["tch"] # To use tch during testing, default uses ndarray. test-wgpu = ["wgpu"] # To use wgpu during testing, default uses ndarray. test-cuda = ["cuda-jit"] # To use cuda during testing, default uses ndarray. [dependencies] # ** Please make sure all dependencies support no_std when std is disabled ** burn-common = { path = "../burn-common", version = "0.15.0", default-features = false } burn-dataset = { path = "../burn-dataset", version = "0.15.0", optional = true, default-features = false } burn-derive = { path = "../burn-derive", version = "0.15.0" } burn-tensor = { path = "../burn-tensor", version = "0.15.0", default-features = false } # Backends burn-ndarray = { path = "../burn-ndarray", version = "0.15.0", optional = true, default-features = false } burn-wgpu = { path = "../burn-wgpu", version = "0.15.0", optional = true, default-features = false } burn-cuda = { path = "../burn-cuda", version = "0.15.0", optional = true, default-features = false } burn-autodiff = { path = "../burn-autodiff", version = "0.15.0", optional = true } burn-tch = { path = "../burn-tch", version = "0.15.0", optional = true } burn-candle = { path = "../burn-candle", version = "0.15.0", optional = true } derive-new = { workspace = true } log = { workspace = true, optional = true } rand = { workspace = true, features = ["std_rng"] } # Default enables std # The same implementation of HashMap in std but with no_std support (only alloc crate is needed) hashbrown = { workspace = true, features = ["serde"] } # no_std compatible # Serialize Deserialize flate2 = { workspace = true, optional = true } serde = { workspace = true, features = ["derive"] } bincode = { workspace = true } half = { workspace = true } rmp-serde = { workspace = true, optional = true } serde_json = { workspace = true, features = ["alloc"] } #Default enables std thiserror = { workspace = true, optional = true } regex = { workspace = true, optional = true } num-traits = { workspace = true } spin = { workspace = true } # Using in place of use std::sync::Mutex when std is disabled [target.'cfg(not(target_has_atomic = "ptr"))'.dependencies] portable-atomic-util = { workspace = true } [dev-dependencies] tempfile = { workspace = true } burn-dataset = { path = "../burn-dataset", version = "0.15.0", features = [ "fake", ] } burn-ndarray = { path = "../burn-ndarray", version = "0.15.0", default-features = false } burn-autodiff = { path = "../burn-autodiff", version = "0.15.0" } [package.metadata.docs.rs] features = ["doc"]