diff --git a/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs b/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs index 38cb37dd3..304f80b09 100644 --- a/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs +++ b/crates/ml/src/cuda_pipeline/gpu_dqn_trainer.rs @@ -1438,7 +1438,8 @@ impl GpuDqnTrainer { }; let b = self.config.batch_size as i32; let sh2 = self.config.shared_h2 as i32; - let sd = self.config.state_dim as i32; + // states_buf has stride state_dim_padded (pad128), NOT state_dim + let sd = ((self.config.state_dim + 127) & !127) as i32; let total = b * (sh2 + 3); let blocks = ((total as u32 + 255) / 256).max(1); let vsn_masked_ptr = self.vsn_masked_buf.raw_ptr();