35 void openblas_set_num_threads(
int num_threads);
36 int openblas_get_num_threads(
void);
39#define GEMA_BLAS_SET_NUM_THREADS(n) openblas_set_num_threads(n)
40#define GEMA_BLAS_GET_NUM_THREADS() openblas_get_num_threads()
42#elif defined GEMA_MKL_BLAS
46 void MKL_Set_Num_Threads(
int num_threads);
47 int MKL_Get_Max_Threads(
void);
51#define GEMA_BLAS_SET_NUM_THREADS(n) MKL_Set_Num_Threads(n)
52#define GEMA_BLAS_GET_NUM_THREADS() MKL_Get_Max_Threads()
54#elif defined GEMA_AOCL_BLAS
58 void bli_thread_set_num_threads(
int num_threads);
59 int bli_thread_get_num_threads(
void);
62#define GEMA_BLAS_SET_NUM_THREADS(n) bli_thread_set_num_threads(n)
63#define GEMA_BLAS_GET_NUM_THREADS() bli_thread_get_num_threads()
67#define GEMA_BLAS_SET_NUM_THREADS(n) ((void)0)
68#define GEMA_BLAS_GET_NUM_THREADS() (1)
73#if defined GEMA_MKL_BLAS
74constexpr const char* GmBlasLibName =
"Intel Mkl";
75#elif defined GEMA_OPEN_BLAS
76constexpr const char* GmBlasLibName =
"OpenBlas";
77#elif defined GEMA_AOCL_BLAS
78constexpr const char* GmBlasLibName =
"AMD AOCL";
79#elif defined GEMA_STD_BLAS
80constexpr const char* GmBlasLibName =
"Generic";
82constexpr const char* GmBlasLibName =
"Unknown";
86#ifdef ARMA_DONT_USE_BLAS
87constexpr const char* GmArmaBlasConfigFlag =
"no ";
89constexpr const char* GmArmaBlasConfigFlag =
"";
92#ifdef ARMA_DONT_USE_LAPACK
93constexpr const char* GmArmaLapackConfigFlag =
"no ";
95constexpr const char* GmArmaLapackConfigFlag =
"";
102 assert(maxThreads > 0);
103 GEMA_BLAS_SET_NUM_THREADS(maxThreads);
115 _oldNumThreads = GEMA_BLAS_GET_NUM_THREADS();
116 GEMA_BLAS_SET_NUM_THREADS(nthreads);
124 if(_oldNumThreads != -1) GEMA_BLAS_SET_NUM_THREADS(_oldNumThreads);
A RAII class used to temporarily adjust the number of OpenBlas threads in effect. If the number of th...
Definition gmBlas.h:109
void GmBlasInit(int maxThreads)
Initializes Blas to use the given maximum number of threads.
Definition gmBlas.h:100