[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", "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 = { workspace = true }
burn-ir = { workspace = true }
burn-std = { workspace = true, features = ["default"] }
cubecl = { workspace = true }
cubek = { workspace = true, features = [
    "matmul",
    "reduce",
    "quantization",
    "stdlib",
] }
half = { workspace = true, optional = true }

# Needed for the cubecl dtype helpers (`burn_backend::cubecl::*`).
burn-backend = { workspace = true, features = ["cubecl"] }

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

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

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