Skip to content

Commit 4839438

Browse files
Mousiustaoye9
andcommitted
Use correct constants for per-target BGEMM/SBGEMM
This fixes the build and tests on `NEOVERSEV1` target, which was failing with specific constants for `SBGEMM` Co-authored-by: Ye Tao <ye.tao@arm.com>
1 parent 73bf0b9 commit 4839438

File tree

2 files changed

+34
-10
lines changed

2 files changed

+34
-10
lines changed

driver/level3/level3.c

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,22 @@
170170
#define STOP_RPCC(COUNTER)
171171
#endif
172172

173+
#if defined(BUILD_BFLOAT16)
174+
#if defined(DYNAMIC_ARCH)
175+
#if defined(BGEMM)
176+
#define BFLOAT16_ALIGN_K gotoblas->bgemm_align_k
177+
#else
178+
#define BFLOAT16_ALIGN_K gotoblas->sbgemm_align_k
179+
#endif
180+
#else
181+
#if defined(BGEMM)
182+
#define BFLOAT16_ALIGN_K BGEMM_ALIGN_K
183+
#else
184+
#define BFLOAT16_ALIGN_K SBGEMM_ALIGN_K
185+
#endif
186+
#endif
187+
#endif
188+
173189
int CNAME(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n,
174190
XFLOAT *sa, XFLOAT *sb, BLASLONG dummy){
175191
BLASLONG k, lda, ldb, ldc;
@@ -307,11 +323,7 @@ int CNAME(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n,
307323

308324
BLASLONG pad_min_l = min_l;
309325
#if defined(BFLOAT16)
310-
#if defined(DYNAMIC_ARCH)
311-
pad_min_l = (min_l + gotoblas->sbgemm_align_k - 1) & ~(gotoblas->sbgemm_align_k-1);
312-
#else
313-
pad_min_l = (min_l + SBGEMM_ALIGN_K - 1) & ~(SBGEMM_ALIGN_K - 1);;
314-
#endif
326+
pad_min_l = (min_l + BFLOAT16_ALIGN_K - 1) & ~(BFLOAT16_ALIGN_K - 1);
315327
#endif
316328

317329
/* First, we have to move data A to L2 cache */

driver/level3/level3_thread.c

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,22 @@ typedef struct {
216216
#define STOP_RPCC(COUNTER)
217217
#endif
218218

219+
#if defined(BUILD_BFLOAT16)
220+
#if defined(DYNAMIC_ARCH)
221+
#if defined(BGEMM)
222+
#define BFLOAT16_ALIGN_K gotoblas->bgemm_align_k
223+
#else
224+
#define BFLOAT16_ALIGN_K gotoblas->sbgemm_align_k
225+
#endif
226+
#else
227+
#if defined(BGEMM)
228+
#define BFLOAT16_ALIGN_K BGEMM_ALIGN_K
229+
#else
230+
#define BFLOAT16_ALIGN_K SBGEMM_ALIGN_K
231+
#endif
232+
#endif
233+
#endif
234+
219235
static int inner_thread(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n, IFLOAT *sa, IFLOAT *sb, BLASLONG mypos){
220236

221237
IFLOAT *buffer[DIVIDE_RATE];
@@ -325,11 +341,7 @@ static int inner_thread(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n,
325341
BLASLONG pad_min_l = min_l;
326342

327343
#if defined(BFLOAT16)
328-
#if defined(DYNAMIC_ARCH)
329-
pad_min_l = (min_l + gotoblas->sbgemm_align_k - 1) & ~(gotoblas->sbgemm_align_k-1);
330-
#else
331-
pad_min_l = (min_l + SBGEMM_ALIGN_K - 1) & ~(SBGEMM_ALIGN_K - 1);;
332-
#endif
344+
pad_min_l = (min_l + BFLOAT16_ALIGN_K - 1) & ~(BFLOAT16_ALIGN_K - 1);
333345
#endif
334346

335347
/* Determine step size in m

0 commit comments

Comments
 (0)