Skip to content

Commit b26424c

Browse files
committed
Allow opt into GEMM -> GEMV forwarding
1 parent 90eb863 commit b26424c

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

Makefile.system

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,18 @@ endif
274274
ifeq ($(ARCH), loongarch64)
275275
SMALL_MATRIX_OPT = 1
276276
endif
277+
ifeq ($(ARCH), arm64)
278+
GEMM_GEMV_FORWARD = 1
279+
endif
280+
277281
ifeq ($(SMALL_MATRIX_OPT), 1)
278282
CCOMMON_OPT += -DSMALL_MATRIX_OPT
279283
endif
284+
ifeq ($(GEMM_GEMV_FORWARD), 1)
285+
ifneq ($(ONLY_CBLAS), 1)
286+
CCOMMON_OPT += -DGEMM_GEMV_FORWARD
287+
endif
288+
endif
280289

281290
# This operation is expensive, so execution should be once.
282291
ifndef GOTOBLAS_MAKEFILE

cmake/system.cmake

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,13 @@ endif ()
391391
if (X86_64 OR ${CORE} STREQUAL POWER10)
392392
set(SMALL_MATRIX_OPT TRUE)
393393
endif ()
394+
if (ARM64)
395+
set(GEMM_GEMV_FORWARD TRUE)
396+
endif ()
397+
398+
if (GEMM_GEMV_FORWARD AND NOT ONLY_CBLAS)
399+
set(CCOMMON_OPT "${CCOMMON_OPT} -DGEMM_GEMV_FORWARD")
400+
endif ()
394401
if (SMALL_MATRIX_OPT)
395402
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMALL_MATRIX_OPT")
396403
endif ()

interface/gemm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANS
498498
args.m, args.n, args.k, args.lda, args.ldb, args.ldc);
499499
#endif
500500

501-
#if !defined(GEMM3M) && !defined(COMPLEX)
501+
#if defined(GEMM_GEMV_FORWARD) && !defined(GEMM3M) && !defined(COMPLEX)
502502
// Check if we can convert GEMM -> GEMV
503503
if (args.k != 0) {
504504
if (args.n == 1) {

0 commit comments

Comments
 (0)