Skip to content

Commit 461cf90

Browse files
committed
Merge remote-tracking branch 'origin/develop' into cgemm_zgemm_c_code
2 parents ddac75e + ec74dcd commit 461cf90

21 files changed

Lines changed: 724 additions & 650 deletions

benchmark/Makefile

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,9 @@ goto :: sgemm.goto dgemm.goto cgemm.goto zgemm.goto \
265265
ismax.goto idmax.goto \
266266
isamin.goto idamin.goto icamin.goto izamin.goto \
267267
ismin.goto idmin.goto \
268-
samax.goto damax.goto camax.goto zamax.goto \
268+
samax.goto damax.goto scamax.goto dzamax.goto \
269269
smax.goto dmax.goto \
270-
samin.goto damin.goto camin.goto zamin.goto \
270+
samin.goto damin.goto scamin.goto dzamin.goto \
271271
smin.goto dmin.goto \
272272
saxpby.goto daxpby.goto caxpby.goto zaxpby.goto \
273273
snrm2.goto dnrm2.goto scnrm2.goto dznrm2.goto $(GOTO_LAPACK_TARGETS) $(GOTO_HALF_TARGETS)
@@ -2832,12 +2832,12 @@ samax.goto : samax.$(SUFFIX) ../$(LIBNAME)
28322832
damax.goto : damax.$(SUFFIX) ../$(LIBNAME)
28332833
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB) -lm
28342834

2835-
############################################## CAMAX ##############################################
2836-
camax.goto : camax.$(SUFFIX) ../$(LIBNAME)
2835+
############################################## SCAMAX ##############################################
2836+
scamax.goto : scamax.$(SUFFIX) ../$(LIBNAME)
28372837
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB) -lm
28382838

2839-
############################################## ZAMAX ##############################################
2840-
zamax.goto : zamax.$(SUFFIX) ../$(LIBNAME)
2839+
############################################## DZAMAX ##############################################
2840+
dzamax.goto : dzamax.$(SUFFIX) ../$(LIBNAME)
28412841
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB) -lm
28422842

28432843
############################################## SMAX ##############################################
@@ -2856,12 +2856,12 @@ samin.goto : samin.$(SUFFIX) ../$(LIBNAME)
28562856
damin.goto : damin.$(SUFFIX) ../$(LIBNAME)
28572857
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB) -lm
28582858

2859-
############################################## CAMIN ##############################################
2860-
camin.goto : camin.$(SUFFIX) ../$(LIBNAME)
2859+
############################################## SCAMIN ##############################################
2860+
scamin.goto : scamin.$(SUFFIX) ../$(LIBNAME)
28612861
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB) -lm
28622862

2863-
############################################## ZAMIN ##############################################
2864-
zamin.goto : zamin.$(SUFFIX) ../$(LIBNAME)
2863+
############################################## DZAMIN ##############################################
2864+
dzamin.goto : dzamin.$(SUFFIX) ../$(LIBNAME)
28652865
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB) -lm
28662866

28672867
############################################## SMIN ##############################################
@@ -3383,10 +3383,10 @@ samax.$(SUFFIX) : amax.c
33833383
damax.$(SUFFIX) : amax.c
33843384
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
33853385

3386-
camax.$(SUFFIX) : amax.c
3386+
scamax.$(SUFFIX) : amax.c
33873387
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
33883388

3389-
zamax.$(SUFFIX) : amax.c
3389+
dzamax.$(SUFFIX) : amax.c
33903390
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
33913391

33923392

@@ -3403,10 +3403,10 @@ samin.$(SUFFIX) : amin.c
34033403
damin.$(SUFFIX) : amin.c
34043404
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
34053405

3406-
camin.$(SUFFIX) : amin.c
3406+
scamin.$(SUFFIX) : amin.c
34073407
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
34083408

3409-
zamin.$(SUFFIX) : amin.c
3409+
dzamin.$(SUFFIX) : amin.c
34103410
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
34113411

34123412

cblas.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,16 @@ CBLAS_INDEX cblas_idamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPE
101101
CBLAS_INDEX cblas_icamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
102102
CBLAS_INDEX cblas_izamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
103103

104+
float cblas_samax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx);
105+
double cblas_damax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx);
106+
float cblas_scamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
107+
double cblas_dzamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
108+
109+
float cblas_samin(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx);
110+
double cblas_damin(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx);
111+
float cblas_scamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
112+
double cblas_dzamin(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
113+
104114
CBLAS_INDEX cblas_ismax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx);
105115
CBLAS_INDEX cblas_idmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx);
106116
CBLAS_INDEX cblas_icmax(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx);
@@ -116,6 +126,9 @@ void cblas_daxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS
116126
void cblas_caxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy);
117127
void cblas_zaxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy);
118128

129+
void cblas_caxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy);
130+
void cblas_zaxpyc(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy);
131+
119132
void cblas_scopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy);
120133
void cblas_dcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy);
121134
void cblas_ccopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST void *x, OPENBLAS_CONST blasint incx, void *y, OPENBLAS_CONST blasint incy);
@@ -290,7 +303,6 @@ void cblas_zgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLA
290303
void cblas_zgemm3m(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
291304
OPENBLAS_CONST void *alpha, OPENBLAS_CONST void *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST void *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST void *beta, void *C, OPENBLAS_CONST blasint ldc);
292305

293-
294306
void cblas_ssymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
295307
OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc);
296308
void cblas_dsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,

interface/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ endif ()
130130
foreach (float_type ${FLOAT_TYPES})
131131

132132
if (${float_type} STREQUAL "COMPLEX" OR ${float_type} STREQUAL "ZCOMPLEX")
133+
GenerateNamedObjects("zaxpy.c" "" "axpyc" ${CBLAS_FLAG} "" "" false ${float_type})
134+
133135
GenerateNamedObjects("zger.c" "" "geru" ${CBLAS_FLAG} "" "" false ${float_type})
134136
GenerateNamedObjects("zger.c" "CONJ" "gerc" ${CBLAS_FLAG} "" "" false ${float_type})
135137
GenerateNamedObjects("zdot.c" "CONJ" "dotc" ${CBLAS_FLAG} "" "" false ${float_type})

interface/Makefile

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,8 @@ CSBLAS1OBJS = \
270270
cblas_scopy.$(SUFFIX) cblas_sdot.$(SUFFIX) cblas_sdsdot.$(SUFFIX) cblas_dsdot.$(SUFFIX) \
271271
cblas_srot.$(SUFFIX) cblas_srotg.$(SUFFIX) cblas_srotm.$(SUFFIX) cblas_srotmg.$(SUFFIX) \
272272
cblas_sscal.$(SUFFIX) cblas_sswap.$(SUFFIX) cblas_snrm2.$(SUFFIX) cblas_saxpby.$(SUFFIX) \
273-
cblas_ismin.$(SUFFIX) cblas_ismax.$(SUFFIX) cblas_ssum.$(SUFFIX)
273+
cblas_ismin.$(SUFFIX) cblas_ismax.$(SUFFIX) cblas_ssum.$(SUFFIX) cblas_samax.$(SUFFIX) \
274+
cblas_samin.$(SUFFIX)
274275

275276
CSBLAS2OBJS = \
276277
cblas_sgemv.$(SUFFIX) cblas_sger.$(SUFFIX) cblas_ssymv.$(SUFFIX) cblas_strmv.$(SUFFIX) \
@@ -295,7 +296,8 @@ CDBLAS1OBJS = \
295296
cblas_dcopy.$(SUFFIX) cblas_ddot.$(SUFFIX) \
296297
cblas_drot.$(SUFFIX) cblas_drotg.$(SUFFIX) cblas_drotm.$(SUFFIX) cblas_drotmg.$(SUFFIX) \
297298
cblas_dscal.$(SUFFIX) cblas_dswap.$(SUFFIX) cblas_dnrm2.$(SUFFIX) cblas_daxpby.$(SUFFIX) \
298-
cblas_idmin.$(SUFFIX) cblas_idmax.$(SUFFIX) cblas_dsum.$(SUFFIX)
299+
cblas_idmin.$(SUFFIX) cblas_idmax.$(SUFFIX) cblas_dsum.$(SUFFIX) cblas_damax.$(SUFFIX) \
300+
cblas_damin.$(SUFFIX)
299301

300302
CDBLAS2OBJS = \
301303
cblas_dgemv.$(SUFFIX) cblas_dger.$(SUFFIX) cblas_dsymv.$(SUFFIX) cblas_dtrmv.$(SUFFIX) \
@@ -315,7 +317,7 @@ CCBLAS1OBJS = \
315317
cblas_cdotc_sub.$(SUFFIX) cblas_cdotu_sub.$(SUFFIX) \
316318
cblas_cscal.$(SUFFIX) cblas_csscal.$(SUFFIX) \
317319
cblas_cswap.$(SUFFIX) cblas_scnrm2.$(SUFFIX) \
318-
cblas_caxpby.$(SUFFIX) \
320+
cblas_caxpby.$(SUFFIX) cblas_scamax.$(SUFFIX) cblas_caxpyc.$(SUFFIX) cblas_scamin.$(SUFFIX) \
319321
cblas_icmin.$(SUFFIX) cblas_icmax.$(SUFFIX) cblas_scsum.$(SUFFIX) cblas_csrot.$(SUFFIX) cblas_crotg.$(SUFFIX)
320322

321323
CCBLAS2OBJS = \
@@ -340,12 +342,12 @@ CXERBLAOBJ = \
340342

341343
CZBLAS1OBJS = \
342344
cblas_izamax.$(SUFFIX) cblas_izamin.$(SUFFIX) cblas_dzasum.$(SUFFIX) cblas_zaxpy.$(SUFFIX) \
343-
cblas_zcopy.$(SUFFIX) \
345+
cblas_zcopy.$(SUFFIX) cblas_dzamax.$(SUFFIX) cblas_dzamin.$(SUFFIX) \
344346
cblas_zdotc.$(SUFFIX) cblas_zdotu.$(SUFFIX) \
345347
cblas_zdotc_sub.$(SUFFIX) cblas_zdotu_sub.$(SUFFIX) \
346348
cblas_zscal.$(SUFFIX) cblas_zdscal.$(SUFFIX) \
347349
cblas_zswap.$(SUFFIX) cblas_dznrm2.$(SUFFIX) \
348-
cblas_zaxpby.$(SUFFIX) \
350+
cblas_zaxpby.$(SUFFIX) cblas_zaxpyc.$(SUFFIX) \
349351
cblas_izmin.$(SUFFIX) cblas_izmax.$(SUFFIX) cblas_dzsum.$(SUFFIX) cblas_zdrot.$(SUFFIX) cblas_zrotg.$(SUFFIX)
350352

351353

@@ -1533,6 +1535,30 @@ cblas_icmin.$(SUFFIX) cblas_icmin.$(PSUFFIX) : imax.c
15331535
cblas_izmin.$(SUFFIX) cblas_izmin.$(PSUFFIX) : imax.c
15341536
$(CC) $(CFLAGS) -DCBLAS -c -UUSE_ABS -DUSE_MIN $< -o $(@F)
15351537

1538+
cblas_samax.$(SUFFIX) cblas_samax.$(PSUFFIX) : max.c
1539+
$(CC) $(CFLAGS) -DCBLAS -c -DUSE_ABS -UUSE_MIN $< -o $(@F)
1540+
1541+
cblas_damax.$(SUFFIX) cblas_damax.$(PSUFFIX) : max.c
1542+
$(CC) $(CFLAGS) -DCBLAS -c -DUSE_ABS -UUSE_MIN $< -o $(@F)
1543+
1544+
cblas_scamax.$(SUFFIX) cblas_scamax.$(PSUFFIX) : max.c
1545+
$(CC) $(CFLAGS) -DCBLAS -c -DUSE_ABS -UUSE_MIN $< -o $(@F)
1546+
1547+
cblas_dzamax.$(SUFFIX) cblas_dzamax.$(PSUFFIX) : max.c
1548+
$(CC) $(CFLAGS) -DCBLAS -c -DUSE_ABS -UUSE_MIN $< -o $(@F)
1549+
1550+
cblas_samin.$(SUFFIX) cblas_samin.$(PSUFFIX) : max.c
1551+
$(CC) $(CFLAGS) -DCBLAS -c -DUSE_ABS -DUSE_MIN $< -o $(@F)
1552+
1553+
cblas_damin.$(SUFFIX) cblas_damin.$(PSUFFIX) : max.c
1554+
$(CC) $(CFLAGS) -DCBLAS -c -DUSE_ABS -DUSE_MIN $< -o $(@F)
1555+
1556+
cblas_scamin.$(SUFFIX) cblas_scamin.$(PSUFFIX) : max.c
1557+
$(CC) $(CFLAGS) -DCBLAS -c -DUSE_ABS -DUSE_MIN $< -o $(@F)
1558+
1559+
cblas_dzamin.$(SUFFIX) cblas_dzamin.$(PSUFFIX) : max.c
1560+
$(CC) $(CFLAGS) -DCBLAS -c -DUSE_ABS -DUSE_MIN $< -o $(@F)
1561+
15361562
cblas_sasum.$(SUFFIX) cblas_sasum.$(PSUFFIX) : asum.c
15371563
$(CC) $(CFLAGS) -DCBLAS -c $< -o $(@F)
15381564

@@ -1627,6 +1653,19 @@ cblas_daxpy.$(SUFFIX) cblas_daxpy.$(PSUFFIX) : axpy.c
16271653
cblas_caxpy.$(SUFFIX) cblas_caxpy.$(PSUFFIX) : zaxpy.c
16281654
$(CC) $(CFLAGS) -DCBLAS -c $< -o $(@F)
16291655

1656+
cblas_caxpyc.$(SUFFIX) cblas_caxpyc.$(PSUFFIX) : zaxpy.c
1657+
$(CC) $(CFLAGS) -DCBLAS -c -DCONJ $< -o $(@F)
1658+
1659+
cblas_zaxpyc.$(SUFFIX) cblas_zaxpyc.$(PSUFFIX) : zaxpy.c
1660+
$(CC) $(CFLAGS) -DCBLAS -c -DCONJ $< -o $(@F)
1661+
1662+
cblas_xaxpyc.$(SUFFIX) cblas_xaxpyc.$(PSUFFIX) : zaxpy.c
1663+
$(CC) $(CFLAGS) -DCBLAS -c -DCONJ $< -o $(@F)
1664+
1665+
sscal.$(SUFFIX) sscal.$(PSUFFIX) : scal.c
1666+
$(CC) $(CFLAGS) -c $< -o $(@F)
1667+
1668+
dscal.$(SUFFIX) dscal.$(PSUFFIX) : scal.c
16301669
cblas_zaxpy.$(SUFFIX) cblas_zaxpy.$(PSUFFIX) : zaxpy.c
16311670
$(CC) $(CFLAGS) -DCBLAS -c $< -o $(@F)
16321671

interface/max.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,13 @@ FLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX){
145145

146146
#else
147147

148+
#ifdef COMPLEX
149+
FLOAT CNAME(blasint n, void *vx, blasint incx){
150+
FLOAT *x = (FLOAT*) vx;
151+
#else
148152
FLOAT CNAME(blasint n, FLOAT *x, blasint incx){
149-
153+
#endif
154+
150155
FLOAT ret;
151156

152157
PRINT_DEBUG_CNAME;

kernel/loongarch64/KERNEL.LOONGSON2K1000

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ ZSCALKERNEL = cscal_lsx.S
1414
SAMAXKERNEL = amax_lsx.S
1515
DAMAXKERNEL = amax_lsx.S
1616
CAMAXKERNEL = camax_lsx.S
17+
ZAMAXKERNEL = camax_lsx.S
1718

1819
SAMINKERNEL = amin_lsx.S
1920
DAMINKERNEL = amin_lsx.S
2021
CAMINKERNEL = camin_lsx.S
22+
ZAMINKERNEL = camin_lsx.S
2123

2224
SMAXKERNEL = max_lsx.S
2325
DMAXKERNEL = max_lsx.S

kernel/loongarch64/KERNEL.LOONGSON3R5

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ ZSCALKERNEL = cscal_lasx.S
1414
SAMAXKERNEL = amax_lasx.S
1515
DAMAXKERNEL = amax_lasx.S
1616
CAMAXKERNEL = camax_lasx.S
17+
ZAMAXKERNEL = camax_lasx.S
1718

1819
SAMINKERNEL = amin_lasx.S
1920
DAMINKERNEL = amin_lasx.S
2021
CAMINKERNEL = camin_lasx.S
22+
ZAMINKERNEL = camin_lasx.S
2123

2224
SMAXKERNEL = max_lsx.S
2325
DMAXKERNEL = max_lsx.S

kernel/loongarch64/amin_lasx.S

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6666
#else
6767
xvldrepl.w VM0, X, 0
6868
#endif
69-
XVFSUB VM0, VM0, VM0
7069
bne INCX, TEMP, .L20
7170

7271
srai.d I, N, 4

kernel/loongarch64/amin_lsx.S

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6666
#else
6767
vldrepl.w VM0, X, 0
6868
#endif
69-
VFSUB VM0, VM0, VM0
7069
bne INCX, TEMP, .L20
7170

7271
srai.d I, N, 3

0 commit comments

Comments
 (0)