[package]
name = "aprender-gpu"
version.workspace = true
edition = "2021"
authors = ["Pragmatic AI Labs"]
license = "MIT"
description = "Pure Rust PTX generation for NVIDIA CUDA - no LLVM, no nvcc"
repository = "https://github.com/paiml/trueno"
readme = "README.md"
keywords = ["cuda", "ptx", "gpu", "simd", "nvidia"]
categories = ["algorithms", "mathematics", "science"]
[dependencies]
thiserror = "2.0"
batuta-common = "0.1"
libloading = { version = "0.8", optional = true }
wasm-bindgen = { version = "0.2", optional = true }
trueno-viz = { version = "0.1.4", optional = true }
simular = { version = "0.2.0", optional = true }
renacer = { version = "0.10", optional = true }
presentar-core = { version = "0.3", optional = true }
presentar-terminal = { version = "0.3", optional = true }
crossterm = { version = "0.28", optional = true }
wgpu = { version = "24", optional = true }
[target.'cfg(target_os = "macos")'.dependencies]
manzana = { version = "0.2.0", optional = true }
[dev-dependencies]
proptest = "1.9"
criterion = "0.7"
simular = "0.2.0"
pollster = "0.4"
bytemuck = { version = "1.21", features = ["derive"] }
[target.'cfg(target_os = "linux")'.dev-dependencies]
renacer = "0.10"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
jugar-probar = { version = "0.4.0", optional = true }
[features]
default = []
cuda = ["dep:libloading"]
wasm = ["dep:wasm-bindgen"]
viz = ["dep:trueno-viz"]
stress-test = ["dep:simular", "dep:renacer"]
tui-monitor = ["stress-test", "dep:presentar-core", "dep:presentar-terminal", "dep:crossterm"]
gpu-pixels = ["dep:jugar-probar", "dep:presentar-core", "dep:presentar-terminal", "dep:crossterm"]
wgpu = ["dep:wgpu"]
metal = ["dep:manzana"]
[package.metadata.wasm-pack.profile.release]
wasm-opt = false
[lints.rust]
unsafe_code = "allow"
[lib]
name = "trueno_gpu"
path = "src/lib.rs"
crate-type = ["cdylib", "rlib"]
[[bench]]
name = "ptx_gen"
harness = false