Files
foxhunt/crates
jgrusewski 28e2bcbf22 feat: HER Future/Final strategies via GPU episode boundary tracking
Add GPU-native episode boundary tracking to enable HER Future and Final
strategies, which previously could not be used (only Random worked).

- Create her_episode_kernel.cu with 3 kernels:
  - fill_episode_ids_kernel: fills episode_ids[i] = i/L, zero CPU
  - her_sample_future_donors: samples random donor LATER in same episode via LCG
  - her_find_episode_end: finds last transition index of same episode
- Add episode_ids CudaSlice<i32> field to GpuExperienceBatch; filled by
  fill_episode_ids_gpu() on every collect_experiences_gpu() call
- Wire fill_episode_ids_kernel compilation into GpuExperienceCollector::new()
- Add future_donors_func, episode_end_func, and rng_states fields to GpuHer
- Add relabel_batch_with_strategy() dispatching to GPU episode kernels based
  on HerGpuStrategy (Future or Final); errors on Random (use existing path)
- All episode ID computation uses direct integer arithmetic (i/L), no scan

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 02:21:21 +01:00
..