[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
[lints]
workspace = true
[features]
autotune-checks = ["cubecl-runtime/autotune-checks"]
default = [
"std",
"stdlib",
"cubecl-core/default",
"cubecl-cuda?/default",
"cubecl-cpu?/default",
"cubecl-hip?/default",
"cubecl-metal?/default",
"cubecl-wgpu?/default",
]
std = [
"cubecl-core/std",
"cubecl-cpu?/std",
"cubecl-cuda?/std",
"cubecl-hip?/std",
"cubecl-metal?/std",
"cubecl-wgpu?/std",
]
stdlib = ["cubecl-std"]
template = ["cubecl-core/template"]
exclusive-memory-only = ["cubecl-wgpu?/exclusive-memory-only"]
profile-tracy = ["cubecl-runtime/profile-tracy", "cubecl-wgpu?/profile-tracy"]
persistence = [
"cubecl-runtime/persistence",
"cubecl-cpu?/persistence",
"cubecl-cuda?/persistence",
"cubecl-hip?/persistence",
"cubecl-metal?/persistence",
"cubecl-wgpu?/persistence",
]
tokio = ["cubecl-core/tokio"]
tracing = [
"cubecl-core/tracing",
"cubecl-cuda?/tracing",
"cubecl-cpu?/tracing",
"cubecl-hip?/tracing",
"cubecl-wgpu?/tracing",
]
cpu = ["cubecl-cpu"]
cuda = ["cubecl-cuda"]
cuda-cpp = ["cubecl-cuda?/cpp"]
cuda-ptx-wmma = ["cubecl-cuda?/ptx-wmma"]
hip = ["cubecl-hip"]
hip-cpp = ["cubecl-hip?/cpp"]
hip-rocwmma = ["cubecl-hip?/rocwmma"]
metal = ["wgpu-msl"]
metal-native = ["cubecl-metal"]
pliron-dump = [
"cubecl-cuda?/pliron-dump",
"cubecl-hip?/pliron-dump",
"cubecl-metal?/pliron-dump",
"cubecl-wgpu?/pliron-dump",
"cubecl-cpu?/pliron-dump",
]
rocm = ["hip"]
vulkan = ["wgpu-spirv"]
webgpu = ["wgpu"]
wgpu = ["cubecl-wgpu"]
wgpu-msl = ["wgpu", "cubecl-wgpu/msl"]
wgpu-spirv = ["wgpu", "cubecl-wgpu/spirv"]
test-runtime = ["wgpu"]
[dependencies]
cubecl-core = { path = "../cubecl-core", version = "0.11.2", default-features = false }
cubecl-environment = { path = "../cubecl-environment", version = "0.11.2", default-features = false }
cubecl-ir = { path = "../cubecl-ir", version = "0.11.2", default-features = false }
cubecl-runtime = { path = "../cubecl-runtime", version = "0.11.2", default-features = false }
cubecl-std = { path = "../cubecl-std", version = "0.11.2", optional = true }
half = { workspace = true }
cubecl-cpu = { path = "../cubecl-cpu", version = "0.11.2", default-features = false, optional = true }
cubecl-cuda = { path = "../cubecl-cuda", version = "0.11.2", default-features = false, optional = true }
cubecl-hip = { path = "../cubecl-hip", version = "0.11.2", default-features = false, optional = true }
cubecl-metal = { path = "../cubecl-metal", version = "0.11.2", default-features = false, optional = true }
cubecl-wgpu = { path = "../cubecl-wgpu", version = "0.11.2", default-features = false, optional = true }