cubecl 0.7.0

Multi-platform high-performance compute language extension for Rust.
Documentation
[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"]