gemmkit 0.1.1

A clean, extensible, high-performance GEMM (general matrix multiply) engine
Documentation
[package]
name = "gemmkit"
description = "A clean, extensible, high-performance GEMM (general matrix multiply) engine"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "README.md"

[features]
default = ["std", "parallel"]
std = ["dep:raw-cpuid"]
parallel = ["std", "dep:rayon"]
wasm_threads = ["parallel"]

# Optional element-type
complex = ["dep:num-complex"] # c32/c64 GEMM with conjA/conjB (`gemm_cplx`)
half = ["dep:half"] # f16/bf16 mixed-precision GEMM (f32 accumulate)
int8 = [] # i8 -> i32 integer GEMM (`gemm_i8`)

# Optional capability
epilogue = [] # fused epilogues: bias/activation

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
rayon = { version = "1.10", optional = true }
half = { version = "2", default-features = false, optional = true }
num-complex = { version = "0.4", default-features = false, optional = true }

[target.'cfg(any(target_arch = "x86", target_arch = "x86_64"))'.dependencies]
raw-cpuid = { version = "11", optional = true }

[target.'cfg(all(not(miri), not(target_family = "wasm")))'.dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
gemm = "0.18"
matrixmultiply = "0.3"
proptest = "1"

[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
rayon = "1.10"

[[bench]]
name = "gemm_bench"
harness = false