ARM64: Move parameters from parameter.c to param.h
authorAshwin Sekhar T K <ashwin.sekhar@cavium.com>
Thu, 18 Oct 2018 12:02:23 +0000 (05:02 -0700)
committerAshwin Sekhar T K <ashwin.sekhar@cavium.com>
Mon, 22 Oct 2018 08:45:51 +0000 (01:45 -0700)
Remove the runtime setting of P, Q, R parameters for
targets ARMV8, THUNDERX2T99. Instead set them as constants
in param.h at compile time.

driver/others/parameter.c
kernel/arm64/dgemm_kernel_8x4_thunderx2t99.S
param.h

index 0f2364d..8bf7da7 100644 (file)
@@ -730,35 +730,8 @@ void blas_set_parameter(void){
 
 #if defined(ARCH_ARM64)
 
-#if defined(VULCAN) || defined(THUNDERX2T99) || defined(ARMV8)
-unsigned long dgemm_prefetch_size_a;
-unsigned long dgemm_prefetch_size_b;
-unsigned long dgemm_prefetch_size_c;
-#endif
-
 void blas_set_parameter(void)
 {
-#if defined(VULCAN) || defined(THUNDERX2T99) || defined(ARMV8)
-  dgemm_p = 160;
-  dgemm_q = 128;
-  dgemm_r = 4096;
-
-  sgemm_p = 128;
-  sgemm_q = 352;
-  sgemm_r = 4096;
-
-  cgemm_p = 128;
-  cgemm_q = 224;
-  cgemm_r = 4096;
-
-  zgemm_p = 128;
-  zgemm_q = 112;
-  zgemm_r = 4096;
-
-  dgemm_prefetch_size_a = 3584;
-  dgemm_prefetch_size_b = 512;
-  dgemm_prefetch_size_c = 128;
-#endif
 }
 
 #endif
index 598db6e..d1551ff 100644 (file)
@@ -943,13 +943,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        prfm    PLDL1KEEP, [origPB]
        prfm    PLDL1KEEP, [origPA]
 
-
-       ldr     A_PRE_SIZE, =dgemm_prefetch_size_a
-       ldr     A_PRE_SIZE, [A_PRE_SIZE]
-       ldr     B_PRE_SIZE, =dgemm_prefetch_size_b
-       ldr     B_PRE_SIZE, [B_PRE_SIZE]
-       ldr     C_PRE_SIZE, =dgemm_prefetch_size_c
-       ldr     C_PRE_SIZE, [C_PRE_SIZE]
+       mov     A_PRE_SIZE, #3584
+       mov     B_PRE_SIZE, #512
+       mov     C_PRE_SIZE, #128
        add     A_PRE_SIZE_64, A_PRE_SIZE, #64
        add     B_PRE_SIZE_64, B_PRE_SIZE, #64
 
diff --git a/param.h b/param.h
index c7952e1..e4ec1b2 100644 (file)
--- a/param.h
+++ b/param.h
@@ -2641,20 +2641,20 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #define ZGEMM_DEFAULT_UNROLL_M  4
 #define ZGEMM_DEFAULT_UNROLL_N  4
 
-#define SGEMM_DEFAULT_P        sgemm_p
-#define DGEMM_DEFAULT_P        dgemm_p
-#define CGEMM_DEFAULT_P cgemm_p
-#define ZGEMM_DEFAULT_P zgemm_p
+#define SGEMM_DEFAULT_P        128
+#define DGEMM_DEFAULT_P        160
+#define CGEMM_DEFAULT_P 128
+#define ZGEMM_DEFAULT_P 128
 
-#define SGEMM_DEFAULT_Q sgemm_q
-#define DGEMM_DEFAULT_Q dgemm_q
-#define CGEMM_DEFAULT_Q cgemm_q
-#define ZGEMM_DEFAULT_Q zgemm_q
+#define SGEMM_DEFAULT_Q 352
+#define DGEMM_DEFAULT_Q 128
+#define CGEMM_DEFAULT_Q 224
+#define ZGEMM_DEFAULT_Q 112
 
-#define SGEMM_DEFAULT_R sgemm_r
-#define DGEMM_DEFAULT_R dgemm_r
-#define CGEMM_DEFAULT_R cgemm_r
-#define ZGEMM_DEFAULT_R zgemm_r
+#define SGEMM_DEFAULT_R 4096
+#define DGEMM_DEFAULT_R 4096
+#define CGEMM_DEFAULT_R 4096
+#define ZGEMM_DEFAULT_R 4096
 
 #define SYMV_P 16
 #endif
@@ -2720,20 +2720,20 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #define ZGEMM_DEFAULT_UNROLL_M  4
 #define ZGEMM_DEFAULT_UNROLL_N  4
 
-#define SGEMM_DEFAULT_P        sgemm_p
-#define DGEMM_DEFAULT_P        dgemm_p
-#define CGEMM_DEFAULT_P cgemm_p
-#define ZGEMM_DEFAULT_P zgemm_p
+#define SGEMM_DEFAULT_P        128
+#define DGEMM_DEFAULT_P        160
+#define CGEMM_DEFAULT_P 128
+#define ZGEMM_DEFAULT_P 128
 
-#define SGEMM_DEFAULT_Q sgemm_q
-#define DGEMM_DEFAULT_Q dgemm_q
-#define CGEMM_DEFAULT_Q cgemm_q
-#define ZGEMM_DEFAULT_Q zgemm_q
+#define SGEMM_DEFAULT_Q 352
+#define DGEMM_DEFAULT_Q 128
+#define CGEMM_DEFAULT_Q 224
+#define ZGEMM_DEFAULT_Q 112
 
-#define SGEMM_DEFAULT_R sgemm_r
-#define DGEMM_DEFAULT_R dgemm_r
-#define CGEMM_DEFAULT_R cgemm_r
-#define ZGEMM_DEFAULT_R zgemm_r
+#define SGEMM_DEFAULT_R 4096
+#define DGEMM_DEFAULT_R 4096
+#define CGEMM_DEFAULT_R 4096
+#define ZGEMM_DEFAULT_R 4096
 
 #define SYMV_P 16
 #endif