All gradient buffer clears now use cuMemsetD32Async (u32-wide writes) instead of cuMemsetD8Async (byte-wide). 4x memory bandwidth utilization for the ~33 memset calls per training step. Size params converted from bytes to f32 element count (.num_bytes() → .len()). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>