ARM64: Move parameters from parameter.c to param.h

Remove the runtime setting of P, Q, R parameters for
targets ARMV8, THUNDERX2T99. Instead set them as constants
in param.h at compile time.
This commit is contained in:
Ashwin Sekhar T K 2018-10-18 05:02:23 -07:00
parent 351a0c777c
commit d50abc8903
3 changed files with 27 additions and 58 deletions

View File

@ -730,35 +730,8 @@ void blas_set_parameter(void){
#if defined(ARCH_ARM64) #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) 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 #endif

View File

@ -943,13 +943,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
prfm PLDL1KEEP, [origPB] prfm PLDL1KEEP, [origPB]
prfm PLDL1KEEP, [origPA] prfm PLDL1KEEP, [origPA]
mov A_PRE_SIZE, #3584
ldr A_PRE_SIZE, =dgemm_prefetch_size_a mov B_PRE_SIZE, #512
ldr A_PRE_SIZE, [A_PRE_SIZE] mov C_PRE_SIZE, #128
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]
add A_PRE_SIZE_64, A_PRE_SIZE, #64 add A_PRE_SIZE_64, A_PRE_SIZE, #64
add B_PRE_SIZE_64, B_PRE_SIZE, #64 add B_PRE_SIZE_64, B_PRE_SIZE, #64

48
param.h
View File

@ -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_M 4
#define ZGEMM_DEFAULT_UNROLL_N 4 #define ZGEMM_DEFAULT_UNROLL_N 4
#define SGEMM_DEFAULT_P sgemm_p #define SGEMM_DEFAULT_P 128
#define DGEMM_DEFAULT_P dgemm_p #define DGEMM_DEFAULT_P 160
#define CGEMM_DEFAULT_P cgemm_p #define CGEMM_DEFAULT_P 128
#define ZGEMM_DEFAULT_P zgemm_p #define ZGEMM_DEFAULT_P 128
#define SGEMM_DEFAULT_Q sgemm_q #define SGEMM_DEFAULT_Q 352
#define DGEMM_DEFAULT_Q dgemm_q #define DGEMM_DEFAULT_Q 128
#define CGEMM_DEFAULT_Q cgemm_q #define CGEMM_DEFAULT_Q 224
#define ZGEMM_DEFAULT_Q zgemm_q #define ZGEMM_DEFAULT_Q 112
#define SGEMM_DEFAULT_R sgemm_r #define SGEMM_DEFAULT_R 4096
#define DGEMM_DEFAULT_R dgemm_r #define DGEMM_DEFAULT_R 4096
#define CGEMM_DEFAULT_R cgemm_r #define CGEMM_DEFAULT_R 4096
#define ZGEMM_DEFAULT_R zgemm_r #define ZGEMM_DEFAULT_R 4096
#define SYMV_P 16 #define SYMV_P 16
#endif #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_M 4
#define ZGEMM_DEFAULT_UNROLL_N 4 #define ZGEMM_DEFAULT_UNROLL_N 4
#define SGEMM_DEFAULT_P sgemm_p #define SGEMM_DEFAULT_P 128
#define DGEMM_DEFAULT_P dgemm_p #define DGEMM_DEFAULT_P 160
#define CGEMM_DEFAULT_P cgemm_p #define CGEMM_DEFAULT_P 128
#define ZGEMM_DEFAULT_P zgemm_p #define ZGEMM_DEFAULT_P 128
#define SGEMM_DEFAULT_Q sgemm_q #define SGEMM_DEFAULT_Q 352
#define DGEMM_DEFAULT_Q dgemm_q #define DGEMM_DEFAULT_Q 128
#define CGEMM_DEFAULT_Q cgemm_q #define CGEMM_DEFAULT_Q 224
#define ZGEMM_DEFAULT_Q zgemm_q #define ZGEMM_DEFAULT_Q 112
#define SGEMM_DEFAULT_R sgemm_r #define SGEMM_DEFAULT_R 4096
#define DGEMM_DEFAULT_R dgemm_r #define DGEMM_DEFAULT_R 4096
#define CGEMM_DEFAULT_R cgemm_r #define CGEMM_DEFAULT_R 4096
#define ZGEMM_DEFAULT_R zgemm_r #define ZGEMM_DEFAULT_R 4096
#define SYMV_P 16 #define SYMV_P 16
#endif #endif