hanzo-kernel 0.2.18

Hanzo's first-party GPU kernel DSL: one Rust source, lowered to CUDA/ROCm/Vulkan/Metal.
[package]
name = "hanzo-kernel"
version = "0.2.18"
edition = "2021"
description = "Hanzo's first-party GPU kernel DSL: one Rust source, lowered to CUDA/ROCm/Vulkan/Metal."
license = "BSD-3-Clause"
repository = "https://github.com/hanzoai/ml"
documentation = "https://docs.rs/hanzo-kernel"
readme = "README.md"
keywords = ["gpu", "kernel", "cuda", "vulkan", "metal"]
categories = ["hardware-support", "science"]

[dependencies]
# CubeCL is the lowering engine (the value); hanzo-kernel is the namespace (the place).
# Kernel source only ever names `hanzo_kernel::*` -- `cubecl` appears nowhere but this manifest.
cubecl = { version = "0.10", default-features = false }
hanzo-kernel-macros = { path = "../hanzo-kernel-macros", version = "0.1.1" }
half = "2"

[features]
default = ["cpu"]
cpu = ["cubecl/cpu"]
vulkan = ["cubecl/wgpu", "cubecl/vulkan"]
spirv-dump = ["cubecl/spirv-dump"]
metal = ["cubecl/wgpu", "cubecl/metal"]
cuda = ["cubecl/cuda"]
# `cubecl/std` is required: cubecl-hip's server uses cubecl-runtime's `MultiStream`, which lives
# behind the `multi_threading` cfg = `all(feature="std", not(wasm))`. cubecl's `hip`/`rocm` features
# do not pull std, so without this the ROCm backend fails to compile (MultiStream unresolved).
rocm = ["cubecl/hip", "cubecl/rocm", "cubecl/std"]

[[bin]]
name = "matvec-check"
path = "src/main.rs"

[[bin]]
name = "dp4a-probe"
path = "src/dp4a_probe.rs"
required-features = ["vulkan"]

# ROCm 7.13 (gfx1151) reports HIP patch 99004, past the newest bindings published in
# cubecl-hip-sys 7.2.5321100 (53211). Upstream's build.rs then emits a `hip_99004` feature that has
# no bindings module -> every `cubecl_hip_sys` symbol is undefined and cubecl-hip fails to build.
# This vendored fork adds a build.rs fallback: an unknown newer HIP patch selects the latest shipped
# bindings, which is ABI-safe because AMD versions every changed symbol (R0600) and 7.13 still maps
# `hipGetDeviceProperties` -> the R0600 revision. Bindings for known versions are unchanged.
[patch.crates-io]
cubecl-hip-sys = { path = "vendor/cubecl-hip-sys" }