From d14c770e5d18557a0eb4e7680219cc21e6f90d78 Mon Sep 17 00:00:00 2001 From: annali07 Date: Wed, 25 Feb 2026 21:22:22 -0500 Subject: [PATCH] Fix: incorrect deletion of queued kernels --- gpu-simulator/accel-sim.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gpu-simulator/accel-sim.cc b/gpu-simulator/accel-sim.cc index c5c17d2d92..74144e7593 100644 --- a/gpu-simulator/accel-sim.cc +++ b/gpu-simulator/accel-sim.cc @@ -70,7 +70,7 @@ void accel_sim_framework::simulation_loop() { unsigned finished_kernel_uid = simulate(); // cleanup finished kernel if (finished_kernel_uid || m_gpgpu_sim->cycle_insn_cta_max_hit() || - !m_gpgpu_sim->active()) { + (!concurrent_kernel_sm && !m_gpgpu_sim->active())) { cleanup(finished_kernel_uid); } @@ -125,7 +125,8 @@ void accel_sim_framework::cleanup(unsigned finished_kernel) { for (unsigned j = 0; j < kernels_info.size(); j++) { k = kernels_info.at(j); if (k->get_uid() == finished_kernel || - m_gpgpu_sim->cycle_insn_cta_max_hit() || !m_gpgpu_sim->active()) { + m_gpgpu_sim->cycle_insn_cta_max_hit() || + (!concurrent_kernel_sm && !m_gpgpu_sim->active())) { for (unsigned int l = 0; l < busy_streams.size(); l++) { if (busy_streams.at(l) == k->get_cuda_stream_id()) { finished_kernel_cuda_stream_id = k->get_cuda_stream_id();