New backtest_env_step_batch kernel processes all chunk_len steps in a
single launch. Each thread handles one window, loops over steps
sequentially reading from the chunked_actions buffer. Portfolio state
stays in registers across the step loop — zero global memory round-trips
between steps.
Eliminates 512 individual kernel launches per chunk (was: DtoD copy +
env_step per step = 1024 launches per chunk). With 301 chunks for 154K
bars: ~154K launches → 301 launches. Kernel launch overhead drops from
~1.15s to ~2.3ms.
Combined with chunk 64→512 + sync reduction: validation expected to drop
from 2.5s to <0.5s.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>