Skip to content

Commit dbdfea8

Browse files
author
Kwok Cheung Yeung
committed
Allow TRMM unroll sizes to be set independently from the GEMM unroll sizes for RISC-V
The unroll factor of the TRMM kernels are currently set to those of the equivalent GEMM kernels. As we are not dealing with the TRMM kernels for now, I have added extra xTRMM_UNROLL_(M|N) parameters to allow them to be set independently of the xGEMM_UNROLL_(M|N) parameters. If the new TRMM parameter is not defined, then it defaults back to the original behaviour of using the GEMM parameters.
1 parent 320e2d9 commit dbdfea8

3 files changed

Lines changed: 75 additions & 27 deletions

File tree

getarch_2nd.c

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,55 @@ int main(int argc, char **argv) {
103103
printf("XGEMM3M_UNROLL_N=%d\n", QGEMM_DEFAULT_UNROLL_N);
104104
#endif
105105

106+
#ifdef ARCH_RISCV64
107+
#ifdef STRMM_DEFAULT_UNROLL_M
108+
printf("STRMM_UNROLL_M=%d\n", STRMM_DEFAULT_UNROLL_M);
109+
#else
110+
printf("STRMM_UNROLL_M=%d\n", SGEMM_DEFAULT_UNROLL_M);
111+
#endif
112+
113+
#ifdef STRMM_DEFAULT_UNROLL_N
114+
printf("STRMM_UNROLL_N=%d\n", STRMM_DEFAULT_UNROLL_N);
115+
#else
116+
printf("STRMM_UNROLL_N=%d\n", SGEMM_DEFAULT_UNROLL_N);
117+
#endif
118+
119+
#ifdef DTRMM_DEFAULT_UNROLL_M
120+
printf("DTRMM_UNROLL_M=%d\n", DTRMM_DEFAULT_UNROLL_M);
121+
#else
122+
printf("DTRMM_UNROLL_M=%d\n", DGEMM_DEFAULT_UNROLL_M);
123+
#endif
124+
125+
#ifdef DTRMM_DEFAULT_UNROLL_N
126+
printf("DTRMM_UNROLL_N=%d\n", DTRMM_DEFAULT_UNROLL_N);
127+
#else
128+
printf("DTRMM_UNROLL_N=%d\n", DGEMM_DEFAULT_UNROLL_N);
129+
#endif
106130

131+
#ifdef CTRMM_DEFAULT_UNROLL_M
132+
printf("CTRMM_UNROLL_M=%d\n", CTRMM_DEFAULT_UNROLL_M);
133+
#else
134+
printf("CTRMM_UNROLL_M=%d\n", CGEMM_DEFAULT_UNROLL_M);
135+
#endif
136+
137+
#ifdef CTRMM_DEFAULT_UNROLL_N
138+
printf("CTRMM_UNROLL_N=%d\n", CTRMM_DEFAULT_UNROLL_N);
139+
#else
140+
printf("CTRMM_UNROLL_N=%d\n", CGEMM_DEFAULT_UNROLL_N);
141+
#endif
142+
143+
#ifdef ZTRMM_DEFAULT_UNROLL_M
144+
printf("ZTRMM_UNROLL_M=%d\n", ZTRMM_DEFAULT_UNROLL_M);
145+
#else
146+
printf("ZTRMM_UNROLL_M=%d\n", ZGEMM_DEFAULT_UNROLL_M);
147+
#endif
148+
149+
#ifdef ZTRMM_DEFAULT_UNROLL_N
150+
printf("ZTRMM_UNROLL_N=%d\n", ZTRMM_DEFAULT_UNROLL_N);
151+
#else
152+
printf("ZTRMM_UNROLL_N=%d\n", ZGEMM_DEFAULT_UNROLL_N);
153+
#endif
154+
#endif /* ARCH_RISCV64 */
107155
}
108156

109157

kernel/riscv64/KERNEL.RISCV64_ZVL128B

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -165,29 +165,29 @@ ZGEMMINCOPYOBJ = zgemm_incopy$(TSUFFIX).$(SUFFIX)
165165
ZGEMMITCOPYOBJ = zgemm_itcopy$(TSUFFIX).$(SUFFIX)
166166
endif
167167

168-
STRMMKERNEL = strmm_kernel_$(SGEMM_UNROLL_M)x$(SGEMM_UNROLL_N)_zvl128b.c
169-
STRMMUNCOPY_M = ../generic/trmm_uncopy_$(SGEMM_UNROLL_M).c
170-
STRMMLNCOPY_M = ../generic/trmm_lncopy_$(SGEMM_UNROLL_M).c
171-
STRMMUTCOPY_M = ../generic/trmm_utcopy_$(SGEMM_UNROLL_M).c
172-
STRMMLTCOPY_M = ../generic/trmm_ltcopy_$(SGEMM_UNROLL_M).c
173-
174-
DTRMMKERNEL = dtrmm_kernel_$(DGEMM_UNROLL_M)x$(DGEMM_UNROLL_N)_zvl128b.c
175-
DTRMMUNCOPY_M = ../generic/trmm_uncopy_$(DGEMM_UNROLL_M).c
176-
DTRMMLNCOPY_M = ../generic/trmm_lncopy_$(DGEMM_UNROLL_M).c
177-
DTRMMUTCOPY_M = ../generic/trmm_utcopy_$(DGEMM_UNROLL_M).c
178-
DTRMMLTCOPY_M = ../generic/trmm_ltcopy_$(DGEMM_UNROLL_M).c
179-
180-
CTRMMKERNEL = ctrmm_kernel_$(CGEMM_UNROLL_M)x$(CGEMM_UNROLL_N)_zvl128b.c
181-
CTRMMUNCOPY_M = ../generic/ztrmm_uncopy_$(CGEMM_UNROLL_M).c
182-
CTRMMLNCOPY_M = ../generic/ztrmm_lncopy_$(CGEMM_UNROLL_M).c
183-
CTRMMUTCOPY_M = ../generic/ztrmm_utcopy_$(CGEMM_UNROLL_M).c
184-
CTRMMLTCOPY_M = ../generic/ztrmm_ltcopy_$(CGEMM_UNROLL_M).c
185-
186-
ZTRMMKERNEL = ztrmm_kernel_$(ZGEMM_UNROLL_M)x$(ZGEMM_UNROLL_N)_zvl128b.c
187-
ZTRMMUNCOPY_M = ../generic/ztrmm_uncopy_$(ZGEMM_UNROLL_M).c
188-
ZTRMMLNCOPY_M = ../generic/ztrmm_lncopy_$(ZGEMM_UNROLL_M).c
189-
ZTRMMUTCOPY_M = ../generic/ztrmm_utcopy_$(ZGEMM_UNROLL_M).c
190-
ZTRMMLTCOPY_M = ../generic/ztrmm_ltcopy_$(ZGEMM_UNROLL_M).c
168+
STRMMKERNEL = strmm_kernel_$(STRMM_UNROLL_M)x$(STRMM_UNROLL_N)_zvl128b.c
169+
STRMMUNCOPY_M = ../generic/trmm_uncopy_$(STRMM_UNROLL_M).c
170+
STRMMLNCOPY_M = ../generic/trmm_lncopy_$(STRMM_UNROLL_M).c
171+
STRMMUTCOPY_M = ../generic/trmm_utcopy_$(STRMM_UNROLL_M).c
172+
STRMMLTCOPY_M = ../generic/trmm_ltcopy_$(STRMM_UNROLL_M).c
173+
174+
DTRMMKERNEL = dtrmm_kernel_$(DTRMM_UNROLL_M)x$(DTRMM_UNROLL_N)_zvl128b.c
175+
DTRMMUNCOPY_M = ../generic/trmm_uncopy_$(DTRMM_UNROLL_M).c
176+
DTRMMLNCOPY_M = ../generic/trmm_lncopy_$(DTRMM_UNROLL_M).c
177+
DTRMMUTCOPY_M = ../generic/trmm_utcopy_$(DTRMM_UNROLL_M).c
178+
DTRMMLTCOPY_M = ../generic/trmm_ltcopy_$(DTRMM_UNROLL_M).c
179+
180+
CTRMMKERNEL = ctrmm_kernel_$(CTRMM_UNROLL_M)x$(CTRMM_UNROLL_N)_zvl128b.c
181+
CTRMMUNCOPY_M = ../generic/ztrmm_uncopy_$(CTRMM_UNROLL_M).c
182+
CTRMMLNCOPY_M = ../generic/ztrmm_lncopy_$(CTRMM_UNROLL_M).c
183+
CTRMMUTCOPY_M = ../generic/ztrmm_utcopy_$(CTRMM_UNROLL_M).c
184+
CTRMMLTCOPY_M = ../generic/ztrmm_ltcopy_$(CTRMM_UNROLL_M).c
185+
186+
ZTRMMKERNEL = ztrmm_kernel_$(ZTRMM_UNROLL_M)x$(ZTRMM_UNROLL_N)_zvl128b.c
187+
ZTRMMUNCOPY_M = ../generic/ztrmm_uncopy_$(ZTRMM_UNROLL_M).c
188+
ZTRMMLNCOPY_M = ../generic/ztrmm_lncopy_$(ZTRMM_UNROLL_M).c
189+
ZTRMMUTCOPY_M = ../generic/ztrmm_utcopy_$(ZTRMM_UNROLL_M).c
190+
ZTRMMLTCOPY_M = ../generic/ztrmm_ltcopy_$(ZTRMM_UNROLL_M).c
191191

192192
STRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
193193
STRSMKERNEL_LT = ../generic/trsm_kernel_LT.c

kernel/riscv64/KERNEL.RISCV64_ZVL256B

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ DGEMVTKERNEL = gemv_t_vector.c
9090
CGEMVTKERNEL = zgemv_t_vector.c
9191
ZGEMVTKERNEL = zgemv_t_vector.c
9292

93-
STRMMKERNEL = strmm_kernel_$(SGEMM_UNROLL_M)x$(SGEMM_UNROLL_N)_zvl256b.c
94-
DTRMMKERNEL = dtrmm_kernel_$(DGEMM_UNROLL_M)x$(DGEMM_UNROLL_N)_zvl256b.c
95-
CTRMMKERNEL = ctrmm_kernel_$(CGEMM_UNROLL_M)x$(CGEMM_UNROLL_N)_zvl256b.c
96-
ZTRMMKERNEL = ztrmm_kernel_$(ZGEMM_UNROLL_M)x$(ZGEMM_UNROLL_N)_zvl256b.c
93+
STRMMKERNEL = strmm_kernel_$(STRMM_UNROLL_M)x$(STRMM_UNROLL_N)_zvl256b.c
94+
DTRMMKERNEL = dtrmm_kernel_$(DTRMM_UNROLL_M)x$(DTRMM_UNROLL_N)_zvl256b.c
95+
CTRMMKERNEL = ctrmm_kernel_$(CTRMM_UNROLL_M)x$(CTRMM_UNROLL_N)_zvl256b.c
96+
ZTRMMKERNEL = ztrmm_kernel_$(ZTRMM_UNROLL_M)x$(ZTRMM_UNROLL_N)_zvl256b.c
9797

9898
SGEMMKERNEL = sgemm_kernel_zvl256b.c
9999
ifneq ($(filter $(SGEMM_UNROLL_N),4 8 16),)

0 commit comments

Comments
 (0)