[package]
name = "himada-dispatch"
version = "0.1.1"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "Adaptive SIMD dispatch for Himada — auto-selects fastest kernel at runtime"
[lib]
name = "himada_dispatch"
crate-type = ["cdylib", "staticlib", "lib"]
[features]
default = []
cli = []
force-scalar = []
force-sse = []
force-avx2 = []
force-neon = []
sve = []
ext-bench = ["rayon", "nalgebra", "wide"]
half = ["dep:half"]
metal = ["dep:metal", "dep:objc"]
cuda = []
vulkan = ["dep:ash", "dep:naga", "dep:bytemuck"]
[dependencies]
himada-core = "0.1"
himada-macros = "0.1"
half = { version = "2", optional = true }
serde = { version = "1", features = ["derive", "std"] }
serde_json = "1"
dirs = "5"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
libc = "0.2"
ash = { version = "0.38", optional = true }
naga = { version = "0.20", features = ["glsl-in", "spv-out"], optional = true }
bytemuck = { version = "1", optional = true }
[target.'cfg(target_os = "macos")'.dependencies]
metal = { version = "0.28", optional = true }
objc = { version = "0.2", optional = true }
[dependencies.rayon]
version = "1"
optional = true
[dependencies.nalgebra]
version = "0.33"
optional = true
[dependencies.wide]
version = "0.7"
optional = true
[dev-dependencies]
proptest = "1"
criterion = { version = "0.5", features = ["html_reports"] }
[[bin]]
name = "himada-bench"
path = "src/main.rs"
required-features = ["cli"]
[[bench]]
name = "simd_bench"
harness = false