@@ -26,35 +26,34 @@ extern "C" {
2626 */
2727
2828typedef enum _ga_reduce_op {
29- GA_REDUCE_SUM , /* + */
30- GA_REDUCE_PROD , /* * */
31- GA_REDUCE_PRODNZ , /* * (!=0) */
32- GA_REDUCE_MIN , /* min() */
33- GA_REDUCE_MAX , /* max() */
34- GA_REDUCE_ARGMIN , /* argmin() */
35- GA_REDUCE_ARGMAX , /* argmax() */
36- GA_REDUCE_MINANDARGMIN , /* min(), argmin() */
37- GA_REDUCE_MAXANDARGMAX , /* max(), argmax() */
38- GA_REDUCE_AND , /* & */
39- GA_REDUCE_OR , /* | */
40- GA_REDUCE_XOR , /* ^ */
41- GA_REDUCE_ALL , /* &&/all() */
42- GA_REDUCE_ANY , /* ||/any() */
29+ GA_REDUCE_SUM , /* + */
30+ GA_REDUCE_PROD , /* * */
31+ GA_REDUCE_PRODNZ , /* * (!=0) */
32+ GA_REDUCE_MIN , /* min() */
33+ GA_REDUCE_MAX , /* max() */
34+ GA_REDUCE_ARGMIN , /* argmin() */
35+ GA_REDUCE_ARGMAX , /* argmax() */
36+ GA_REDUCE_MINANDARGMIN , /* min(), argmin() */
37+ GA_REDUCE_MAXANDARGMAX , /* max(), argmax() */
38+ GA_REDUCE_AND , /* & */
39+ GA_REDUCE_OR , /* | */
40+ GA_REDUCE_XOR , /* ^ */
41+ GA_REDUCE_ALL , /* &&/all() */
42+ GA_REDUCE_ANY , /* ||/any() */
4343} ga_reduce_op ;
4444
4545
4646
4747/**
48- * @brief Compute a reduction sum (+), product (*), non-zero product (* != 0),
49- * min, max, argmin, argmax, min-and-argmin, max-and-argmax, and (&),
50- * or (|), xor (^), all (&&) or any (||) over a list of axes to reduce.
48+ * @brief Compute a reduction over a list of axes to reduce.
5149 *
5250 * Returns one (in the case of min-and-argmin/max-and-argmax, two) destination
5351 * tensors. The destination tensor(s)' axes are a strict subset of the axes of the
5452 * source tensor. The axes to be reduced are specified by the caller, and the
5553 * reduction is performed over these axes, which are then removed in the
5654 * destination.
5755 *
56+ * @param [in] op The reduction operation to perform.
5857 * @param [out] dst The destination tensor. Has the same type as the source.
5958 * @param [out] dstArg For argument of minima/maxima operations. Has type int64.
6059 * @param [in] src The source tensor.
@@ -81,64 +80,6 @@ typedef enum _ga_reduce_op {
8180 * code otherwise.
8281 */
8382
84- GPUARRAY_PUBLIC int GpuArray_sum (GpuArray * dst ,
85- const GpuArray * src ,
86- unsigned reduxLen ,
87- const unsigned * reduxList );
88- GPUARRAY_PUBLIC int GpuArray_prod (GpuArray * dst ,
89- const GpuArray * src ,
90- unsigned reduxLen ,
91- const unsigned * reduxList );
92- GPUARRAY_PUBLIC int GpuArray_prodnz (GpuArray * dst ,
93- const GpuArray * src ,
94- unsigned reduxLen ,
95- const unsigned * reduxList );
96- GPUARRAY_PUBLIC int GpuArray_min (GpuArray * dst ,
97- const GpuArray * src ,
98- unsigned reduxLen ,
99- const unsigned * reduxList );
100- GPUARRAY_PUBLIC int GpuArray_max (GpuArray * dst ,
101- const GpuArray * src ,
102- unsigned reduxLen ,
103- const unsigned * reduxList );
104- GPUARRAY_PUBLIC int GpuArray_argmin (GpuArray * dstArg ,
105- const GpuArray * src ,
106- unsigned reduxLen ,
107- const unsigned * reduxList );
108- GPUARRAY_PUBLIC int GpuArray_argmax (GpuArray * dstArg ,
109- const GpuArray * src ,
110- unsigned reduxLen ,
111- const unsigned * reduxList );
112- GPUARRAY_PUBLIC int GpuArray_minandargmin (GpuArray * dst ,
113- GpuArray * dstArg ,
114- const GpuArray * src ,
115- unsigned reduxLen ,
116- const unsigned * reduxList );
117- GPUARRAY_PUBLIC int GpuArray_maxandargmax (GpuArray * dst ,
118- GpuArray * dstArg ,
119- const GpuArray * src ,
120- unsigned reduxLen ,
121- const unsigned * reduxList );
122- GPUARRAY_PUBLIC int GpuArray_and (GpuArray * dst ,
123- const GpuArray * src ,
124- unsigned reduxLen ,
125- const unsigned * reduxList );
126- GPUARRAY_PUBLIC int GpuArray_or (GpuArray * dst ,
127- const GpuArray * src ,
128- unsigned reduxLen ,
129- const unsigned * reduxList );
130- GPUARRAY_PUBLIC int GpuArray_xor (GpuArray * dst ,
131- const GpuArray * src ,
132- unsigned reduxLen ,
133- const unsigned * reduxList );
134- GPUARRAY_PUBLIC int GpuArray_all (GpuArray * dst ,
135- const GpuArray * src ,
136- unsigned reduxLen ,
137- const unsigned * reduxList );
138- GPUARRAY_PUBLIC int GpuArray_any (GpuArray * dst ,
139- const GpuArray * src ,
140- unsigned reduxLen ,
141- const unsigned * reduxList );
14283GPUARRAY_PUBLIC int GpuArray_reduction (ga_reduce_op op ,
14384 GpuArray * dst ,
14485 GpuArray * dstArg ,
0 commit comments