Skip to content

Commit 06365ff

Browse files
authored
Merge pull request #5573 from almayne/sgemm_interleave
Add interleaving to sgemm and dgemm. Disentangle trmm/symm from gemm.
2 parents 3448836 + d005d50 commit 06365ff

19 files changed

Lines changed: 5024 additions & 52 deletions

‎CONTRIBUTORS.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ In chronological order:
272272

273273
* Anna Mayne <anna.mayne@arm.com>
274274
* [2025-11-19] Update thread throttling profile for SGEMV on NEOVERSEV1 and NEOVERSEV2
275+
* [2026-09-24] Add interleaving to sgemm and dgemm. Disentangle trmm/symm from gemm.
275276

276277
* Fadi Arafeh <fadi.arafeh@arm.com>
277278
* [2026-03-05] Accelerate SVE128 SBGEMM/BGEMM

‎common_c.h‎

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
1+
/*********************************************************************/
2+
/* Copyright 2009, 2010 The University of Texas at Austin. */
3+
/* Copyright 2025-2026 The OpenBLAS Project. */
4+
/* All rights reserved. */
5+
/* */
6+
/* Redistribution and use in source and binary forms, with or */
7+
/* without modification, are permitted provided that the following */
8+
/* conditions are met: */
9+
/* */
10+
/* 1. Redistributions of source code must retain the above */
11+
/* copyright notice, this list of conditions and the following */
12+
/* disclaimer. */
13+
/* */
14+
/* 2. Redistributions in binary form must reproduce the above */
15+
/* copyright notice, this list of conditions and the following */
16+
/* disclaimer in the documentation and/or other materials */
17+
/* provided with the distribution. */
18+
/* */
19+
/* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */
20+
/* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */
21+
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
22+
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
23+
/* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */
24+
/* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
25+
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
26+
/* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */
27+
/* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */
28+
/* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
29+
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
30+
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */
31+
/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
32+
/* POSSIBILITY OF SUCH DAMAGE. */
33+
/* */
34+
/* The views and conclusions contained in the software and */
35+
/* documentation are those of the authors and should not be */
36+
/* interpreted as representing official policies, either expressed */
37+
/* or implied, of The University of Texas at Austin. */
38+
/*********************************************************************/
39+
140
#ifndef COMMON_C_H
241
#define COMMON_C_H
342

@@ -62,6 +101,11 @@
62101
#define CGEMM_ITCOPY cgemm_itcopy
63102
#endif
64103

104+
#define CSYMM_INCOPY csymm_incopy
105+
#define CSYMM_ITCOPY csymm_itcopy
106+
#define CTRMM_INCOPY ctrmm_incopy
107+
#define CTRMM_ITCOPY ctrmm_itcopy
108+
65109
#define CTRMM_OUNUCOPY ctrmm_ounucopy
66110
#define CTRMM_OUNNCOPY ctrmm_ounncopy
67111
#define CTRMM_OUTUCOPY ctrmm_outucopy
@@ -126,6 +170,15 @@
126170
#define CGEMM_KERNEL_R cgemm_kernel_r
127171
#define CGEMM_KERNEL_B cgemm_kernel_b
128172

173+
#define CSYMM_KERNEL_N csymm_kernel_n
174+
#define CSYMM_KERNEL_L csymm_kernel_l
175+
#define CSYMM_KERNEL_R csymm_kernel_r
176+
#define CSYMM_KERNEL_B csymm_kernel_b
177+
#define CTRMM_GEMM_KERNEL_N ctrmm_gemm_kernel_n
178+
#define CTRMM_GEMM_KERNEL_L ctrmm_gemm_kernel_l
179+
#define CTRMM_GEMM_KERNEL_R ctrmm_gemm_kernel_r
180+
#define CTRMM_GEMM_KERNEL_B ctrmm_gemm_kernel_b
181+
129182
#define CTRMM_KERNEL_LN ctrmm_kernel_LN
130183
#define CTRMM_KERNEL_LT ctrmm_kernel_LT
131184
#define CTRMM_KERNEL_LR ctrmm_kernel_LR
@@ -321,18 +374,32 @@
321374
#define CTRMM_IUTNCOPY gotoblas -> ctrmm_iutncopy
322375
#define CTRMM_ILNNCOPY gotoblas -> ctrmm_ilnncopy
323376
#define CTRMM_ILTNCOPY gotoblas -> ctrmm_iltncopy
377+
#define CSYMM_INCOPY gotoblas -> csymm_incopy
378+
#define CSYMM_ITCOPY gotoblas -> csymm_itcopy
379+
#define CTRMM_INCOPY gotoblas -> ctrmm_incopy
380+
#define CTRMM_ITCOPY gotoblas -> ctrmm_itcopy
381+
324382
#define CTRSM_IUNNCOPY gotoblas -> ctrsm_iunncopy
325383
#define CTRSM_IUTNCOPY gotoblas -> ctrsm_iutncopy
326384
#define CTRSM_ILNNCOPY gotoblas -> ctrsm_ilnncopy
327385
#define CTRSM_ILTNCOPY gotoblas -> ctrsm_iltncopy
328386

329-
#define CGEMM_BETA gotoblas -> cgemm_beta
330387
#define SME_CGEMM_KERNEL gotoblas -> sme_cgemm_kernel
388+
#define CGEMM_BETA gotoblas -> cgemm_beta
331389
#define CGEMM_KERNEL_N gotoblas -> cgemm_kernel_n
332390
#define CGEMM_KERNEL_L gotoblas -> cgemm_kernel_l
333391
#define CGEMM_KERNEL_R gotoblas -> cgemm_kernel_r
334392
#define CGEMM_KERNEL_B gotoblas -> cgemm_kernel_b
335393

394+
#define CSYMM_KERNEL_N gotoblas -> csymm_kernel_n
395+
#define CSYMM_KERNEL_L gotoblas -> csymm_kernel_l
396+
#define CSYMM_KERNEL_R gotoblas -> csymm_kernel_r
397+
#define CSYMM_KERNEL_B gotoblas -> csymm_kernel_b
398+
#define CTRMM_GEMM_KERNEL_N gotoblas -> ctrmm_gemm_kernel_n
399+
#define CTRMM_GEMM_KERNEL_L gotoblas -> ctrmm_gemm_kernel_l
400+
#define CTRMM_GEMM_KERNEL_R gotoblas -> ctrmm_gemm_kernel_r
401+
#define CTRMM_GEMM_KERNEL_B gotoblas -> ctrmm_gemm_kernel_b
402+
336403
#define CTRMM_KERNEL_LN gotoblas -> ctrmm_kernel_LN
337404
#define CTRMM_KERNEL_LT gotoblas -> ctrmm_kernel_LT
338405
#define CTRMM_KERNEL_LR gotoblas -> ctrmm_kernel_LR

‎common_d.h‎

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
1+
/*********************************************************************/
2+
/* Copyright 2009, 2010 The University of Texas at Austin. */
3+
/* Copyright 2025-2026 The OpenBLAS Project. */
4+
/* All rights reserved. */
5+
/* */
6+
/* Redistribution and use in source and binary forms, with or */
7+
/* without modification, are permitted provided that the following */
8+
/* conditions are met: */
9+
/* */
10+
/* 1. Redistributions of source code must retain the above */
11+
/* copyright notice, this list of conditions and the following */
12+
/* disclaimer. */
13+
/* */
14+
/* 2. Redistributions in binary form must reproduce the above */
15+
/* copyright notice, this list of conditions and the following */
16+
/* disclaimer in the documentation and/or other materials */
17+
/* provided with the distribution. */
18+
/* */
19+
/* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */
20+
/* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */
21+
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
22+
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
23+
/* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */
24+
/* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
25+
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
26+
/* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */
27+
/* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */
28+
/* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
29+
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
30+
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */
31+
/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
32+
/* POSSIBILITY OF SUCH DAMAGE. */
33+
/* */
34+
/* The views and conclusions contained in the software and */
35+
/* documentation are those of the authors and should not be */
36+
/* interpreted as representing official policies, either expressed */
37+
/* or implied, of The University of Texas at Austin. */
38+
/*********************************************************************/
39+
140
#ifndef COMMON_D_H
241
#define COMMON_D_H
342

@@ -55,6 +94,11 @@
5594
#define DGEMM_ITCOPY dgemm_itcopy
5695
#endif
5796

97+
#define DSYMM_INCOPY dsymm_incopy
98+
#define DSYMM_ITCOPY dsymm_itcopy
99+
#define DTRMM_INCOPY dtrmm_incopy
100+
#define DTRMM_ITCOPY dtrmm_itcopy
101+
58102
#define DTRMM_OUNUCOPY dtrmm_ounucopy
59103
#define DTRMM_OUNNCOPY dtrmm_ounncopy
60104
#define DTRMM_OUTUCOPY dtrmm_outucopy
@@ -115,6 +159,8 @@
115159

116160
#define DGEMM_KERNEL dgemm_kernel
117161
#define SME_DGEMM_KERNEL sme_dgemm_kernel
162+
#define DSYMM_KERNEL dsymm_kernel
163+
#define DTRMM_GEMM_KERNEL dtrmm_gemm_kernel
118164

119165
#define DTRMM_KERNEL_LN dtrmm_kernel_LN
120166
#define DTRMM_KERNEL_LT dtrmm_kernel_LT
@@ -240,14 +286,21 @@
240286
#define DTRMM_IUTNCOPY gotoblas -> dtrmm_iutncopy
241287
#define DTRMM_ILNNCOPY gotoblas -> dtrmm_ilnncopy
242288
#define DTRMM_ILTNCOPY gotoblas -> dtrmm_iltncopy
289+
#define DSYMM_INCOPY gotoblas -> dsymm_incopy
290+
#define DSYMM_ITCOPY gotoblas -> dsymm_itcopy
291+
#define DTRMM_INCOPY gotoblas -> dtrmm_incopy
292+
#define DTRMM_ITCOPY gotoblas -> dtrmm_itcopy
293+
243294
#define DTRSM_IUNNCOPY gotoblas -> dtrsm_iunncopy
244295
#define DTRSM_IUTNCOPY gotoblas -> dtrsm_iutncopy
245296
#define DTRSM_ILNNCOPY gotoblas -> dtrsm_ilnncopy
246297
#define DTRSM_ILTNCOPY gotoblas -> dtrsm_iltncopy
247298

248-
#define DGEMM_BETA gotoblas -> dgemm_beta
299+
#define DGEMM_BETA gotoblas -> dgemm_beta
249300
#define DGEMM_KERNEL gotoblas -> dgemm_kernel
250301
#define SME_DGEMM_KERNEL gotoblas -> sme_dgemm_kernel
302+
#define DSYMM_KERNEL gotoblas -> dsymm_kernel
303+
#define DTRMM_GEMM_KERNEL gotoblas -> dtrmm_gemm_kernel
251304

252305
#define DTRMM_KERNEL_LN gotoblas -> dtrmm_kernel_LN
253306
#define DTRMM_KERNEL_LT gotoblas -> dtrmm_kernel_LT

‎common_level3.h‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/*********************************************************************/
22
/* Copyright 2009, 2010 The University of Texas at Austin. */
3+
/* Copyright 2025-2026 The OpenBLAS Project. */
34
/* All rights reserved. */
45
/* */
56
/* Redistribution and use in source and binary forms, with or */
@@ -334,6 +335,10 @@ int strmm_ilnucopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX
334335
int strmm_ilnncopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
335336
int strmm_iltucopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
336337
int strmm_iltncopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
338+
int ssymm_incopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, float *b);
339+
int ssymm_itcopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, float *b);
340+
int strmm_incopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, float *b);
341+
int strmm_itcopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, float *b);
337342
int strmm_olnucopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
338343
int strmm_olnncopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
339344
int strmm_oltucopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
@@ -351,6 +356,10 @@ int dtrmm_ilnucopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG pos
351356
int dtrmm_ilnncopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
352357
int dtrmm_iltucopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
353358
int dtrmm_iltncopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
359+
int dsymm_itcopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b);
360+
int dsymm_incopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b);
361+
int dtrmm_itcopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b);
362+
int dtrmm_incopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b);
354363
int dtrmm_olnucopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
355364
int dtrmm_olnncopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
356365
int dtrmm_oltucopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
@@ -385,6 +394,10 @@ int ctrmm_ilnucopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX
385394
int ctrmm_ilnncopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
386395
int ctrmm_iltucopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
387396
int ctrmm_iltncopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
397+
int csymm_itcopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, float *b);
398+
int csymm_incopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, float *b);
399+
int ctrmm_itcopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, float *b);
400+
int ctrmm_incopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, float *b);
388401
int ctrmm_olnucopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
389402
int ctrmm_olnncopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
390403
int ctrmm_oltucopy(BLASLONG m, BLASLONG n, float *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, float *b);
@@ -402,6 +415,10 @@ int ztrmm_ilnucopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG pos
402415
int ztrmm_ilnncopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
403416
int ztrmm_iltucopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
404417
int ztrmm_iltncopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
418+
int zsymm_itcopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b);
419+
int zsymm_incopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b);
420+
int ztrmm_itcopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b);
421+
int ztrmm_incopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b);
405422
int ztrmm_olnucopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
406423
int ztrmm_olnncopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
407424
int ztrmm_oltucopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, BLASLONG posX, BLASLONG posY, double *b);
@@ -629,6 +646,10 @@ int bgemm_kernel(BLASLONG, BLASLONG, BLASLONG, bfloat16, bfloat16 *, bfloat16 *
629646
int sbgemm_kernel(BLASLONG, BLASLONG, BLASLONG, float, bfloat16 *, bfloat16 *, float *, BLASLONG);
630647
int sgemm_kernel(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG);
631648
int dgemm_kernel(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG);
649+
int ssymm_kernel(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG);
650+
int dsymm_kernel(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG);
651+
int strmm_gemm_kernel(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG);
652+
int dtrmm_gemm_kernel(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG);
632653

633654
#ifdef QUAD_PRECISION
634655
int qgemm_kernel(BLASLONG, BLASLONG, BLASLONG, xidouble *, xidouble *, xidouble *, xdouble *, BLASLONG);
@@ -778,6 +799,26 @@ int cgemm3m_kernel(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float
778799
int zgemm3m_kernel(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
779800
int xgemm3m_kernel(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG);
780801

802+
int csymm_kernel_n(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
803+
int csymm_kernel_l(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
804+
int csymm_kernel_r(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
805+
int csymm_kernel_b(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
806+
807+
int ctrmm_gemm_kernel_n(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
808+
int ctrmm_gemm_kernel_l(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
809+
int ctrmm_gemm_kernel_r(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
810+
int ctrmm_gemm_kernel_b(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
811+
812+
int zsymm_kernel_n(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
813+
int zsymm_kernel_l(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
814+
int zsymm_kernel_r(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
815+
int zsymm_kernel_b(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
816+
817+
int ztrmm_gemm_kernel_n(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
818+
int ztrmm_gemm_kernel_l(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
819+
int ztrmm_gemm_kernel_r(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
820+
int ztrmm_gemm_kernel_b(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG);
821+
781822
int shgemm_nn(blas_arg_t *, BLASLONG *, BLASLONG *, hfloat16 *, hfloat16 *, BLASLONG);
782823
int shgemm_nt(blas_arg_t *, BLASLONG *, BLASLONG *, hfloat16 *, hfloat16 *, BLASLONG);
783824
int shgemm_tn(blas_arg_t *, BLASLONG *, BLASLONG *, hfloat16 *, hfloat16 *, BLASLONG);

0 commit comments

Comments
 (0)