gam-gpu 0.3.145

GPU (CUDA/NVRTC) dispatch, device runtime, and BLAS kernels for the gam penalized-likelihood engine
Documentation
[package]
name = "gam-gpu"
version = "0.3.145"
edition = "2024"
description = "GPU (CUDA/NVRTC) dispatch, device runtime, and BLAS kernels for the gam penalized-likelihood engine"
license = "AGPL-3.0-or-later"
repository = "https://github.com/SauersML/gam"

[lints.rust]
warnings = "deny"

[dependencies]
faer = "0.24.0"
gam-linalg = { path = "../gam-linalg", version = "=0.3.145" }
gam-runtime = { path = "../gam-runtime", version = "=0.3.145" }
libloading = "0.8.9"
libm = "0.2.16"
log = "0.4.29"
ndarray = { version = "0.17.2", features = ["serde", "rayon"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = { version = "1.0.149", features = ["float_roundtrip"] }

[target.'cfg(target_os = "linux")'.dependencies]
cudarc = { version = "0.19.6", default-features = false, features = ["std", "driver", "runtime", "nvrtc", "cublas", "cublaslt", "cusparse", "cusolver", "cusolvermg", "curand", "nvtx", "cupti", "fallback-dynamic-loading", "cuda-12080"] }

[dev-dependencies]
gam-problem = { path = "../gam-problem" }
# Test-only edge: `gam-sae` depends on `gam-gpu` (normal dep), so this back-edge
# closes a cycle. Cargo permits a dependency cycle as long as at least one edge
# is dev-only — which this is (it exists solely so the encode-full-path
# throughput integration test can drive the production `EncodeAtlas` encode).
gam-sae = { path = "../gam-sae" }