@@ -230,7 +230,7 @@ static __device__ __forceinline__ void coop_stage_turbo4_tile(
230230 }
231231
232232 // Broadcast norm from lane 0 to all 32 lanes of this warp.
233- norm_f = __shfl_sync (0xFFFFFFFF , norm_f, 0 );
233+ norm_f = __shfl_sync (0xFFFFFFFF , norm_f, 0 , WARP_SIZE );
234234
235235 // Each lane reads 2 bytes (4 nibbles = 4 elements). qs is uint8_t[64],
236236 // 2-byte aligned at qs[2*lane_id] for any lane.
@@ -308,7 +308,7 @@ static __device__ __forceinline__ void coop_stage_turbo3_tile(
308308 }
309309
310310 // Broadcast norm from lane 0 to all 32 lanes of this warp.
311- norm_f = __shfl_sync (0xFFFFFFFF , norm_f, 0 );
311+ norm_f = __shfl_sync (0xFFFFFFFF , norm_f, 0 , WARP_SIZE );
312312
313313 // Each lane reads 1 byte of qs (its 4 elements' low2 bits) and 1
314314 // byte of signs (covers this lane's 4 elements' high1 bits, plus
@@ -476,7 +476,7 @@ __global__ void mt_paged_attention_tile_kernel(
476476 for (int l = 0 ; l < scores.ne ; ++l) {
477477 local_max = max (local_max, scores.x [l]);
478478 }
479- const float row_max = max (local_max, __shfl_xor_sync (0xFFFFFFFF , local_max, 16 ));
479+ const float row_max = max (local_max, __shfl_xor_sync (0xFFFFFFFF , local_max, 16 , WARP_SIZE ));
480480
481481 const float new_max = max (running_max, row_max);
482482
@@ -502,7 +502,7 @@ __global__ void mt_paged_attention_tile_kernel(
502502 scores.x [l] = e;
503503 local_sum += e;
504504 }
505- const float row_sum = local_sum + __shfl_xor_sync (0xFFFFFFFF , local_sum, 16 );
505+ const float row_sum = local_sum + __shfl_xor_sync (0xFFFFFFFF , local_sum, 16 , WARP_SIZE );
506506 running_sum += row_sum;
507507 running_max = new_max;
508508
@@ -861,7 +861,7 @@ __global__ void mt_paged_attention_tile_mw_kernel(
861861 for (int l = 0 ; l < scores.ne ; ++l) {
862862 local_max = max (local_max, scores.x [l]);
863863 }
864- const float row_max = max (local_max, __shfl_xor_sync (0xFFFFFFFF , local_max, 16 ));
864+ const float row_max = max (local_max, __shfl_xor_sync (0xFFFFFFFF , local_max, 16 , WARP_SIZE ));
865865
866866 const float new_max = max (running_max, row_max);
867867
@@ -887,7 +887,7 @@ __global__ void mt_paged_attention_tile_mw_kernel(
887887 scores.x [l] = e;
888888 local_sum += e;
889889 }
890- const float row_sum = local_sum + __shfl_xor_sync (0xFFFFFFFF , local_sum, 16 );
890+ const float row_sum = local_sum + __shfl_xor_sync (0xFFFFFFFF , local_sum, 16 , WARP_SIZE );
891891 running_sum += row_sum;
892892 running_max = new_max;
893893
0 commit comments