Skip to content

Commit 42df9ef

Browse files
authored
Merge pull request #1991 from maamountki/z14
[ZARCH] Z14 Support, BLAS 1/2 single precision implementations
2 parents 86a824c + 8212472 commit 42df9ef

Some content is hidden

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

71 files changed

+15564
-4476
lines changed

Makefile.zarch

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@ CCOMMON_OPT += -march=z13 -mzvector
44
FCOMMON_OPT += -march=z13 -mzvector
55
endif
66

7+
ifeq ($(CORE), Z14)
8+
CCOMMON_OPT += -march=z14 -mzvector
9+
FCOMMON_OPT += -march=z14 -mzvector
10+
endif

cpuid_zarch.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727

2828
#include <string.h>
2929

30-
#define CPU_GENERIC 0
31-
#define CPU_Z13 1
32-
#define CPU_Z14 2
30+
#define CPU_GENERIC 0
31+
#define CPU_Z13 1
32+
#define CPU_Z14 2
3333

3434
static char *cpuname[] = {
3535
"ZARCH_GENERIC",
@@ -64,10 +64,8 @@ int detect(void)
6464

6565
if (strstr(p, "2964")) return CPU_Z13;
6666
if (strstr(p, "2965")) return CPU_Z13;
67-
68-
/* detect z14, but fall back to z13 */
69-
if (strstr(p, "3906")) return CPU_Z13;
70-
if (strstr(p, "3907")) return CPU_Z13;
67+
if (strstr(p, "3906")) return CPU_Z14;
68+
if (strstr(p, "3907")) return CPU_Z14;
7169

7270
return CPU_GENERIC;
7371
}

kernel/zarch/KERNEL.Z13

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
SAMAXKERNEL = ../arm/amax.c
2-
DAMAXKERNEL = ../arm/amax.c
2+
DAMAXKERNEL = damax_z13.c
33
CAMAXKERNEL = ../arm/zamax.c
4-
ZAMAXKERNEL = ../arm/zamax.c
4+
ZAMAXKERNEL = zamax_z13.c
55

66
SAMINKERNEL = ../arm/amin.c
7-
DAMINKERNEL = ../arm/amin.c
7+
DAMINKERNEL = damin_z13.c
88
CAMINKERNEL = ../arm/zamin.c
9-
ZAMINKERNEL = ../arm/zamin.c
9+
ZAMINKERNEL = zamin_z13.c
1010

1111
SMAXKERNEL = ../arm/max.c
12-
DMAXKERNEL = ../arm/max.c
12+
DMAXKERNEL = dmax_z13.c
1313

1414
SMINKERNEL = ../arm/min.c
15-
DMINKERNEL = ../arm/min.c
15+
DMINKERNEL = dmin_z13.c
1616

1717
ISAMAXKERNEL = ../arm/iamax.c
1818
IDAMAXKERNEL = idamax.c
@@ -25,10 +25,10 @@ ICAMINKERNEL = ../arm/izamin.c
2525
IZAMINKERNEL = izamin.c
2626

2727
ISMAXKERNEL = ../arm/imax.c
28-
IDMAXKERNEL = ../arm/imax.c
28+
IDMAXKERNEL = idmax.c
2929

3030
ISMINKERNEL = ../arm/imin.c
31-
IDMINKERNEL = ../arm/imin.c
31+
IDMINKERNEL = idmin.c
3232

3333
SASUMKERNEL = ../arm/asum.c
3434
DASUMKERNEL = dasum.c

kernel/zarch/KERNEL.Z14

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
SAMAXKERNEL = samax.c
2+
DAMAXKERNEL = damax.c
3+
CAMAXKERNEL = camax.c
4+
ZAMAXKERNEL = zamax.c
5+
6+
SAMINKERNEL = samin.c
7+
DAMINKERNEL = damin.c
8+
CAMINKERNEL = camin.c
9+
ZAMINKERNEL = zamin.c
10+
11+
SMAXKERNEL = smax.c
12+
DMAXKERNEL = dmax.c
13+
14+
SMINKERNEL = smin.c
15+
DMINKERNEL = dmin.c
16+
17+
ISAMAXKERNEL = isamax.c
18+
IDAMAXKERNEL = idamax.c
19+
ICAMAXKERNEL = icamax.c
20+
IZAMAXKERNEL = izamax.c
21+
22+
ISAMINKERNEL = isamin.c
23+
IDAMINKERNEL = idamin.c
24+
ICAMINKERNEL = icamin.c
25+
IZAMINKERNEL = izamin.c
26+
27+
ISMAXKERNEL = ismax.c
28+
IDMAXKERNEL = idmax.c
29+
30+
ISMINKERNEL = ismin.c
31+
IDMINKERNEL = idmin.c
32+
33+
SASUMKERNEL = sasum.c
34+
DASUMKERNEL = dasum.c
35+
CASUMKERNEL = casum.c
36+
ZASUMKERNEL = zasum.c
37+
38+
SAXPYKERNEL = saxpy.c
39+
DAXPYKERNEL = daxpy.c
40+
CAXPYKERNEL = caxpy.c
41+
ZAXPYKERNEL = zaxpy.c
42+
43+
SCOPYKERNEL = scopy.c
44+
DCOPYKERNEL = dcopy.c
45+
CCOPYKERNEL = ccopy.c
46+
ZCOPYKERNEL = zcopy.c
47+
48+
SDOTKERNEL = sdot.c
49+
DDOTKERNEL = ddot.c
50+
CDOTKERNEL = cdot.c
51+
ZDOTKERNEL = zdot.c
52+
DSDOTKERNEL = dsdot.c
53+
54+
SNRM2KERNEL = ../arm/nrm2.c
55+
DNRM2KERNEL = ../arm/nrm2.c
56+
CNRM2KERNEL = ../arm/znrm2.c
57+
ZNRM2KERNEL = ../arm/znrm2.c
58+
59+
SROTKERNEL = srot.c
60+
DROTKERNEL = drot.c
61+
CROTKERNEL = crot.c
62+
ZROTKERNEL = zrot.c
63+
64+
SSCALKERNEL = sscal.c
65+
DSCALKERNEL = dscal.c
66+
CSCALKERNEL = cscal.c
67+
ZSCALKERNEL = zscal.c
68+
69+
SSWAPKERNEL = sswap.c
70+
DSWAPKERNEL = dswap.c
71+
CSWAPKERNEL = cswap.c
72+
ZSWAPKERNEL = zswap.c
73+
74+
SGEMVNKERNEL = sgemv_n_4.c
75+
DGEMVNKERNEL = dgemv_n_4.c
76+
CGEMVNKERNEL = cgemv_n_4.c
77+
ZGEMVNKERNEL = zgemv_n_4.c
78+
79+
SGEMVTKERNEL = sgemv_t_4.c
80+
DGEMVTKERNEL = dgemv_t_4.c
81+
CGEMVTKERNEL = cgemv_t_4.c
82+
ZGEMVTKERNEL = zgemv_t_4.c
83+
84+
STRMMKERNEL = strmm8x4V.S
85+
DTRMMKERNEL = trmm8x4V.S
86+
CTRMMKERNEL = ctrmm4x4V.S
87+
ZTRMMKERNEL = ztrmm4x4V.S
88+
89+
SGEMMKERNEL = strmm8x4V.S
90+
SGEMMINCOPY = ../generic/gemm_ncopy_8.c
91+
SGEMMITCOPY = ../generic/gemm_tcopy_8.c
92+
SGEMMONCOPY = ../generic/gemm_ncopy_4.c
93+
SGEMMOTCOPY = ../generic/gemm_tcopy_4.c
94+
SGEMMINCOPYOBJ = sgemm_incopy.o
95+
SGEMMITCOPYOBJ = sgemm_itcopy.o
96+
SGEMMONCOPYOBJ = sgemm_oncopy.o
97+
SGEMMOTCOPYOBJ = sgemm_otcopy.o
98+
99+
100+
101+
DGEMMKERNEL = gemm8x4V.S
102+
DGEMMINCOPY = ../generic/gemm_ncopy_8.c
103+
DGEMMITCOPY = ../generic/gemm_tcopy_8.c
104+
DGEMMONCOPY = ../generic/gemm_ncopy_4.c
105+
DGEMMOTCOPY = ../generic/gemm_tcopy_4.c
106+
DGEMMINCOPYOBJ = dgemm_incopy.o
107+
DGEMMITCOPYOBJ = dgemm_itcopy.o
108+
DGEMMONCOPYOBJ = dgemm_oncopy.o
109+
DGEMMOTCOPYOBJ = dgemm_otcopy.o
110+
111+
CGEMMKERNEL = ctrmm4x4V.S
112+
CGEMMONCOPY = ../generic/zgemm_ncopy_4.c
113+
CGEMMOTCOPY = ../generic/zgemm_tcopy_4.c
114+
CGEMMONCOPYOBJ = cgemm_oncopy.o
115+
CGEMMOTCOPYOBJ = cgemm_otcopy.o
116+
117+
ZGEMMKERNEL = ztrmm4x4V.S
118+
ZGEMMONCOPY = ../generic/zgemm_ncopy_4.c
119+
ZGEMMOTCOPY = ../generic/zgemm_tcopy_4.c
120+
ZGEMMONCOPYOBJ = zgemm_oncopy$(TSUFFIX).$(SUFFIX)
121+
ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX)
122+
123+
STRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
124+
STRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
125+
STRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
126+
STRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
127+
128+
DTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
129+
DTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
130+
DTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
131+
DTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
132+
133+
CTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
134+
CTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
135+
CTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
136+
CTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
137+
138+
ZTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
139+
ZTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
140+
ZTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
141+
ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
142+
143+
144+
145+
146+

0 commit comments

Comments
 (0)