THUNDERX2T99: Add Optimized CGEMM Implementation
This commit is contained in:
parent
1de6fa0f50
commit
2757b49767
|
@ -747,6 +747,10 @@ void blas_set_parameter(void)
|
||||||
sgemm_q = 352;
|
sgemm_q = 352;
|
||||||
sgemm_r = 4096;
|
sgemm_r = 4096;
|
||||||
|
|
||||||
|
cgemm_p = 128;
|
||||||
|
cgemm_q = 224;
|
||||||
|
cgemm_r = 4096;
|
||||||
|
|
||||||
dgemm_prefetch_size_a = 3584;
|
dgemm_prefetch_size_a = 3584;
|
||||||
dgemm_prefetch_size_b = 512;
|
dgemm_prefetch_size_b = 512;
|
||||||
dgemm_prefetch_size_c = 128;
|
dgemm_prefetch_size_c = 128;
|
||||||
|
|
|
@ -17,13 +17,12 @@ endif
|
||||||
|
|
||||||
ifeq ($(DGEMM_UNROLL_M)x$(DGEMM_UNROLL_N), 8x4)
|
ifeq ($(DGEMM_UNROLL_M)x$(DGEMM_UNROLL_N), 8x4)
|
||||||
DGEMMKERNEL = dgemm_kernel_8x4_thunderx2t99.S
|
DGEMMKERNEL = dgemm_kernel_8x4_thunderx2t99.S
|
||||||
else
|
|
||||||
DGEMMKERNEL = dgemm_kernel_$(DGEMM_UNROLL_M)x$(DGEMM_UNROLL_N).S
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(SGEMM_UNROLL_M)x$(SGEMM_UNROLL_N), 16x4)
|
ifeq ($(SGEMM_UNROLL_M)x$(SGEMM_UNROLL_N), 16x4)
|
||||||
SGEMMKERNEL = sgemm_kernel_16x4_thunderx2t99.S
|
SGEMMKERNEL = sgemm_kernel_16x4_thunderx2t99.S
|
||||||
else
|
|
||||||
SGEMMKERNEL = sgemm_kernel_$(SGEMM_UNROLL_M)x$(SGEMM_UNROLL_N).S
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CGEMM_UNROLL_M)x$(CGEMM_UNROLL_N), 8x4)
|
||||||
|
CGEMMKERNEL = cgemm_kernel_8x4_thunderx2t99.S
|
||||||
|
endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
46
param.h
46
param.h
|
@ -2303,44 +2303,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define ZGEMM_DEFAULT_R 4096
|
#define ZGEMM_DEFAULT_R 4096
|
||||||
|
|
||||||
|
|
||||||
#define SYMV_P 16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(VULCAN)
|
|
||||||
#define SNUMOPT 2
|
|
||||||
#define DNUMOPT 2
|
|
||||||
|
|
||||||
#define GEMM_DEFAULT_OFFSET_A 0
|
|
||||||
#define GEMM_DEFAULT_OFFSET_B 0
|
|
||||||
#define GEMM_DEFAULT_ALIGN 0x03fffUL
|
|
||||||
|
|
||||||
#define SGEMM_DEFAULT_UNROLL_M 16
|
|
||||||
#define SGEMM_DEFAULT_UNROLL_N 4
|
|
||||||
|
|
||||||
#define DGEMM_DEFAULT_UNROLL_M 8
|
|
||||||
#define DGEMM_DEFAULT_UNROLL_N 4
|
|
||||||
|
|
||||||
#define CGEMM_DEFAULT_UNROLL_M 8
|
|
||||||
#define CGEMM_DEFAULT_UNROLL_N 4
|
|
||||||
|
|
||||||
#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 256
|
|
||||||
#define ZGEMM_DEFAULT_P 128
|
|
||||||
|
|
||||||
#define SGEMM_DEFAULT_Q sgemm_q
|
|
||||||
#define DGEMM_DEFAULT_Q dgemm_q
|
|
||||||
#define CGEMM_DEFAULT_Q 512
|
|
||||||
#define ZGEMM_DEFAULT_Q 512
|
|
||||||
|
|
||||||
#define SGEMM_DEFAULT_R sgemm_r
|
|
||||||
#define DGEMM_DEFAULT_R dgemm_r
|
|
||||||
#define CGEMM_DEFAULT_R 4096
|
|
||||||
#define ZGEMM_DEFAULT_R 2048
|
|
||||||
|
|
||||||
#define SYMV_P 16
|
#define SYMV_P 16
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2462,7 +2424,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#define SYMV_P 16
|
#define SYMV_P 16
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(THUNDERX2T99)
|
#if defined(THUNDERX2T99) || defined(VULCAN)
|
||||||
#define SNUMOPT 2
|
#define SNUMOPT 2
|
||||||
#define DNUMOPT 2
|
#define DNUMOPT 2
|
||||||
|
|
||||||
|
@ -2484,17 +2446,17 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#define SGEMM_DEFAULT_P sgemm_p
|
#define SGEMM_DEFAULT_P sgemm_p
|
||||||
#define DGEMM_DEFAULT_P dgemm_p
|
#define DGEMM_DEFAULT_P dgemm_p
|
||||||
#define CGEMM_DEFAULT_P 256
|
#define CGEMM_DEFAULT_P cgemm_p
|
||||||
#define ZGEMM_DEFAULT_P 128
|
#define ZGEMM_DEFAULT_P 128
|
||||||
|
|
||||||
#define SGEMM_DEFAULT_Q sgemm_q
|
#define SGEMM_DEFAULT_Q sgemm_q
|
||||||
#define DGEMM_DEFAULT_Q dgemm_q
|
#define DGEMM_DEFAULT_Q dgemm_q
|
||||||
#define CGEMM_DEFAULT_Q 512
|
#define CGEMM_DEFAULT_Q cgemm_q
|
||||||
#define ZGEMM_DEFAULT_Q 512
|
#define ZGEMM_DEFAULT_Q 512
|
||||||
|
|
||||||
#define SGEMM_DEFAULT_R sgemm_r
|
#define SGEMM_DEFAULT_R sgemm_r
|
||||||
#define DGEMM_DEFAULT_R dgemm_r
|
#define DGEMM_DEFAULT_R dgemm_r
|
||||||
#define CGEMM_DEFAULT_R 4096
|
#define CGEMM_DEFAULT_R cgemm_r
|
||||||
#define ZGEMM_DEFAULT_R 2048
|
#define ZGEMM_DEFAULT_R 2048
|
||||||
|
|
||||||
#define SYMV_P 16
|
#define SYMV_P 16
|
||||||
|
|
Loading…
Reference in New Issue