Browse Source

Allow opt into GEMM -> GEMV forwarding

tags/v0.3.28^2
Chris Sidebottom 1 year ago
parent
commit
b26424c6a2
3 changed files with 17 additions and 1 deletions
  1. +9
    -0
      Makefile.system
  2. +7
    -0
      cmake/system.cmake
  3. +1
    -1
      interface/gemm.c

+ 9
- 0
Makefile.system View File

@@ -274,9 +274,18 @@ endif
ifeq ($(ARCH), loongarch64)
SMALL_MATRIX_OPT = 1
endif
ifeq ($(ARCH), arm64)
GEMM_GEMV_FORWARD = 1
endif

ifeq ($(SMALL_MATRIX_OPT), 1)
CCOMMON_OPT += -DSMALL_MATRIX_OPT
endif
ifeq ($(GEMM_GEMV_FORWARD), 1)
ifneq ($(ONLY_CBLAS), 1)
CCOMMON_OPT += -DGEMM_GEMV_FORWARD
endif
endif

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


+ 7
- 0
cmake/system.cmake View File

@@ -391,6 +391,13 @@ endif ()
if (X86_64 OR ${CORE} STREQUAL POWER10)
set(SMALL_MATRIX_OPT TRUE)
endif ()
if (ARM64)
set(GEMM_GEMV_FORWARD TRUE)
endif ()

if (GEMM_GEMV_FORWARD AND NOT ONLY_CBLAS)
set(CCOMMON_OPT "${CCOMMON_OPT} -DGEMM_GEMV_FORWARD")
endif ()
if (SMALL_MATRIX_OPT)
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMALL_MATRIX_OPT")
endif ()


+ 1
- 1
interface/gemm.c View File

@@ -498,7 +498,7 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANS
args.m, args.n, args.k, args.lda, args.ldb, args.ldc);
#endif

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


Loading…
Cancel
Save