fix: backtest evaluator action_select kernel arg mismatch (SIGSEGV)

The action_select kernel signature changed from single `float epsilon`
to 4 args (eps_start, eps_end, current_epoch, total_epochs) for GPU-side
cosine schedule. The backtest evaluator wasn't updated, causing a
segfault from misaligned kernel args.

Fix: pass eps_start=0, eps_end=0 (greedy in backtest, no exploration).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-04-08 00:11:36 +02:00
parent 1f6af19ee2
commit cdcc462368

View File

@@ -1031,7 +1031,6 @@ impl GpuBacktestEvaluator {
let b2 = dqn_cfg.branch_2_size as i32;
let v_min_f = dqn_cfg.v_min;
let v_max_f = dqn_cfg.v_max;
let epsilon = 0.0_f32;
let state_row_bytes = n * state_dim * std::mem::size_of::<half::bf16>();
let total_chunks = (self.max_len + DQN_BACKTEST_CHUNK_SIZE - 1) / DQN_BACKTEST_CHUNK_SIZE;
@@ -1132,7 +1131,10 @@ impl GpuBacktestEvaluator {
.arg(ch_actions)
.arg(ch_rng)
.arg(ch_q_gaps)
.arg(&epsilon)
.arg(&0.0_f32) // eps_start (greedy in backtest)
.arg(&0.0_f32) // eps_end
.arg(&0_i32) // current_epoch
.arg(&1_i32) // total_epochs
.arg(&batch_i32)
.arg(&b0)
.arg(&b1)