jgrusewski
befa7e2f55
perf(gpu): shared memory weight caching, GPU reductions, fix staging flush dim
CUDA kernel: cooperative_load_tile() + matvec_leaky_relu_shmem() cache weight
matrices in shared memory (SRAM), reducing HBM traffic 32x (1.76TB→55GB).
Block size increased to 256 threads for better SHMEM utilization.
Trainer hot-path: replace to_vec2 full-tensor CPU readbacks with GPU-native
flatten_all/min/max/mean_all (4 scalar readbacks). Merge two Q-diagnostic
forward passes into one. Deferred max_priority flush (1 GPU→CPU sync/epoch
instead of ~8/batch).
Fix StagedGpuBuffer::flush() dimension mismatch: used raw experience
state.len() (45) instead of gpu.state_dim() (48 aligned), causing
slice_scatter crash [500,48] vs [n,45] when CPU experiences flush into
GPU-aligned replay buffer.
Fix hardcoded state_dim=48 in optimal_n_episodes() — now uses dynamic
state_dim from network config (correct for OFI-enabled 56-dim states).
Dynamic episode auto-scaling guard: only auto-scale when gpu_n_episodes≥128
(production), respecting explicit test overrides (gpu_n_episodes=2).
Tests: 874 ml + 392 ml-dqn = 1266 pass, 0 fail.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:24:33 +01:00
..
2026-03-01 22:47:39 +01:00
2026-03-09 18:44:29 +01:00
2026-03-05 00:22:04 +01:00
2026-03-01 22:47:39 +01:00
2026-03-07 23:28:18 +01:00
2026-03-01 22:47:39 +01:00
2026-03-01 22:47:39 +01:00
2026-03-09 22:24:33 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 15:17:22 +01:00
2026-03-09 21:16:47 +01:00
2026-03-01 22:47:39 +01:00
2026-03-08 15:17:22 +01:00
2026-03-09 22:24:33 +01:00
2026-03-08 22:31:49 +01:00
2026-03-08 22:31:49 +01:00
2026-03-08 15:21:46 +01:00
2026-03-09 16:35:38 +01:00
2026-03-08 22:31:49 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 15:17:22 +01:00
2026-03-09 17:13:46 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 22:31:49 +01:00
2026-03-08 15:17:22 +01:00
2026-03-08 15:17:22 +01:00
2026-03-01 22:47:39 +01:00
2026-03-05 23:19:38 +01:00
2026-03-01 22:47:39 +01:00
2026-03-01 22:47:39 +01:00
2026-03-05 00:18:58 +01:00
2026-03-01 22:47:39 +01:00
2026-03-03 22:16:35 +01:00