- Fix EMA kernel: add tau_buf device field, async HtoD via stable host address, pass pointer not scalar (was ILLEGAL_ADDRESS every step) - Fix HER relabel kernel: revert indirect ptr_buf to direct bf16 pointer - Fix PER update kernel: revert indirect ptr_buf to direct u32/bf16 pointers - Remove IQL per-step DtoH readback (cuStreamSynchronize blocks graph capture) - Permanently disable cudarc event tracking (SyncOnDrop safe for capture) - EventTrackingGuard no longer re-enables tracking on drop - Pre-allocate pass1_event/pass3_event (no cuEventCreate per step) - RawCudaGraph: raw CUDA driver API bypassing cudarc bind_to_thread - graph_aux captures ~30 aux kernel launches (HER+clip+EMA+attn+IQL+IQN+CQL) into single CUDA graph, replayed from step 3+ for zero launch overhead - IQN/GpuDqnTrainer: tau_host stable field for graph-captured HtoD - Remove 3 dead indirect pointer kernels from dqn_utility_kernels.cu - Local RTX 3050: 7.5ms/step steady state (batch=64, 200 steps/epoch) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ml
10-model ML ensemble for the Foxhunt HFT system, built on Candle v0.9.1.
Models
- DQN (Rainbow) — deep Q-network with prioritized replay, dueling heads, noisy nets
- PPO — proximal policy optimization with GAE, LSTM policies, clip-higher
- TFT — temporal fusion transformer for multi-horizon forecasting
- Mamba2 — state space model for sequence prediction
- Liquid Networks — biologically inspired networks for non-stationary data
- TLOB — transformer-based limit order book analysis
- KAN — Kolmogorov-Arnold networks
- xLSTM — extended LSTM architecture
- TGGN — temporal graph neural network
- Diffusion — diffusion-based generative model
Key Modules
ensemble— model ensemble coordination and confidence aggregationhyperopt— PSO-based hyperparameter optimization with per-model adapterstrainers— unified training loops (DQN, PPO, supervised)inference—InferenceAdaptertrait for predictioncheckpoint— model checkpointing and restorationevaluation— walk-forward evaluation pipeline
Usage
use ml::dqn::DQN;
use ml::ppo::PpoTrainer;