diff options
| author | Davit Grigoryan <[email protected]> | 2026-05-01 04:53:58 +0000 |
|---|---|---|
| committer | Davit Grigoryan <[email protected]> | 2026-05-01 04:53:58 +0000 |
| commit | 8ccb5a12c97bfbe04b783b779e518ac7cf08d91a (patch) | |
| tree | c544d695b3251c0d3ced189bc84aad970280de2f | |
| parent | 54dafa606530557799a8db307e9eff410343fb89 (diff) | |
make sure max 1 intra coissue for primary warp
| -rw-r--r-- | src/gpgpu-sim/shader.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gpgpu-sim/shader.cc b/src/gpgpu-sim/shader.cc index a86393c..7b208e8 100644 --- a/src/gpgpu-sim/shader.cc +++ b/src/gpgpu-sim/shader.cc @@ -2237,6 +2237,16 @@ void scheduler_unit::try_intra_warp_coissue( m_scoreboard->clearSecondary(primary_warp_id); break; } + + // At most one intra coissue per primary per cycle. Mirror the + // dup_with_warp invariant enforced in try_utilization_max_coissue + // (see commentary at the intra scan of that function): issuing two + // AWARE updates against the same warp in one cycle is unsafe — the + // first co_issue_warp call mutates the splits-table, and the second + // candidate's cached split_id can refer to a stale split by then, + // leading to instructions whose scoreboard reservations are never + // released (deadlock observed under bfs-wlw with priority=1/2). + break; } } |
