diff options
Diffstat (limited to 'src')
| -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; } } |
