[package] name = "htm_rust" version = "0.1.0" edition = "2021" authors = ["Feather/HYDRA"] description = "Numenta BAMI-spec Hierarchical Temporal Memory (Spatial Pooler + Temporal Memory) with pyo3 bindings" license = "MIT" [lib] name = "htm_rust" crate-type = ["cdylib", "rlib"] [dependencies] pyo3 = { version = "0.22", features = ["extension-module"] } numpy = "0.22" ndarray = "0.16" rand = "0.8" rand_xoshiro = { version = "0.6", features = ["serde1"] } serde = { version = "1", features = ["derive"] } bincode = "1.3" # cudarc: CUDA Rust bindings with dynamic-loading (no link-time dep on libcuda). # Kernels are embedded as PTX and JIT-compiled at runtime. cudarc = { version = "0.12", default-features = false, features = ["dynamic-linking", "driver", "cuda-12010"], optional = true } [build-dependencies] # Only required when building with --features gpu. We shell to nvcc directly # so we don't need cc's cuda support (which drags in extra deps). [features] default = [] # `gpu` adds the HTMRegionGPU class, compiles .cu kernels to PTX at build time, # and links cudarc. Without this feature the crate is pure-CPU and has no # CUDA dependency at build or run time. gpu = ["cudarc"] [profile.release] opt-level = 3 lto = "thin" codegen-units = 1