Skip to content

Commit ccfb7ea

Browse files
authored
Merge pull request #2072 from martin-frbg/sum
Add (C)BLAS extension ?sum
2 parents 744779d + 21d146a commit ccfb7ea

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+5640
-27
lines changed

cblas.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ double cblas_dasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS
7373
float cblas_scasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
7474
double cblas_dzasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
7575

76+
float cblas_ssum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx);
77+
double cblas_dsum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx);
78+
float cblas_scsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
79+
double cblas_dzsum(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
80+
7681
float cblas_snrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX);
7782
double cblas_dnrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX);
7883
float cblas_scnrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST void *X, OPENBLAS_CONST blasint incX);

cmake/kernel.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,12 @@ macro(SetDefaultL1)
107107
set(DAXPBYKERNEL ../arm/axpby.c)
108108
set(CAXPBYKERNEL ../arm/zaxpby.c)
109109
set(ZAXPBYKERNEL ../arm/zaxpby.c)
110+
set(SSUMKERNEL sum.S)
111+
set(DSUMKERNEL sum.S)
112+
set(CSUMKERNEL zsum.S)
113+
set(ZSUMKERNEL zsum.S)
114+
set(QSUMKERNEL sum.S)
115+
set(XSUMKERNEL zsum.S)
110116
endmacro ()
111117

112118
macro(SetDefaultL2)
@@ -162,4 +168,4 @@ macro(SetDefaultL3)
162168
set(DGEADD_KERNEL ../generic/geadd.c)
163169
set(CGEADD_KERNEL ../generic/zgeadd.c)
164170
set(ZGEADD_KERNEL ../generic/zgeadd.c)
165-
endmacro ()
171+
endmacro ()

common_c.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#define CDOTC_K cdotc_k
2020
#define CNRM2_K cnrm2_k
2121
#define CSCAL_K cscal_k
22+
#define CSUM_K csum_k
2223
#define CSWAP_K cswap_k
2324
#define CROT_K csrot_k
2425

@@ -249,6 +250,7 @@
249250
#define CDOTC_K gotoblas -> cdotc_k
250251
#define CNRM2_K gotoblas -> cnrm2_k
251252
#define CSCAL_K gotoblas -> cscal_k
253+
#define CSUM_K gotoblas -> csum_k
252254
#define CSWAP_K gotoblas -> cswap_k
253255
#define CROT_K gotoblas -> csrot_k
254256

common_d.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#define DDOTC_K ddot_k
2020
#define DNRM2_K dnrm2_k
2121
#define DSCAL_K dscal_k
22+
#define DSUM_K dsum_k
2223
#define DSWAP_K dswap_k
2324
#define DROT_K drot_k
2425

@@ -174,6 +175,7 @@
174175
#define DDOTC_K gotoblas -> ddot_k
175176
#define DNRM2_K gotoblas -> dnrm2_k
176177
#define DSCAL_K gotoblas -> dscal_k
178+
#define DSUM_K gotoblas -> dsum_k
177179
#define DSWAP_K gotoblas -> dswap_k
178180
#define DROT_K gotoblas -> drot_k
179181

common_interface.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,13 @@ xdouble BLASFUNC(qasum) (blasint *, xdouble *, blasint *);
122122
double BLASFUNC(dzasum)(blasint *, double *, blasint *);
123123
xdouble BLASFUNC(qxasum)(blasint *, xdouble *, blasint *);
124124

125+
FLOATRET BLASFUNC(ssum) (blasint *, float *, blasint *);
126+
FLOATRET BLASFUNC(scsum)(blasint *, float *, blasint *);
127+
double BLASFUNC(dsum) (blasint *, double *, blasint *);
128+
xdouble BLASFUNC(qsum) (blasint *, xdouble *, blasint *);
129+
double BLASFUNC(dzsum)(blasint *, double *, blasint *);
130+
xdouble BLASFUNC(qxsum)(blasint *, xdouble *, blasint *);
131+
125132
blasint BLASFUNC(isamax)(blasint *, float *, blasint *);
126133
blasint BLASFUNC(idamax)(blasint *, double *, blasint *);
127134
blasint BLASFUNC(iqamax)(blasint *, xdouble *, blasint *);

common_level1.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ float casum_k (BLASLONG, float *, BLASLONG);
100100
double zasum_k (BLASLONG, double *, BLASLONG);
101101
xdouble xasum_k (BLASLONG, xdouble *, BLASLONG);
102102

103+
float ssum_k (BLASLONG, float *, BLASLONG);
104+
double dsum_k (BLASLONG, double *, BLASLONG);
105+
xdouble qsum_k (BLASLONG, xdouble *, BLASLONG);
106+
float csum_k (BLASLONG, float *, BLASLONG);
107+
double zsum_k (BLASLONG, double *, BLASLONG);
108+
xdouble xsum_k (BLASLONG, xdouble *, BLASLONG);
109+
103110
float samax_k (BLASLONG, float *, BLASLONG);
104111
double damax_k (BLASLONG, double *, BLASLONG);
105112
xdouble qamax_k (BLASLONG, xdouble *, BLASLONG);

common_macro.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
#define DOTC_K QDOTC_K
6767
#define NRM2_K QNRM2_K
6868
#define SCAL_K QSCAL_K
69+
#define SUM_K QSUM_K
6970
#define SWAP_K QSWAP_K
7071
#define ROT_K QROT_K
7172

@@ -356,6 +357,7 @@
356357
#define DOTC_K DDOTC_K
357358
#define NRM2_K DNRM2_K
358359
#define SCAL_K DSCAL_K
360+
#define SUM_K DSUM_K
359361
#define SWAP_K DSWAP_K
360362
#define ROT_K DROT_K
361363

@@ -658,6 +660,7 @@
658660
#define DOTC_K SDOTC_K
659661
#define NRM2_K SNRM2_K
660662
#define SCAL_K SSCAL_K
663+
#define SUM_K SSUM_K
661664
#define SWAP_K SSWAP_K
662665
#define ROT_K SROT_K
663666

@@ -962,6 +965,7 @@
962965
#define DOTC_K XDOTC_K
963966
#define NRM2_K XNRM2_K
964967
#define SCAL_K XSCAL_K
968+
#define SUM_K XSUM_K
965969
#define SWAP_K XSWAP_K
966970
#define ROT_K XROT_K
967971

@@ -1363,6 +1367,7 @@
13631367
#define DOTC_K ZDOTC_K
13641368
#define NRM2_K ZNRM2_K
13651369
#define SCAL_K ZSCAL_K
1370+
#define SUM_K ZSUM_K
13661371
#define SWAP_K ZSWAP_K
13671372
#define ROT_K ZROT_K
13681373

@@ -1785,6 +1790,7 @@
17851790
#define DOTC_K CDOTC_K
17861791
#define NRM2_K CNRM2_K
17871792
#define SCAL_K CSCAL_K
1793+
#define SUM_K CSUM_K
17881794
#define SWAP_K CSWAP_K
17891795
#define ROT_K CROT_K
17901796

common_param.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
6363

6464
float (*snrm2_k) (BLASLONG, float *, BLASLONG);
6565
float (*sasum_k) (BLASLONG, float *, BLASLONG);
66+
float (*ssum_k) (BLASLONG, float *, BLASLONG);
6667
int (*scopy_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
6768
float (*sdot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
6869
double (*dsdot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
@@ -154,6 +155,7 @@ BLASLONG (*idmin_k) (BLASLONG, double *, BLASLONG);
154155

155156
double (*dnrm2_k) (BLASLONG, double *, BLASLONG);
156157
double (*dasum_k) (BLASLONG, double *, BLASLONG);
158+
double (*dsum_k) (BLASLONG, double *, BLASLONG);
157159
int (*dcopy_k) (BLASLONG, double *, BLASLONG, double *, BLASLONG);
158160
double (*ddot_k) (BLASLONG, double *, BLASLONG, double *, BLASLONG);
159161
int (*drot_k) (BLASLONG, double *, BLASLONG, double *, BLASLONG, double, double);
@@ -245,6 +247,7 @@ BLASLONG (*iqmin_k) (BLASLONG, xdouble *, BLASLONG);
245247

246248
xdouble (*qnrm2_k) (BLASLONG, xdouble *, BLASLONG);
247249
xdouble (*qasum_k) (BLASLONG, xdouble *, BLASLONG);
250+
xdouble (*qsum_k) (BLASLONG, xdouble *, BLASLONG);
248251
int (*qcopy_k) (BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
249252
xdouble (*qdot_k) (BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
250253
int (*qrot_k) (BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble, xdouble);
@@ -332,6 +335,7 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
332335

333336
float (*cnrm2_k) (BLASLONG, float *, BLASLONG);
334337
float (*casum_k) (BLASLONG, float *, BLASLONG);
338+
float (*csum_k) (BLASLONG, float *, BLASLONG);
335339
int (*ccopy_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
336340
openblas_complex_float (*cdotu_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
337341
openblas_complex_float (*cdotc_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
@@ -495,6 +499,7 @@ BLASLONG (*izamin_k)(BLASLONG, double *, BLASLONG);
495499

496500
double (*znrm2_k) (BLASLONG, double *, BLASLONG);
497501
double (*zasum_k) (BLASLONG, double *, BLASLONG);
502+
double (*zsum_k) (BLASLONG, double *, BLASLONG);
498503
int (*zcopy_k) (BLASLONG, double *, BLASLONG, double *, BLASLONG);
499504
openblas_complex_double (*zdotu_k) (BLASLONG, double *, BLASLONG, double *, BLASLONG);
500505
openblas_complex_double (*zdotc_k) (BLASLONG, double *, BLASLONG, double *, BLASLONG);
@@ -660,6 +665,7 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
660665

661666
xdouble (*xnrm2_k) (BLASLONG, xdouble *, BLASLONG);
662667
xdouble (*xasum_k) (BLASLONG, xdouble *, BLASLONG);
668+
xdouble (*xsum_k) (BLASLONG, xdouble *, BLASLONG);
663669
int (*xcopy_k) (BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
664670
openblas_complex_xdouble (*xdotu_k) (BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
665671
openblas_complex_xdouble (*xdotc_k) (BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);

common_q.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#define QDOTC_K qdot_k
2020
#define QNRM2_K qnrm2_k
2121
#define QSCAL_K qscal_k
22+
#define QSUM_K qsum_k
2223
#define QSWAP_K qswap_k
2324
#define QROT_K qrot_k
2425

@@ -161,6 +162,7 @@
161162
#define QDOTC_K gotoblas -> qdot_k
162163
#define QNRM2_K gotoblas -> qnrm2_k
163164
#define QSCAL_K gotoblas -> qscal_k
165+
#define QSUM_K gotoblas -> qsum_k
164166
#define QSWAP_K gotoblas -> qswap_k
165167
#define QROT_K gotoblas -> qrot_k
166168

common_s.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#define ISMAX_K ismax_k
1313
#define ISMIN_K ismin_k
1414
#define SASUM_K sasum_k
15+
#define SSUM_K ssum_k
1516
#define SAXPYU_K saxpy_k
1617
#define SAXPYC_K saxpy_k
1718
#define SCOPY_K scopy_k
@@ -170,6 +171,7 @@
170171
#define ISMAX_K gotoblas -> ismax_k
171172
#define ISMIN_K gotoblas -> ismin_k
172173
#define SASUM_K gotoblas -> sasum_k
174+
#define SSUM_K gotoblas -> ssum_k
173175
#define SAXPYU_K gotoblas -> saxpy_k
174176
#define SAXPYC_K gotoblas -> saxpy_k
175177
#define SCOPY_K gotoblas -> scopy_k

0 commit comments

Comments
 (0)