@@ -259,7 +259,7 @@ sycl::event sum_reduction_over_group_with_atomics_strided_impl(
259
259
constexpr size_t preferrered_reductions_per_wi = 4 ;
260
260
size_t reductions_per_wi =
261
261
(reduction_nelems < preferrered_reductions_per_wi * wg)
262
- ? ( (reduction_nelems + wg - 1 ) / wg)
262
+ ? std::max< size_t >( 1 , (reduction_nelems + wg - 1 ) / wg)
263
263
: preferrered_reductions_per_wi;
264
264
265
265
size_t reduction_groups =
@@ -349,7 +349,7 @@ sycl::event sum_reduction_over_group_with_atomics_contig_impl(
349
349
constexpr size_t preferrered_reductions_per_wi = 8 ;
350
350
size_t reductions_per_wi =
351
351
(reduction_nelems < preferrered_reductions_per_wi * wg)
352
- ? ( (reduction_nelems + wg - 1 ) / wg)
352
+ ? std::max< size_t >( 1 , (reduction_nelems + wg - 1 ) / wg)
353
353
: preferrered_reductions_per_wi;
354
354
355
355
size_t reduction_groups =
@@ -514,7 +514,8 @@ sycl::event sum_reduction_over_group_temps_strided_impl(
514
514
reduction_shape_stride};
515
515
516
516
wg = max_wg;
517
- reductions_per_wi = (reduction_nelems + wg - 1 ) / wg;
517
+ reductions_per_wi =
518
+ std::max<size_t >(1 , (reduction_nelems + wg - 1 ) / wg);
518
519
519
520
size_t reduction_groups =
520
521
(reduction_nelems + reductions_per_wi * wg - 1 ) /
@@ -698,7 +699,8 @@ sycl::event sum_reduction_over_group_temps_strided_impl(
698
699
ReductionIndexerT reduction_indexer{};
699
700
700
701
wg = max_wg;
701
- reductions_per_wi = (remaining_reduction_nelems + wg - 1 ) / wg;
702
+ reductions_per_wi =
703
+ std::max<size_t >(1 , (remaining_reduction_nelems + wg - 1 ) / wg);
702
704
703
705
size_t reduction_groups =
704
706
(remaining_reduction_nelems + reductions_per_wi * wg - 1 ) /
0 commit comments