Keep masked barriers local under cluster gbar

This commit is contained in:
2026-05-27 09:07:47 +08:00
parent 0ad87bde81
commit c87fea5c48
2 changed files with 4 additions and 4 deletions

View File

@@ -91,7 +91,7 @@ module VX_tensor_ctrl_unit import VX_gpu_pkg::*; #(
assign barrier.id = req_rs1_data[`NB_WIDTH-1:0];
`ifdef GBAR_ENABLE
`ifdef GBAR_CLUSTER_ENABLE
assign barrier.is_global = 1'b1;
assign barrier.is_global = is_bar_mask ? 1'b0 : 1'b1;
`else
assign barrier.is_global = req_rs1_data[31];
`endif

View File

@@ -113,9 +113,9 @@ module VX_wctl_unit import VX_gpu_pkg::*; #(
assign barrier.id = rs1_data[`NB_WIDTH-1:0];
`ifdef GBAR_ENABLE
`ifdef GBAR_CLUSTER_ENABLE
// all barriers are cluster-wide barriers, which is implemented by
// modifying the global barrier logic
assign barrier.is_global = 1'b1;
// Explicit warp masks are core-local; rs2 carries the mask, not a warp
// count for the cluster global-barrier protocol.
assign barrier.is_global = is_bar_mask ? 1'b0 : 1'b1;
`else
assign barrier.is_global = rs1_data[31];
`endif