[package]
edition = "2021"
rust-version = "1.86"
name = "pictor-kernels"
version = "0.1.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "1-bit Q1_0_g128 compute kernels (dequant, GEMV, GEMM) for Pictor"
documentation = "https://docs.rs/pictor-kernels"
readme = "README.md"
keywords = [
"simd",
"1-bit",
"kernels",
"gemv",
"avx2",
]
categories = [
"science",
"algorithms",
]
license = "Apache-2.0"
repository = "https://github.com/vbasky/pictor"
[features]
avx2 = []
cuda = [
"gpu",
"scirs2-core/gpu",
"scirs2-core/cuda",
]
default = []
gpu = ["scirs2-core/gpu"]
metal = [
"gpu",
"scirs2-core/gpu",
"scirs2-core/metal",
"dep:metal",
"dep:objc",
]
native-cuda = [
"gpu",
"dep:cudarc",
]
native-cuda-11 = ["native-cuda"]
neon = []
simd-avx2 = []
simd-avx512 = []
simd-neon = []
wasm = []
[lib]
name = "pictor_kernels"
path = "src/lib.rs"
[[example]]
name = "gemv_benchmark"
path = "examples/gemv_benchmark.rs"
required-features = ["metal"]
[[test]]
name = "capof8_audit"
path = "tests/capof8_audit.rs"
[[test]]
name = "cross_tier"
path = "tests/cross_tier.rs"
[[test]]
name = "cuda_tq2_gemv_parity"
path = "tests/cuda_tq2_gemv_parity.rs"
[[test]]
name = "edge_cases"
path = "tests/edge_cases.rs"
[[test]]
name = "error_handling"
path = "tests/error_handling.rs"
[[test]]
name = "fp8_kernels"
path = "tests/fp8_kernels.rs"
[[test]]
name = "fp8_simd_parity"
path = "tests/fp8_simd_parity.rs"
[[test]]
name = "fuzz_kernels"
path = "tests/fuzz_kernels.rs"
[[test]]
name = "gpu_backend_tests"
path = "tests/gpu_backend_tests.rs"
[[test]]
name = "proptest_kernels"
path = "tests/proptest_kernels.rs"
[[test]]
name = "tuning_tests"
path = "tests/tuning_tests.rs"
[[bench]]
name = "kernel_benchmarks"
path = "benches/kernel_benchmarks.rs"
harness = false
[dependencies.cudarc]
version = "0.19"
features = [
"nvrtc",
"cuda-version-from-build-system",
"fallback-latest",
]
optional = true
[dependencies.half]
version = "2.7.1"
features = ["serde"]
[dependencies.pictor-core]
version = "0.1.0"
[dependencies.scirs2-core]
version = "0.5.0"
features = [
"simd",
"std",
]
default-features = false
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tracing]
version = "0.1.44"
[dev-dependencies.criterion]
version = "0.8.2"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.11.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rayon]
version = "1.12.0"
[target.'cfg(target_os = "macos")'.dependencies.metal]
version = "0.33.0"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc]
version = "0.2"
optional = true
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ['cfg(feature, values("cargo-clippy"))']