merge: HtoD→mapped-pinned migration batch 3 (action selector + DQN ctor + fused training, 23 sites)
Agent 3 — set_count_bonuses HOT path (3-6 HtoD/call → 0), gpu_dqn_trainer
constructor block (11 COLD sites: weight_decay_mask, branch metadata, gamma,
q_quantile, spectral_norm, stochastic_depth, VSN groups, mamba2 init),
upload_params/upload_target_params (2 WARM), HER + curriculum episode_starts
(3 WARM sites in fused_training and training_loop).
Strategy: COLD/WARM sites use mapped-pinned staging + DtoD into existing
CudaSlice destinations to avoid disturbing 100+ downstream consumers; HOT
set_count_bonuses uses persistent MappedF32Buffer fields (no DtoD per call).
5 commits, 23 sites total. Adds MappedU64Buffer for spectral-norm host_desc[78].
Per feedback_no_htod_htoh_only_mapped_pinned.md — third of 3 parallel batches.
# Conflicts:
# crates/ml/src/cuda_pipeline/mapped_pinned.rs