Skip to content

Commit b9f4943

Browse files
authored
Add ?sum
1 parent 79cfc24 commit b9f4943

File tree

3 files changed

+61
-13
lines changed

3 files changed

+61
-13
lines changed

kernel/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ function (build_core TARGET_CORE KDIR TSUFFIX KERNEL_DEFINITIONS)
6565
GenerateNamedObjects("${KERNELDIR}/${${float_char}SCALKERNEL}" "" "scal_k" false "" "" false ${float_type})
6666
GenerateNamedObjects("${KERNELDIR}/${${float_char}SWAPKERNEL}" "" "swap_k" false "" "" false ${float_type})
6767
GenerateNamedObjects("${KERNELDIR}/${${float_char}AXPBYKERNEL}" "" "axpby_k" false "" "" false ${float_type})
68+
GenerateNamedObjects("${KERNELDIR}/${${float_char}SUMKERNEL}" "" "sum_k" false "" "" false ${float_type})
6869

6970
if (${float_type} STREQUAL "COMPLEX" OR ${float_type} STREQUAL "ZCOMPLEX")
7071
GenerateNamedObjects("${KERNELDIR}/${${float_char}AXPYKERNEL}" "CONJ" "axpyc_k" false "" "" false ${float_type})

kernel/Makefile.L1

Lines changed: 54 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,32 @@ ifndef XSCALKERNEL
340340
XSCALKERNEL = zscal.S
341341
endif
342342

343+
### SUM ###
344+
345+
ifndef SSUMKERNEL
346+
SSUMKERNEL = sum.S
347+
endif
348+
349+
ifndef DSUMKERNEL
350+
DSUMKERNEL = sum.S
351+
endif
352+
353+
ifndef CSUMKERNEL
354+
CSUMKERNEL = zsum.S
355+
endif
356+
357+
ifndef ZSUMKERNEL
358+
ZSUMKERNEL = zsum.S
359+
endif
360+
361+
ifndef QSUMKERNEL
362+
QSUMKERNEL = sum.S
363+
endif
364+
365+
ifndef XSUMKERNEL
366+
XSUMKERNEL = zsum.S
367+
endif
368+
343369
### SWAP ###
344370

345371
ifndef SSWAPKERNEL
@@ -453,7 +479,7 @@ endif
453479
SBLASOBJS += \
454480
samax_k$(TSUFFIX).$(SUFFIX) samin_k$(TSUFFIX).$(SUFFIX) smax_k$(TSUFFIX).$(SUFFIX) smin_k$(TSUFFIX).$(SUFFIX) \
455481
isamax_k$(TSUFFIX).$(SUFFIX) isamin_k$(TSUFFIX).$(SUFFIX) ismax_k$(TSUFFIX).$(SUFFIX) ismin_k$(TSUFFIX).$(SUFFIX) \
456-
sasum_k$(TSUFFIX).$(SUFFIX) saxpy_k$(TSUFFIX).$(SUFFIX) scopy_k$(TSUFFIX).$(SUFFIX) \
482+
sasum_k$(TSUFFIX).$(SUFFIX) ssum_k$(TSUFFIX).$(SUFFIX) saxpy_k$(TSUFFIX).$(SUFFIX) scopy_k$(TSUFFIX).$(SUFFIX) \
457483
sdot_k$(TSUFFIX).$(SUFFIX) sdsdot_k$(TSUFFIX).$(SUFFIX) dsdot_k$(TSUFFIX).$(SUFFIX) \
458484
snrm2_k$(TSUFFIX).$(SUFFIX) srot_k$(TSUFFIX).$(SUFFIX) sscal_k$(TSUFFIX).$(SUFFIX) sswap_k$(TSUFFIX).$(SUFFIX) \
459485
saxpby_k$(TSUFFIX).$(SUFFIX)
@@ -463,31 +489,32 @@ DBLASOBJS += \
463489
idamax_k$(TSUFFIX).$(SUFFIX) idamin_k$(TSUFFIX).$(SUFFIX) idmax_k$(TSUFFIX).$(SUFFIX) idmin_k$(TSUFFIX).$(SUFFIX) \
464490
dasum_k$(TSUFFIX).$(SUFFIX) daxpy_k$(TSUFFIX).$(SUFFIX) dcopy_k$(TSUFFIX).$(SUFFIX) ddot_k$(TSUFFIX).$(SUFFIX) \
465491
dnrm2_k$(TSUFFIX).$(SUFFIX) drot_k$(TSUFFIX).$(SUFFIX) dscal_k$(TSUFFIX).$(SUFFIX) dswap_k$(TSUFFIX).$(SUFFIX) \
466-
daxpby_k$(TSUFFIX).$(SUFFIX)
492+
daxpby_k$(TSUFFIX).$(SUFFIX) dsum_k$(TSUFFIX).$(SUFFIX)
467493

468494
QBLASOBJS += \
469495
qamax_k$(TSUFFIX).$(SUFFIX) qamin_k$(TSUFFIX).$(SUFFIX) qmax_k$(TSUFFIX).$(SUFFIX) qmin_k$(TSUFFIX).$(SUFFIX) \
470496
iqamax_k$(TSUFFIX).$(SUFFIX) iqamin_k$(TSUFFIX).$(SUFFIX) iqmax_k$(TSUFFIX).$(SUFFIX) iqmin_k$(TSUFFIX).$(SUFFIX) \
471497
qasum_k$(TSUFFIX).$(SUFFIX) qaxpy_k$(TSUFFIX).$(SUFFIX) qcopy_k$(TSUFFIX).$(SUFFIX) qdot_k$(TSUFFIX).$(SUFFIX) \
472-
qnrm2_k$(TSUFFIX).$(SUFFIX) qrot_k$(TSUFFIX).$(SUFFIX) qscal_k$(TSUFFIX).$(SUFFIX) qswap_k$(TSUFFIX).$(SUFFIX)
498+
qnrm2_k$(TSUFFIX).$(SUFFIX) qrot_k$(TSUFFIX).$(SUFFIX) qscal_k$(TSUFFIX).$(SUFFIX) qswap_k$(TSUFFIX).$(SUFFIX) \
499+
qsum_k$(TSUFFIX).$(SUFFIX)
473500

474501
CBLASOBJS += \
475502
camax_k$(TSUFFIX).$(SUFFIX) camin_k$(TSUFFIX).$(SUFFIX) icamax_k$(TSUFFIX).$(SUFFIX) icamin_k$(TSUFFIX).$(SUFFIX) \
476503
casum_k$(TSUFFIX).$(SUFFIX) caxpy_k$(TSUFFIX).$(SUFFIX) caxpyc_k$(TSUFFIX).$(SUFFIX) ccopy_k$(TSUFFIX).$(SUFFIX) \
477504
cdotc_k$(TSUFFIX).$(SUFFIX) cdotu_k$(TSUFFIX).$(SUFFIX) cnrm2_k$(TSUFFIX).$(SUFFIX) csrot_k$(TSUFFIX).$(SUFFIX) \
478-
cscal_k$(TSUFFIX).$(SUFFIX) cswap_k$(TSUFFIX).$(SUFFIX) caxpby_k$(TSUFFIX).$(SUFFIX)
505+
cscal_k$(TSUFFIX).$(SUFFIX) cswap_k$(TSUFFIX).$(SUFFIX) caxpby_k$(TSUFFIX).$(SUFFIX) csum_k$(TSUFFIX).$(SUFFIX)
479506

480507
ZBLASOBJS += \
481508
zamax_k$(TSUFFIX).$(SUFFIX) zamin_k$(TSUFFIX).$(SUFFIX) izamax_k$(TSUFFIX).$(SUFFIX) izamin_k$(TSUFFIX).$(SUFFIX) \
482509
zasum_k$(TSUFFIX).$(SUFFIX) zaxpy_k$(TSUFFIX).$(SUFFIX) zaxpyc_k$(TSUFFIX).$(SUFFIX) zcopy_k$(TSUFFIX).$(SUFFIX) \
483510
zdotc_k$(TSUFFIX).$(SUFFIX) zdotu_k$(TSUFFIX).$(SUFFIX) znrm2_k$(TSUFFIX).$(SUFFIX) zdrot_k$(TSUFFIX).$(SUFFIX) \
484-
zscal_k$(TSUFFIX).$(SUFFIX) zswap_k$(TSUFFIX).$(SUFFIX) zaxpby_k$(TSUFFIX).$(SUFFIX)
511+
zscal_k$(TSUFFIX).$(SUFFIX) zswap_k$(TSUFFIX).$(SUFFIX) zaxpby_k$(TSUFFIX).$(SUFFIX) zsum_k$(TSUFFIX).$(SUFFIX)
485512

486513
XBLASOBJS += \
487514
xamax_k$(TSUFFIX).$(SUFFIX) xamin_k$(TSUFFIX).$(SUFFIX) ixamax_k$(TSUFFIX).$(SUFFIX) ixamin_k$(TSUFFIX).$(SUFFIX) \
488515
xasum_k$(TSUFFIX).$(SUFFIX) xaxpy_k$(TSUFFIX).$(SUFFIX) xaxpyc_k$(TSUFFIX).$(SUFFIX) xcopy_k$(TSUFFIX).$(SUFFIX) \
489516
xdotc_k$(TSUFFIX).$(SUFFIX) xdotu_k$(TSUFFIX).$(SUFFIX) xnrm2_k$(TSUFFIX).$(SUFFIX) xqrot_k$(TSUFFIX).$(SUFFIX) \
490-
xscal_k$(TSUFFIX).$(SUFFIX) xswap_k$(TSUFFIX).$(SUFFIX)
517+
xscal_k$(TSUFFIX).$(SUFFIX) xswap_k$(TSUFFIX).$(SUFFIX) xsum_k$(TSUFFIX).$(SUFFIX)
491518

492519
### AMAX ###
493520

@@ -617,7 +644,7 @@ $(KDIR)idmin_k$(TSUFFIX).$(SUFFIX) $(KDIR)idmin_k$(TPSUFFIX).$(PSUFFIX) : $(KE
617644
$(KDIR)iqmin_k$(TSUFFIX).$(SUFFIX) $(KDIR)iqmin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IQMINKERNEL)
618645
$(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -UUSE_ABS -DUSE_MIN $< -o $@
619646

620-
647+
### ASUM ###
621648
$(KDIR)sasum_k$(TSUFFIX).$(SUFFIX) $(KDIR)sasum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SASUMKERNEL)
622649
$(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
623650

@@ -636,6 +663,26 @@ $(KDIR)zasum_k$(TSUFFIX).$(SUFFIX) $(KDIR)zasum_k$(TPSUFFIX).$(PSUFFIX) : $(KE
636663
$(KDIR)xasum_k$(TSUFFIX).$(SUFFIX) $(KDIR)xasum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XASUMKERNEL)
637664
$(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE $< -o $@
638665

666+
### SUM ###
667+
$(KDIR)ssum_k$(TSUFFIX).$(SUFFIX) $(KDIR)ssum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SSUMKERNEL)
668+
$(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
669+
670+
$(KDIR)dsum_k$(TSUFFIX).$(SUFFIX) $(KDIR)dsum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DSUMKERNEL)
671+
$(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE $< -o $@
672+
673+
$(KDIR)qsum_k$(TSUFFIX).$(SUFFIX) $(KDIR)qsum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QSUMKERNEL)
674+
$(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE $< -o $@
675+
676+
$(KDIR)csum_k$(TSUFFIX).$(SUFFIX) $(KDIR)csum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CSUMKERNEL)
677+
$(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE $< -o $@
678+
679+
$(KDIR)zsum_k$(TSUFFIX).$(SUFFIX) $(KDIR)zsum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZSUMKERNEL)
680+
$(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE $< -o $@
681+
682+
$(KDIR)xsum_k$(TSUFFIX).$(SUFFIX) $(KDIR)xsum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XSUMKERNEL)
683+
$(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE $< -o $@
684+
685+
### AXPY ###
639686
$(KDIR)saxpy_k$(TSUFFIX).$(SUFFIX) $(KDIR)saxpy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SAXPYKERNEL)
640687
$(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
641688

kernel/setparam-ref.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ gotoblas_t TABLE_NAME = {
7070

7171
samax_kTS, samin_kTS, smax_kTS, smin_kTS,
7272
isamax_kTS, isamin_kTS, ismax_kTS, ismin_kTS,
73-
snrm2_kTS, sasum_kTS, scopy_kTS, sdot_kTS,
73+
snrm2_kTS, sasum_kTS, ssum_kTS, scopy_kTS, sdot_kTS,
7474
dsdot_kTS,
7575
srot_kTS, saxpy_kTS, sscal_kTS, sswap_kTS,
7676
sgemv_nTS, sgemv_tTS, sger_kTS,
@@ -126,7 +126,7 @@ gotoblas_t TABLE_NAME = {
126126

127127
damax_kTS, damin_kTS, dmax_kTS, dmin_kTS,
128128
idamax_kTS, idamin_kTS, idmax_kTS, idmin_kTS,
129-
dnrm2_kTS, dasum_kTS, dcopy_kTS, ddot_kTS,
129+
dnrm2_kTS, dasum_kTS, dsum_kTS, dcopy_kTS, ddot_kTS,
130130
drot_kTS, daxpy_kTS, dscal_kTS, dswap_kTS,
131131
dgemv_nTS, dgemv_tTS, dger_kTS,
132132
dsymv_LTS, dsymv_UTS,
@@ -178,7 +178,7 @@ gotoblas_t TABLE_NAME = {
178178

179179
qamax_kTS, qamin_kTS, qmax_kTS, qmin_kTS,
180180
iqamax_kTS, iqamin_kTS, iqmax_kTS, iqmin_kTS,
181-
qnrm2_kTS, qasum_kTS, qcopy_kTS, qdot_kTS,
181+
qnrm2_kTS, qasum_kTS, qsum_kTS, qcopy_kTS, qdot_kTS,
182182
qrot_kTS, qaxpy_kTS, qscal_kTS, qswap_kTS,
183183
qgemv_nTS, qgemv_tTS, qger_kTS,
184184
qsymv_LTS, qsymv_UTS,
@@ -234,7 +234,7 @@ gotoblas_t TABLE_NAME = {
234234
#endif
235235

236236
camax_kTS, camin_kTS, icamax_kTS, icamin_kTS,
237-
cnrm2_kTS, casum_kTS, ccopy_kTS,
237+
cnrm2_kTS, casum_kTS, csum_kTS, ccopy_kTS,
238238
cdotu_kTS, cdotc_kTS, csrot_kTS,
239239
caxpy_kTS, caxpyc_kTS, cscal_kTS, cswap_kTS,
240240

@@ -369,7 +369,7 @@ gotoblas_t TABLE_NAME = {
369369
#endif
370370

371371
zamax_kTS, zamin_kTS, izamax_kTS, izamin_kTS,
372-
znrm2_kTS, zasum_kTS, zcopy_kTS,
372+
znrm2_kTS, zasum_kTS, zsum_kTS, zcopy_kTS,
373373
zdotu_kTS, zdotc_kTS, zdrot_kTS,
374374
zaxpy_kTS, zaxpyc_kTS, zscal_kTS, zswap_kTS,
375375

@@ -500,7 +500,7 @@ gotoblas_t TABLE_NAME = {
500500
XGEMM_DEFAULT_UNROLL_M, XGEMM_DEFAULT_UNROLL_N, MAX(XGEMM_DEFAULT_UNROLL_M, XGEMM_DEFAULT_UNROLL_N),
501501

502502
xamax_kTS, xamin_kTS, ixamax_kTS, ixamin_kTS,
503-
xnrm2_kTS, xasum_kTS, xcopy_kTS,
503+
xnrm2_kTS, xasum_kTS, xsum_kTS, xcopy_kTS,
504504
xdotu_kTS, xdotc_kTS, xqrot_kTS,
505505
xaxpy_kTS, xaxpyc_kTS, xscal_kTS, xswap_kTS,
506506

0 commit comments

Comments
 (0)