[ hgemm/trivial ] Use aligned memory allocation in K1 transpose non_M8_case
authorskykongkong8 <ss.kong@samsung.com>
Fri, 28 Jun 2024 02:12:09 +0000 (11:12 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Fri, 28 Jun 2024 08:25:40 +0000 (17:25 +0900)
- Since K1 GEMM does not use data packing, I did not use aligned memory allocation.
- However, for SIMD situation, using such is more preferred.

**Self evaluation:**
1. Build test:     [X]Passed [ ]Failed [ ]Skipped
2. Run test:     [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: skykongkong8 <ss.kong@samsung.com>
nntrainer/tensor/hgemm/hgemm.cpp

index d8a7fe033ed0ef40b1e065128a0e54ab1587bbc1..e71136f3d10d8f1d72d75e6a2d68736631229cc1 100644 (file)
@@ -174,7 +174,7 @@ void hgemm_K1_transA(unsigned int M, unsigned int N, unsigned int K,
                      const __fp16 *A, unsigned int lda, const __fp16 *B,
                      unsigned int ldb, __fp16 *C, unsigned int ldc, float alpha,
                      float beta) {
-  __fp16 *A_T = new __fp16[M * K];
+  __fp16 *A_T = alignedMalloc(M * K);
 
   transpose_neon<__fp16>(K, M, A, M, A_T, K);
 
@@ -187,7 +187,7 @@ void hgemm_K1_transB(unsigned int M, unsigned int N, unsigned int K,
                      const __fp16 *A, unsigned int lda, const __fp16 *B,
                      unsigned int ldb, __fp16 *C, unsigned int ldc, float alpha,
                      float beta) {
-  __fp16 *B_T = new __fp16[K * N];
+  __fp16 *B_T = alignedMalloc(K * N);
 
   transpose_neon<__fp16>(N, K, B, K, B_T, N);
 
@@ -200,8 +200,8 @@ void hgemm_K1_transAB(unsigned int M, unsigned int N, unsigned int K,
                       const __fp16 *A, unsigned int lda, const __fp16 *B,
                       unsigned int ldb, __fp16 *C, unsigned int ldc,
                       float alpha, float beta) {
-  __fp16 *A_T = new __fp16[M * K];
-  __fp16 *B_T = new __fp16[K * N];
+  __fp16 *A_T = alignedMalloc(M * K);
+  __fp16 *B_T = alignedMalloc(K * N);
 
   transpose_neon<__fp16>(K, M, A, M, A_T, K);
   transpose_neon<__fp16>(N, K, B, K, B_T, N);