Reduction is a common parallel pattern that reduces several values to a single value. For example, a summation reduction adds the values in an array to get a single sum. Finding the minimum or maximum value in an array, or the locations of those values, are also reduction operations.
SYCL* provides a built-in reduction operator that can be used in parallel kernels. The oneAPI DPC++ Library (oneDPL) provides functions for reduction operations. There are valid reasons for using either approach.
Uses code samples to illustrate the SYCL reduction operator and oneDPL reduction functions
Discusses the relative merits of each approach in terms of coding and data-transfer complexity, and separation of concerns