Revert Zen param.h to Haswell values (instead of Excavator).
authorGian-Carlo Pascutto <gcp@mozilla.com>
Tue, 18 Apr 2017 10:40:25 +0000 (12:40 +0200)
committerGian-Carlo Pascutto <gcp@mozilla.com>
Tue, 18 Apr 2017 10:40:25 +0000 (12:40 +0200)
param.h

diff --git a/param.h b/param.h
index 78cb86c..2d5bcce 100644 (file)
--- 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