content: [package]
  authors = ["nathanielsimard <nathaniel.simard.42@gmail.com>"]
  categories = ["science", "mathematics", "algorithms"]
  description = "Multi-platform high-performance compute language extension for Rust."
  edition.workspace = true
  keywords = ["gpu", "cuda", "wgpu", "gpgpu", "tensor"]
  license.workspace = true
  name = "cubecl"
  readme.workspace = true
  repository = "https://github.com/tracel-ai/cubecl"
  version.workspace = true
  
  [features]
  autotune-checks = ["cubecl-runtime/autotune-checks"]
  convolution = ["dep:cubecl-convolution"]
  default = [
      "std",
      "stdlib",
      "matmul",
      "convolution",
      "cubecl-core/default",
      "cubecl-cuda?/default",
      "cubecl-cpu?/default",
      "cubecl-hip?/default",
      "cubecl-wgpu?/default",
  ]
  exclusive-memory-only = ["cubecl-wgpu?/exclusive-memory-only"]
  matmul = ["dep:cubecl-matmul"]
  random = ["dep:cubecl-random"]
  reduce = ["dep:cubecl-reduce"]
  std = ["cubecl-core/std", "cubecl-wgpu?/std", "cubecl-cuda?/std"]
  stdlib = ["cubecl-std"] # CubeCL standard library
  template = ["cubecl-core/template"]
  
  profile-tracy = ["cubecl-runtime/profile-tracy", "cubecl-wgpu?/profile-tracy"]
  
  
  # Runtimes
  cpu = ["cubecl-cpu"]
  cuda = ["cubecl-cuda"]
  cuda-ptx-wmma = ["cubecl-cuda?/ptx-wmma"]
  hip = ["cubecl-hip"]
  hip-rocwmma = ["cubecl-hip?/rocwmma"]
  wgpu = ["cubecl-wgpu"]
  wgpu-msl = ["wgpu", "cubecl-wgpu/msl"]
  wgpu-spirv = ["wgpu", "cubecl-wgpu/spirv"]
  spirv-dump = ["cubecl-wgpu/spirv-dump"]
  
  [dependencies]
  cubecl-convolution = { path = "../cubecl-convolution", version = "0.7.0", default-features = false, optional = true }
  cubecl-core = { path = "../cubecl-core", version = "0.7.0", default-features = false }
  cubecl-cpu = { path = "../cubecl-cpu", version = "0.7.0", default-features = false, optional = true }
  cubecl-cuda = { path = "../cubecl-cuda", version = "0.7.0", default-features = false, optional = true }
  cubecl-hip = { path = "../cubecl-hip", version = "0.7.0", default-features = false, optional = true }
  cubecl-matmul = { path = "../cubecl-matmul", version = "0.7.0", default-features = false, optional = true }
  cubecl-random = { path = "../cubecl-random", version = "0.7.0", default-features = false, optional = true }
  cubecl-reduce = { path = "../cubecl-reduce", version = "0.7.0", default-features = false, optional = true }
  cubecl-runtime = { path = "../cubecl-runtime", version = "0.7.0", default-features = false }
  cubecl-std = { path = "../cubecl-std", version = "0.7.0", optional = true }
  cubecl-wgpu = { path = "../cubecl-wgpu", version = "0.7.0", default-features = false, optional = true }
  half = { workspace = true }
  
  [[bench]]
  harness = false
  name = "matmul"
  required-features = ["random"]
  
  [[bench]]
  harness = false
  name = "conv2d"
  required-features = ["random"]
  
  [[bench]]
  harness = false
  name = "memcpy_async"
  required-features = ["random"]
  
  [[bench]]
  harness = false
  name = "unary"
  required-features = ["random"]
  