Allow opt into GEMM -> GEMV forwarding
This commit is contained in:
parent
90eb863d4b
commit
b26424c6a2
|
@ -274,9 +274,18 @@ endif
|
||||||
ifeq ($(ARCH), loongarch64)
|
ifeq ($(ARCH), loongarch64)
|
||||||
SMALL_MATRIX_OPT = 1
|
SMALL_MATRIX_OPT = 1
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(ARCH), arm64)
|
||||||
|
GEMM_GEMV_FORWARD = 1
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(SMALL_MATRIX_OPT), 1)
|
ifeq ($(SMALL_MATRIX_OPT), 1)
|
||||||
CCOMMON_OPT += -DSMALL_MATRIX_OPT
|
CCOMMON_OPT += -DSMALL_MATRIX_OPT
|
||||||
endif
|
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.
|
# This operation is expensive, so execution should be once.
|
||||||
ifndef GOTOBLAS_MAKEFILE
|
ifndef GOTOBLAS_MAKEFILE
|
||||||
|
|
|
@ -391,6 +391,13 @@ endif ()
|
||||||
if (X86_64 OR ${CORE} STREQUAL POWER10)
|
if (X86_64 OR ${CORE} STREQUAL POWER10)
|
||||||
set(SMALL_MATRIX_OPT TRUE)
|
set(SMALL_MATRIX_OPT TRUE)
|
||||||
endif ()
|
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)
|
if (SMALL_MATRIX_OPT)
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMALL_MATRIX_OPT")
|
set(CCOMMON_OPT "${CCOMMON_OPT} -DSMALL_MATRIX_OPT")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
|
@ -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);
|
args.m, args.n, args.k, args.lda, args.ldb, args.ldc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(GEMM3M) && !defined(COMPLEX)
|
#if defined(GEMM_GEMV_FORWARD) && !defined(GEMM3M) && !defined(COMPLEX)
|
||||||
// Check if we can convert GEMM -> GEMV
|
// Check if we can convert GEMM -> GEMV
|
||||||
if (args.k != 0) {
|
if (args.k != 0) {
|
||||||
if (args.n == 1) {
|
if (args.n == 1) {
|
||||||
|
|
Loading…
Reference in New Issue