- Fork cudarc locally (vendor/cudarc): add CudaContext::load_cubin() that calls cuModuleLoadData directly — zero nvrtc dependency - Remove "nvrtc" feature from ml-core, ml-dqn, ml-ppo Cargo.toml - Replace all 89 Ptx::from_binary + load_module calls with load_cubin - ml-core cuda_autograd: wire 9 stub constructors to precompiled cubins (activation, elementwise, linear, loss, reduction, dropout, layer_norm, optimizer) - ml-core build.rs: compile 8 BF16-native CUDA kernels via nvcc - cubin_loader.rs: thin wrapper around CudaContext::load_cubin() - Fix size_of::<f32> in gpu_tensor.rs, stream_ops.rs, layer_norm.rs - Fix test data: Vec<f32> → Vec<half::bf16> for memcpy_htod - Stub ml-ppo/ml-dqn runtime compile_ptx calls (dead code) - backtest_metrics_kernel.cu: full native BF16 rewrite (no float) - backtest_env_kernel.cu: shared memory → __nv_bfloat16 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
64 lines
1.5 KiB
TOML
64 lines
1.5 KiB
TOML
[package]
|
|
name = "ml-dqn"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
homepage.workspace = true
|
|
documentation.workspace = true
|
|
publish.workspace = true
|
|
keywords.workspace = true
|
|
categories.workspace = true
|
|
description = "DQN reinforcement learning for Foxhunt trading"
|
|
|
|
[features]
|
|
default = ["cuda"]
|
|
cuda = ["cudarc"]
|
|
|
|
[dependencies]
|
|
ml-core.workspace = true
|
|
common.workspace = true
|
|
config.workspace = true
|
|
risk = { path = "../risk" }
|
|
|
|
# GPU compute (direct CUDA)
|
|
cudarc = { version = "0.19", optional = true, default-features = false, features = ["driver", "cublas", "dynamic-linking", "std", "cuda-version-from-build-system"] }
|
|
|
|
# Serialization
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
safetensors = "0.7"
|
|
bincode = "1.3"
|
|
|
|
# Core utilities
|
|
thiserror.workspace = true
|
|
anyhow.workspace = true
|
|
tracing.workspace = true
|
|
chrono.workspace = true
|
|
rand.workspace = true
|
|
rand_distr.workspace = true
|
|
rust_decimal.workspace = true
|
|
async-trait.workspace = true
|
|
tokio.workspace = true
|
|
|
|
# Crypto (checkpoint signing)
|
|
sha2 = "0.10"
|
|
half = "2.6"
|
|
hex = "0.4"
|
|
|
|
# Concurrency
|
|
parking_lot = { version = "0.12", features = ["hardware-lock-elision"] }
|
|
|
|
# Numerics
|
|
ndarray = { workspace = true, features = ["rayon"] }
|
|
|
|
[dev-dependencies]
|
|
tokio = { workspace = true, features = ["test-util", "macros"] }
|
|
approx.workspace = true
|
|
tempfile = "3"
|
|
|
|
[lints]
|
|
workspace = true
|