[package] authors = ["nathanielsimard "] categories = ["science", "no-std", "embedded", "wasm"] description = "Flexible and Comprehensive Deep Learning Framework in Rust" documentation = "https://docs.rs/burn" edition.workspace = true keywords = ["deep-learning", "machine-learning", "tensor", "pytorch", "ndarray"] license.workspace = true name = "burn" readme.workspace = true repository = "https://github.com/tracel-ai/burn" rust-version = "1.92" version.workspace = true [lints] workspace = true [features] default = [ "std", "burn-core/default", "burn-train?/default", "burn-collective?/default", # Backends "burn-candle?/default", "burn-cpu?/default", "burn-ndarray?/default", "burn-tch?/default", "burn-wgpu?/default", "burn-router?/default", "burn-remote?/default", "burn-cuda?/default", "burn-autodiff?/default", "burn-rocm?/default", "burn-nn/default", "burn-optim/default", "burn-dispatch?/default", ] doc = [ "default", "train", "burn-core/doc", "burn-train/doc", "burn-collective/doc", "burn-store?/std", # Backends "burn-candle/doc", "burn-cpu?/doc", "burn-ndarray/doc", "burn-tch/doc", "burn-wgpu/doc", "burn-router/doc", "burn-cuda/doc", "burn-autodiff?/std", "burn-rocm/doc", "burn-nn/doc", "burn-optim/doc", "burn-dispatch?/doc", ] std = [ "burn-core/std", # Backends "burn-candle?/std", "burn-cpu?/std", "burn-ndarray?/std", "burn-wgpu?/std", "burn-router?/std", "burn-cuda?/std", "burn-autodiff?/std", "burn-rocm?/std", "burn-store?/std", "burn-tch?/std", "burn-nn/std", "burn-optim/std", "burn-dispatch?/std", ] tracing = [ "cubecl?/tracing", "burn-core/tracing", # Backends "burn-candle?/tracing", "burn-cpu?/tracing", "burn-ndarray?/tracing", "burn-wgpu?/tracing", "burn-router?/tracing", "burn-cuda?/tracing", "burn-autodiff?/tracing", "burn-rocm?/tracing", "burn-tch?/tracing", "burn-store?/tracing", "burn-nn/tracing", "burn-optim/tracing", "burn-dispatch?/tracing", ] network = ["burn-core/network"] # Training with full features train = ["burn-train", "autodiff", "dataset"] ## Includes the Text UI (progress bars, metric plots) tui = ["burn-train?/tui"] ## Includes system info metrics (CPU/GPU usage, etc) metrics = ["burn-train?/sys-metrics"] # Datasets dataset = ["burn-core/dataset"] sqlite = ["burn-core/sqlite"] sqlite-bundled = ["burn-core/sqlite-bundled"] # Custom deserializer for Record that is helpful for importing data, such as PyTorch pt files. record-item-custom-serde = ["burn-core/record-item-custom-serde"] # Serialization formats experimental-named-tensor = ["burn-core/experimental-named-tensor"] # Model storage and serialization (SafeTensors, PyTorch interop) store = ["burn-store"] # CubeCL re-export cubecl = ["dep:cubecl"] audio = ["burn-core/audio"] vision = ["burn-core/vision"] rl = ["dep:burn-rl", "burn-train?/rl"] # Backend ir = ["burn-ir"] autodiff = ["burn-autodiff", "burn-dispatch?/autodiff"] fusion = [ "ir", "burn-wgpu?/fusion", "burn-cuda?/fusion", "burn-rocm?/fusion", "burn-cpu?/fusion", ] ## Backend features accelerate = ["burn-candle?/accelerate", "burn-ndarray?/blas-accelerate"] autotune = [ "burn-wgpu?/autotune", "burn-cuda?/autotune", "burn-rocm?/autotune", "burn-cpu?/autotune", ] autotune-checks = [ "burn-wgpu?/autotune-checks", "burn-cuda?/autotune-checks", "burn-rocm?/autotune-checks", "burn-cpu?/autotune-checks", ] blas-netlib = ["burn-ndarray?/blas-netlib"] openblas = ["burn-ndarray?/blas-openblas"] openblas-system = ["burn-ndarray?/blas-openblas-system"] remote = ["burn-remote/client", "ir"] router = ["burn-router", "ir"] server = ["burn-remote/server"] simd = ["burn-ndarray?/simd"] template = ["burn-wgpu?/template"] collective = ["burn-collective", "burn-optim/collective", "burn-train?/ddp"] candle = ["burn-candle"] candle-cuda = ["candle", "burn-candle/cuda"] candle-metal = ["burn-candle?/metal"] cuda = ["burn-cuda", "burn-dispatch?/cuda"] rocm = ["burn-rocm", "burn-dispatch?/rocm"] ndarray = ["burn-ndarray", "burn-dispatch?/ndarray"] tch = ["burn-tch"] vulkan = ["wgpu", "burn-wgpu/vulkan", "burn-dispatch?/vulkan"] webgpu = ["wgpu", "burn-wgpu/webgpu", "burn-dispatch?/webgpu"] metal = ["wgpu", "burn-wgpu/metal", "burn-dispatch?/metal"] wgpu = ["burn-wgpu"] cpu = ["burn-cpu", "burn-dispatch?/cpu"] # Backend dispatch dispatch = ["burn-dispatch"] [dependencies] # ** Please make sure all dependencies support no_std when std is disabled ** burn-core = { path = "../burn-core", version = "=0.21.0-pre.2", default-features = false } burn-train = { path = "../burn-train", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-collective = { path = "../burn-collective", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-store = { path = "../burn-store", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-nn = { path = "../burn-nn", version = "=0.21.0-pre.2", default-features = false } burn-optim = { path = "../burn-optim", version = "=0.21.0-pre.2", default-features = false } burn-rl = { path = "../burn-rl", version = "=0.21.0-pre.2", optional = true, default-features = false } # Backends burn-autodiff = { path = "../burn-autodiff", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-candle = { path = "../burn-candle", version = "=0.21.0-pre.2", optional = true } burn-cuda = { path = "../burn-cuda", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-cpu = { path = "../burn-cpu", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-rocm = { path = "../burn-rocm", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-ndarray = { path = "../burn-ndarray", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-remote = { path = "../burn-remote", version = "=0.21.0-pre.2", default-features = false, optional = true } burn-router = { path = "../burn-router", version = "=0.21.0-pre.2", default-features = false, optional = true } burn-tch = { path = "../burn-tch", version = "=0.21.0-pre.2", default-features = false, optional = true } burn-wgpu = { path = "../burn-wgpu", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-ir = { path = "../burn-ir", version = "=0.21.0-pre.2", optional = true, default-features = false } burn-dispatch = { path = "../burn-dispatch", version = "=0.21.0-pre.2", optional = true, default-features = false } cubecl = { workspace = true, default-features = false, optional = true }