[package]
authors = ["nathanielsimard <nathaniel.simard.42@gmail.com>"]
categories = ["science"]
description = "Provide optimizations that can be used with cubecl based backends."
documentation = "https://docs.rs/burn-cubecl-fusion"
edition.workspace = true
keywords = ["deep-learning", "machine-learning", "gpu"]
license.workspace = true
name = "burn-cubecl-fusion"
readme.workspace = true
repository = "https://github.com/tracel-ai/burn/tree/main/crates/burn-cubecl-fusion"
version.workspace = true

[lints]
workspace = true

[features]
default = ["autotune", "std", "cubecl/default", "burn-fusion/default"]

autotune = []
autotune-checks = ["cubecl/autotune-checks", "burn-backend", "half"]
doc = ["default"]
std = ["cubecl/std", "burn-backend?/std", "burn-fusion/std"]
tracing = [
    "cubecl/tracing",
    "burn-std/tracing",
    "burn-backend/tracing",
    "burn-fusion/tracing",
]

[dependencies]
burn-fusion = { path = "../burn-fusion", version = "=0.21.0-pre.2", default-features = false }
burn-ir = { path = "../burn-ir", version = "=0.21.0-pre.2", default-features = false }
burn-std = { path = "../burn-std", version = "=0.21.0-pre.2", features = [
    "cubecl",
] }
cubecl = { workspace = true }
cubek = { workspace = true, features = ["matmul", "reduce", "quantization"] }
half = { workspace = true, optional = true }

# Only for `TensorData` with autotune-checks
burn-backend = { path = "../burn-backend", version = "=0.21.0-pre.2", default-features = false, optional = true }

derive-new = { workspace = true }
serde = { workspace = true }

[dev-dependencies]
cubecl = { workspace = true, features = ["test-runtime"] }

[package.metadata.docs.rs]
features = ["doc"]
rustdoc-args = ["--cfg", "docsrs"]
