Skip to content

Commit f285f47

Browse files
authored
Merge branch 'develop' into issue5841
2 parents 305bd67 + 8d73a85 commit f285f47

12 files changed

Lines changed: 3111 additions & 2 deletions

CONTRIBUTORS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,3 +286,5 @@ hheei <hheei@users.noreply.github.com>
286286
* Vincent Lovero <https://github.com/vlovero>
287287
* [2026-08-11] ARM v9.2 SME GEMM kernels for Apple M
288288

289+
* Hugo Meiland <hugo@meiland.nl>
290+
* [2026-08-09] Add Cortex-A72 DGEMM 6x8 microkernel and blocking

driver/others/dynamic_arm64.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@ extern gotoblas_t gotoblas_CORTEXA53;
171171
#else
172172
extern gotoblas_t gotoblas_CORTEXA57;
173173
#endif
174+
/* Keep A72 out of the default DYNAMIC_CORE set (see #4389); opt in via
175+
* DYNAMIC_LIST=CORTEXA72. Default DYNAMIC_ARCH continues to alias A57. */
174176
#define gotoblas_CORTEXA72 gotoblas_CORTEXA57
175177
#define gotoblas_CORTEXA73 gotoblas_CORTEXA57
176178
#define gotoblas_FALKOR gotoblas_CORTEXA57

kernel/arm64/KERNEL.CORTEXA72

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
11
include $(KERNELDIR)/KERNEL.CORTEXA57
22

3+
# Cortex-A72 DGEMM uses a dedicated 6x8 microkernel (see
4+
# dgemm_kernel_6x8_cortexa72.S). Stock TARGET=CORTEXA72 previously
5+
# aliased CORTEXA57 (8x4). Keep SGEMM/CGEMM/ZGEMM from A57 for now.
6+
#
7+
# Stock generic/gemm_{t,n}copy_6.c packs as 4+2, not contiguous MR=6 —
8+
# use the panel packers. NR=8 reuses the asm dgemm_{n,t}copy_8.S.
9+
# No dtrmm_kernel_6x8.S yet; fall back to generic 2x2 for DTRMM.
10+
# Stock generic/trsm_kernel_*.c assumes power-of-2 UNROLL_M; use the
11+
# UNROLLM6-aware kernels (same idea as loongarch64 UNROLLN6).
12+
DGEMMKERNEL = dgemm_kernel_6x8_cortexa72.S
13+
DTRMMKERNEL = ../generic/trmmkernel_2x2.c
314

15+
DTRSMKERNEL_LN = trsm_kernel_LN_UNROLLM6.c
16+
DTRSMKERNEL_LT = trsm_kernel_LT_UNROLLM6.c
17+
DTRSMKERNEL_RN = trsm_kernel_RN_UNROLLM6.c
18+
DTRSMKERNEL_RT = trsm_kernel_RT_UNROLLM6.c
19+
20+
DGEMMINCOPY = gemm_ncopy_6_panel.c
21+
DGEMMITCOPY = gemm_tcopy_6_panel.c
22+
DGEMMINCOPYOBJ = dgemm_incopy$(TSUFFIX).$(SUFFIX)
23+
DGEMMITCOPYOBJ = dgemm_itcopy$(TSUFFIX).$(SUFFIX)
24+
25+
DGEMMONCOPY = dgemm_ncopy_8.S
26+
DGEMMOTCOPY = dgemm_tcopy_8.S
27+
DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX)
28+
DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX)

0 commit comments

Comments
 (0)