@@ -259,7 +259,7 @@ sycl::event sum_reduction_over_group_with_atomics_strided_impl(
259259 constexpr size_t preferrered_reductions_per_wi = 4 ;
260260 size_t reductions_per_wi =
261261 (reduction_nelems < preferrered_reductions_per_wi * wg)
262- ? ( (reduction_nelems + wg - 1 ) / wg)
262+ ? std::max< size_t >( 1 , (reduction_nelems + wg - 1 ) / wg)
263263 : preferrered_reductions_per_wi;
264264
265265 size_t reduction_groups =
@@ -349,7 +349,7 @@ sycl::event sum_reduction_over_group_with_atomics_contig_impl(
349349 constexpr size_t preferrered_reductions_per_wi = 8 ;
350350 size_t reductions_per_wi =
351351 (reduction_nelems < preferrered_reductions_per_wi * wg)
352- ? ( (reduction_nelems + wg - 1 ) / wg)
352+ ? std::max< size_t >( 1 , (reduction_nelems + wg - 1 ) / wg)
353353 : preferrered_reductions_per_wi;
354354
355355 size_t reduction_groups =
@@ -514,7 +514,8 @@ sycl::event sum_reduction_over_group_temps_strided_impl(
514514 reduction_shape_stride};
515515
516516 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);
518519
519520 size_t reduction_groups =
520521 (reduction_nelems + reductions_per_wi * wg - 1 ) /
@@ -698,7 +699,8 @@ sycl::event sum_reduction_over_group_temps_strided_impl(
698699 ReductionIndexerT reduction_indexer{};
699700
700701 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);
702704
703705 size_t reduction_groups =
704706 (remaining_reduction_nelems + reductions_per_wi * wg - 1 ) /
0 commit comments