From 8ccb5a12c97bfbe04b783b779e518ac7cf08d91a Mon Sep 17 00:00:00 2001 From: Davit Grigoryan Date: Fri, 1 May 2026 04:53:58 +0000 Subject: make sure max 1 intra coissue for primary warp --- src/gpgpu-sim/shader.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') 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; } } -- cgit v1.3