feat(rl): encoder input expansion 40 → 56 dims (trade-context + multires)
Introduces ENCODER_INPUT_DIM = 56 (FEATURE_DIM + 16). All encoder first-layer weight matrices (VSN gate, Mamba2 L1 input projection) now sized for 56 input dims. The extra 16 are per-batch state: 4 trade_context + 12 multires features. - snap_feature_assemble_batched: output stride → ENCODER_INPUT_DIM, zero-fills dims [40..56] for the broadcast kernel to overwrite. - New rl_encoder_context_broadcast.cu: writes trade_context_d[B×4] + multires_output_d[B×12] into each of the K sequence rows per batch at positions [40..56]. - CfcConfig.n_in, Mamba2 L1 in_dim, VSN gate, window_tensor_d, all forward/backward scratch buffers updated to ENCODER_INPUT_DIM. - CfcTrunk default config updated. The broadcast kernel launch integration into the forward_only path is the final wire-up step — until then dims 40-55 are zero-filled (safe: Xavier init on new columns means encoder starts by learning to ignore them, then gradually incorporates the signal). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,7 @@ const KERNELS: &[&str] = &[
|
||||
"rl_recent_outcome_update", // P10: per-batch signed outcome EMA for anti-martingale sizing
|
||||
"rl_trade_context_update", // P1: per-batch trade-arc features (time_in_trade, unrealized_R, pos_mag, entry_dist)
|
||||
"rl_multires_features_update", // P0: per-batch multi-resolution streaming features (3 horizons × 4 features)
|
||||
"rl_encoder_context_broadcast", // P2: broadcast per-batch context (16 dims) into encoder input [B,K,56] at cols 40-55
|
||||
];
|
||||
|
||||
// Cache bust v31 — five new reduce / derive kernels populate the input
|
||||
|
||||
Reference in New Issue
Block a user