Skip to content

Commit ee44082

Browse files
authored
fix DYNAMIC_ARCH builds that use only a subset of precisions
1 parent fa5ff7d commit ee44082

1 file changed

Lines changed: 59 additions & 14 deletions

File tree

common_param.h

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ BLASLONG (*isbmin_k) (BLASLONG, float *, BLASLONG);
161161
#endif
162162
#endif
163163

164-
#if defined(BUILD_SINGLE) || defined(BUILD_COMPLEX)
164+
#if defined(BUILD_SINGLE) || defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX) || defined(BUILD_COMPLEX16)
165165
int sgemm_p, sgemm_q, sgemm_r;
166166
int sgemm_unroll_m, sgemm_unroll_n, sgemm_unroll_mn;
167167
#endif
@@ -173,8 +173,12 @@ BLASLONG (*isbmin_k) (BLASLONG, float *, BLASLONG);
173173
float (*samin_k) (BLASLONG, float *, BLASLONG);
174174
float (*smax_k) (BLASLONG, float *, BLASLONG);
175175
float (*smin_k) (BLASLONG, float *, BLASLONG);
176+
#endif
176177

178+
#if defined(BUILD_SINGLE) || defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX)
177179
BLASLONG (*isamax_k)(BLASLONG, float *, BLASLONG);
180+
#endif
181+
#if defined(BUILD_SINGLE) || defined(BUILD_COMPLEX)
178182
BLASLONG (*isamin_k)(BLASLONG, float *, BLASLONG);
179183
BLASLONG (*ismax_k) (BLASLONG, float *, BLASLONG);
180184
BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
@@ -184,28 +188,34 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
184188
#ifdef BUILD_SINGLE
185189
float (*ssum_k) (BLASLONG, float *, BLASLONG);
186190
#endif
187-
#if defined(BUILD_SINGLE) || defined(BUILD_COMPLEX)
191+
#if defined(BUILD_SINGLE) || defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX)
188192
int (*scopy_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
189193
float (*sdot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
190194
//double (*dsdot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
191195

192196
int (*srot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG, float, float);
193-
197+
#endif
198+
#if defined(BUILD_SINGLE) || defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX)
194199
int (*saxpy_k) (BLASLONG, BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
200+
#endif
201+
#if defined(BUILD_SINGLE) || defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX) || defined(BUILD_COMPLEX16)
195202
int (*sscal_k) (BLASLONG, BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
203+
#endif
204+
#if defined(BUILD_SINGLE) || defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX)
196205
int (*sswap_k) (BLASLONG, BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
197206

198207
int (*sgemv_n) (BLASLONG, BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
199208
int (*sgemv_t) (BLASLONG, BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
200209
#endif
201-
#ifdef BUILD_SINGLE
210+
#if defined(BUILD_SINGLE)
202211
int (*sger_k) (BLASLONG, BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
203-
212+
#endif
213+
#if defined(BUILD_SINGLE)
204214
int (*ssymv_L) (BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
205215
int (*ssymv_U) (BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
206216
#endif
207217

208-
#if defined(BUILD_SINGLE) || defined(BUILD_COMPLEX)
218+
#if defined(BUILD_SINGLE) || defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX)
209219
#ifdef ARCH_X86_64
210220
void (*sgemm_direct) (BLASLONG, BLASLONG, BLASLONG, float *, BLASLONG , float *, BLASLONG , float * , BLASLONG);
211221
int (*sgemm_direct_performant) (BLASLONG M, BLASLONG N, BLASLONG K);
@@ -220,7 +230,7 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
220230
int (*sgemm_oncopy )(BLASLONG, BLASLONG, float *, BLASLONG, float *);
221231
int (*sgemm_otcopy )(BLASLONG, BLASLONG, float *, BLASLONG, float *);
222232
#endif
223-
#ifdef BUILD_SINGLE
233+
#if defined(BUILD_SINGLE) || defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX)
224234
#ifdef SMALL_MATRIX_OPT
225235
int (*sgemm_small_matrix_permit)(int transa, int transb, BLASLONG m, BLASLONG n, BLASLONG k, float alpha, float beta);
226236

@@ -256,7 +266,8 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
256266
int (*strsm_olnncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
257267
int (*strsm_oltucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
258268
int (*strsm_oltncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
259-
269+
#endif
270+
#if defined (BUILD_SINGLE)
260271
int (*strmm_kernel_RN)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
261272
int (*strmm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
262273
int (*strmm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
@@ -341,7 +352,7 @@ BLASLONG (*idmin_k) (BLASLONG, double *, BLASLONG);
341352
int (*dgemm_oncopy )(BLASLONG, BLASLONG, double *, BLASLONG, double *);
342353
int (*dgemm_otcopy )(BLASLONG, BLASLONG, double *, BLASLONG, double *);
343354
#endif
344-
#ifdef BUILD_DOUBLE
355+
#if defined(BUILD_DOUBLE) || defined(BUILD_COMPLEX16)
345356
#ifdef SMALL_MATRIX_OPT
346357
int (*dgemm_small_matrix_permit)(int transa, int transb, BLASLONG m, BLASLONG n, BLASLONG k, double alpha, double beta);
347358

@@ -355,6 +366,8 @@ BLASLONG (*idmin_k) (BLASLONG, double *, BLASLONG);
355366
int (*dgemm_small_kernel_b0_tn )(BLASLONG m, BLASLONG n, BLASLONG k, double * A, BLASLONG lda, double alpha, double * B, BLASLONG ldb, double * C, BLASLONG ldc);
356367
int (*dgemm_small_kernel_b0_tt )(BLASLONG m, BLASLONG n, BLASLONG k, double * A, BLASLONG lda, double alpha, double * B, BLASLONG ldb, double * C, BLASLONG ldc);
357368
#endif
369+
#endif
370+
#if defined(BUILD_DOUBLE)
358371
int (*dtrsm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
359372
int (*dtrsm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
360373
int (*dtrsm_kernel_RN)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
@@ -501,23 +514,33 @@ BLASLONG (*iqmin_k) (BLASLONG, xdouble *, BLASLONG);
501514

502515
#endif
503516

504-
#ifdef BUILD_COMPLEX
517+
#if defined (BUILD_COMPLEX) || defined (BUILD_COMPLEX16)
505518
int cgemm_p, cgemm_q, cgemm_r;
506519
int cgemm_unroll_m, cgemm_unroll_n, cgemm_unroll_mn;
507-
520+
#endif
521+
#ifdef BUILD_COMPLEX
508522
float (*camax_k) (BLASLONG, float *, BLASLONG);
509523
float (*camin_k) (BLASLONG, float *, BLASLONG);
524+
#endif
525+
#if defined(BUILD_COMPLEX) || defined(BUILD_COMPLEX16)
510526
BLASLONG (*icamax_k)(BLASLONG, float *, BLASLONG);
527+
#endif
528+
#ifdef BUILD_COMPLEX
511529
BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
512530

513531
float (*cnrm2_k) (BLASLONG, float *, BLASLONG);
514532
float (*casum_k) (BLASLONG, float *, BLASLONG);
515533
float (*csum_k) (BLASLONG, float *, BLASLONG);
534+
#endif
535+
#if defined(BUILD_COMPLEX) || defined(BUILD_COMPLEX16)
516536
int (*ccopy_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
517537
openblas_complex_float (*cdotu_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
518538
openblas_complex_float (*cdotc_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
539+
#endif
540+
#ifdef BUILD_COMPLEX
519541
int (*csrot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG, float, float);
520-
542+
#endif
543+
#if defined(BUILD_COMPLEX) || defined(BUILD_COMPLEX16)
521544
int (*caxpy_k) (BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
522545
int (*caxpyc_k)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
523546
int (*cscal_k) (BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
@@ -531,6 +554,8 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
531554
int (*cgemv_u) (BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
532555
int (*cgemv_s) (BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
533556
int (*cgemv_d) (BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
557+
#endif
558+
#ifdef BUILD_COMPLEX
534559
int (*cgeru_k) (BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
535560
int (*cgerc_k) (BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
536561
int (*cgerv_k) (BLASLONG, BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
@@ -543,6 +568,8 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
543568
int (*chemv_M) (BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
544569
int (*chemv_V) (BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *);
545570

571+
#endif
572+
#if defined BUILD_COMPLEX || defined BUILD_COMPLEX16
546573
int (*cgemm_kernel_n )(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
547574
int (*cgemm_kernel_l )(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
548575
int (*cgemm_kernel_r )(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG);
@@ -623,7 +650,8 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
623650
int (*ctrsm_olnncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
624651
int (*ctrsm_oltucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
625652
int (*ctrsm_oltncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
626-
653+
#endif
654+
#if defined(BUILD_COMPLEX)
627655
int (*ctrmm_kernel_RN)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
628656
int (*ctrmm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
629657
int (*ctrmm_kernel_RR)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
@@ -706,7 +734,8 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
706734
int (*chemm3m_olcopyr)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
707735
int (*chemm3m_oucopyi)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
708736
int (*chemm3m_olcopyi)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
709-
737+
#endif
738+
#if defined(BUILD_COMPLEX) || defined(BUILD_COMPLEX16)
710739
int (*cneg_tcopy) (BLASLONG, BLASLONG, float *, BLASLONG, float *);
711740
int (*claswp_ncopy) (BLASLONG, BLASLONG, BLASLONG, float *, BLASLONG, blasint *, float *);
712741
#endif
@@ -1232,6 +1261,14 @@ extern gotoblas_t *gotoblas;
12321261
#define DGEMM_UNROLL_M gotoblas -> dgemm_unroll_m
12331262
#define DGEMM_UNROLL_N gotoblas -> dgemm_unroll_n
12341263
#define DGEMM_UNROLL_MN gotoblas -> dgemm_unroll_mn
1264+
#ifndef BUILD_SINGLE
1265+
#define SGEMM_P gotoblas -> sgemm_p
1266+
#define SGEMM_Q gotoblas -> sgemm_q
1267+
#define SGEMM_R 1024
1268+
#define SGEMM_UNROLL_M gotoblas -> sgemm_unroll_m
1269+
#define SGEMM_UNROLL_N gotoblas -> sgemm_unroll_n
1270+
#define SGEMM_UNROLL_MN gotoblas -> sgemm_unroll_mn
1271+
#endif
12351272
#endif
12361273

12371274
#define QGEMM_P gotoblas -> qgemm_p
@@ -1273,6 +1310,14 @@ extern gotoblas_t *gotoblas;
12731310
#define DGEMM_UNROLL_N gotoblas -> dgemm_unroll_n
12741311
#define DGEMM_UNROLL_MN gotoblas -> dgemm_unroll_mn
12751312
#endif
1313+
#ifndef BUILD_COMPLEX
1314+
#define CGEMM_P gotoblas -> cgemm_p
1315+
#define CGEMM_Q gotoblas -> cgemm_q
1316+
#define CGEMM_R gotoblas -> cgemm_r
1317+
#define CGEMM_UNROLL_M gotoblas -> cgemm_unroll_m
1318+
#define CGEMM_UNROLL_N gotoblas -> cgemm_unroll_n
1319+
#define CGEMM_UNROLL_MN gotoblas -> cgemm_unroll_mn
1320+
#endif
12761321
#endif
12771322

12781323
#define XGEMM_P gotoblas -> xgemm_p

0 commit comments

Comments
 (0)