Keep masked barriers local under cluster gbar
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user