From 832a2727840301b4ffd3cd38c7b9168a3fc79ed1 Mon Sep 17 00:00:00 2001 From: Gian-Carlo Pascutto Date: Tue, 18 Apr 2017 12:40:25 +0200 Subject: [PATCH] Revert Zen param.h to Haswell values (instead of Excavator). --- param.h | 135 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 81 insertions(+), 54 deletions(-) diff --git a/param.h b/param.h index 78cb86c438..2d5bccee78 100644 --- a/param.h +++ b/param.h @@ -596,70 +596,107 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif #ifdef ZEN -#define SNUMOPT 8 -#define DNUMOPT 4 +#define SNUMOPT 16 +#define DNUMOPT 8 -#define GEMM_DEFAULT_OFFSET_A 64 -#define GEMM_DEFAULT_OFFSET_B 832 -#define GEMM_DEFAULT_ALIGN 0x0fffUL +#define GEMM_DEFAULT_OFFSET_A 0 +#define GEMM_DEFAULT_OFFSET_B 0 +#define GEMM_DEFAULT_ALIGN 0x03fffUL -#define QGEMM_DEFAULT_UNROLL_N 2 -#define CGEMM_DEFAULT_UNROLL_N 2 -#define ZGEMM_DEFAULT_UNROLL_N 2 -#define XGEMM_DEFAULT_UNROLL_N 1 +#define SYMV_P 8 + +#define SWITCH_RATIO 4 #ifdef ARCH_X86 -#define SGEMM_DEFAULT_UNROLL_N 4 -#define DGEMM_DEFAULT_UNROLL_N 4 + #define SGEMM_DEFAULT_UNROLL_M 4 #define DGEMM_DEFAULT_UNROLL_M 2 #define QGEMM_DEFAULT_UNROLL_M 2 #define CGEMM_DEFAULT_UNROLL_M 2 #define ZGEMM_DEFAULT_UNROLL_M 1 #define XGEMM_DEFAULT_UNROLL_M 1 + +#define SGEMM_DEFAULT_UNROLL_N 4 +#define DGEMM_DEFAULT_UNROLL_N 4 +#define QGEMM_DEFAULT_UNROLL_N 2 +#define CGEMM_DEFAULT_UNROLL_N 2 +#define ZGEMM_DEFAULT_UNROLL_N 2 +#define XGEMM_DEFAULT_UNROLL_N 1 + #else -#define SGEMM_DEFAULT_UNROLL_N 2 -#define DGEMM_DEFAULT_UNROLL_N 2 + #define SGEMM_DEFAULT_UNROLL_M 16 -#define DGEMM_DEFAULT_UNROLL_M 8 +#define DGEMM_DEFAULT_UNROLL_M 4 #define QGEMM_DEFAULT_UNROLL_M 2 -#define CGEMM_DEFAULT_UNROLL_M 4 +#define CGEMM_DEFAULT_UNROLL_M 8 #define ZGEMM_DEFAULT_UNROLL_M 4 #define XGEMM_DEFAULT_UNROLL_M 1 -#define CGEMM3M_DEFAULT_UNROLL_N 4 -#define CGEMM3M_DEFAULT_UNROLL_M 8 -#define ZGEMM3M_DEFAULT_UNROLL_N 4 -#define ZGEMM3M_DEFAULT_UNROLL_M 4 -#define GEMV_UNROLL 8 + +#define SGEMM_DEFAULT_UNROLL_N 4 +#define DGEMM_DEFAULT_UNROLL_N 8 +#define QGEMM_DEFAULT_UNROLL_N 2 +#define CGEMM_DEFAULT_UNROLL_N 2 +#define ZGEMM_DEFAULT_UNROLL_N 2 +#define XGEMM_DEFAULT_UNROLL_N 1 + +#define SGEMM_DEFAULT_UNROLL_MN 32 +#define DGEMM_DEFAULT_UNROLL_MN 32 #endif -#if defined(ARCH_X86_64) -#define SGEMM_DEFAULT_P 768 -#define DGEMM_DEFAULT_P 576 -#define ZGEMM_DEFAULT_P 288 -#define CGEMM_DEFAULT_P 576 +#ifdef ARCH_X86 + +#define SGEMM_DEFAULT_P 512 +#define SGEMM_DEFAULT_R sgemm_r +#define DGEMM_DEFAULT_P 512 +#define DGEMM_DEFAULT_R dgemm_r +#define QGEMM_DEFAULT_P 504 +#define QGEMM_DEFAULT_R qgemm_r +#define CGEMM_DEFAULT_P 128 +#define CGEMM_DEFAULT_R 1024 +#define ZGEMM_DEFAULT_P 512 +#define ZGEMM_DEFAULT_R zgemm_r +#define XGEMM_DEFAULT_P 252 +#define XGEMM_DEFAULT_R xgemm_r +#define SGEMM_DEFAULT_Q 256 +#define DGEMM_DEFAULT_Q 256 +#define QGEMM_DEFAULT_Q 128 +#define CGEMM_DEFAULT_Q 256 +#define ZGEMM_DEFAULT_Q 192 +#define XGEMM_DEFAULT_Q 128 + #else -#define SGEMM_DEFAULT_P 448 -#define DGEMM_DEFAULT_P 480 -#define ZGEMM_DEFAULT_P 112 -#define CGEMM_DEFAULT_P 224 -#endif -#define QGEMM_DEFAULT_P 112 -#define XGEMM_DEFAULT_P 56 -#if defined(ARCH_X86_64) -#define SGEMM_DEFAULT_Q 192 -#define DGEMM_DEFAULT_Q 160 -#define ZGEMM_DEFAULT_Q 160 -#define CGEMM_DEFAULT_Q 160 +#define SGEMM_DEFAULT_P 768 +#define DGEMM_DEFAULT_P 512 +#define CGEMM_DEFAULT_P 384 +#define ZGEMM_DEFAULT_P 256 + +#ifdef WINDOWS_ABI +#define SGEMM_DEFAULT_Q 320 +#define DGEMM_DEFAULT_Q 128 #else -#define SGEMM_DEFAULT_Q 224 -#define DGEMM_DEFAULT_Q 224 -#define ZGEMM_DEFAULT_Q 224 -#define CGEMM_DEFAULT_Q 224 +#define SGEMM_DEFAULT_Q 384 +#define DGEMM_DEFAULT_Q 256 #endif -#define QGEMM_DEFAULT_Q 224 -#define XGEMM_DEFAULT_Q 224 +#define CGEMM_DEFAULT_Q 192 +#define ZGEMM_DEFAULT_Q 128 + +#define SGEMM_DEFAULT_R sgemm_r +#define DGEMM_DEFAULT_R 13824 +#define CGEMM_DEFAULT_R cgemm_r +#define ZGEMM_DEFAULT_R zgemm_r + +#define QGEMM_DEFAULT_Q 128 +#define QGEMM_DEFAULT_P 504 +#define QGEMM_DEFAULT_R qgemm_r +#define XGEMM_DEFAULT_P 252 +#define XGEMM_DEFAULT_R xgemm_r +#define XGEMM_DEFAULT_Q 128 + +#define CGEMM3M_DEFAULT_UNROLL_N 8 +#define CGEMM3M_DEFAULT_UNROLL_M 4 +#define ZGEMM3M_DEFAULT_UNROLL_N 8 +#define ZGEMM3M_DEFAULT_UNROLL_M 2 #define CGEMM3M_DEFAULT_P 448 #define ZGEMM3M_DEFAULT_P 224 @@ -671,17 +708,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define ZGEMM3M_DEFAULT_R 12288 #define XGEMM3M_DEFAULT_R 12288 -#define SGEMM_DEFAULT_R 12288 -#define QGEMM_DEFAULT_R qgemm_r -#define DGEMM_DEFAULT_R 12288 -#define CGEMM_DEFAULT_R cgemm_r -#define ZGEMM_DEFAULT_R zgemm_r -#define XGEMM_DEFAULT_R xgemm_r - -#define SYMV_P 16 -#define HAVE_EXCLUSIVE_CACHE - -#define GEMM_THREAD gemm_thread_mn +#endif #endif