Fix Blackwell tensor retirement accounting
This commit is contained in:
@@ -201,7 +201,9 @@ module VX_tensor_blackwell_core_block import VX_gpu_pkg::*; #(
|
||||
if (sync_launch_pending) begin
|
||||
if (sync_writeback_done) begin
|
||||
commit_select_tensor = 1'b1;
|
||||
metadata_deq = commit_if.ready;
|
||||
// BWGMMA retires when it launches. Its later tensor writeback
|
||||
// is a ghost commit and must not dequeue the next uop.
|
||||
metadata_deq = commit_if.ready && !sync_launch_is_bwgmma;
|
||||
commit_sync_done = commit_if.ready;
|
||||
end else if (sync_no_wb_done) begin
|
||||
commit_select_tensor = 1'b0;
|
||||
@@ -217,7 +219,7 @@ module VX_tensor_blackwell_core_block import VX_gpu_pkg::*; #(
|
||||
writeback_ready = 1'b0;
|
||||
commit_select_tensor = 1'b0;
|
||||
sync_done = initiate_valid && initiate_ready;
|
||||
metadata_deq = 1'b0;
|
||||
metadata_deq = sync_done;
|
||||
end else if (tcgen05_cp || tcgen05_ld || tcgen05_st || tcgen05_cb) begin
|
||||
writeback_ready = 1'b0;
|
||||
commit_select_tensor = 1'b0;
|
||||
@@ -247,6 +249,7 @@ module VX_tensor_blackwell_core_block import VX_gpu_pkg::*; #(
|
||||
commit_if.data.eop = sync_launch_is_ld ? 1'b1 : writeback_last;
|
||||
end else begin
|
||||
commit_if.valid = (sync_no_wb_done && metadata_valid) ||
|
||||
(metadata_valid && !sync_launch_pending && bwgmma && initiate_ready) ||
|
||||
(metadata_valid && !sync_launch_pending && !tensor_launch_op &&
|
||||
(!tensor_wait_op || tensor_idle));
|
||||
commit_if.data.uuid = execute_if_data_uuid;
|
||||
|
||||
Reference in New Issue
Block a user