diff --git a/control/context.c b/control/context.c index 91b5434aa2035aac1cdc521aaaa4e86c17bfa084..c511b4bd9060ec42c7ed711a5a97bcf093b91ff5 100644 --- a/control/context.c +++ b/control/context.c @@ -83,7 +83,6 @@ MORSE_context_t *morse_context_create() morse->parallel_enabled = MORSE_FALSE; morse->profiling_enabled = MORSE_FALSE; morse->progress_enabled = MORSE_FALSE; - morse->gemm3m_enabled = MORSE_FALSE; morse->householder = MORSE_FLAT_HOUSEHOLDER; morse->translation = MORSE_OUTOFPLACE; @@ -170,7 +169,7 @@ int MORSE_Enable(MORSE_enum option) break; case MORSE_GEMM3M: #ifdef CBLAS_HAS_ZGEMM3M - morse->gemm3m_enabled = MORSE_TRUE; + set_coreblas_gemm3m_enabled(1); #else morse_error("MORSE_Enable", "cannot enable GEMM3M (not available in cblas)"); #endif @@ -241,7 +240,7 @@ int MORSE_Disable(MORSE_enum option) morse->progress_enabled = MORSE_FALSE; break; case MORSE_GEMM3M: - morse->gemm3m_enabled = MORSE_FALSE; + set_coreblas_gemm3m_enabled(0); break; case MORSE_PARALLEL_MODE: morse->parallel_enabled = MORSE_FALSE; diff --git a/coreblas/compute/core_zgemm.c b/coreblas/compute/core_zgemm.c index b5b7e4d4bc37ac0f8ac8d0203d3a91b2060f5182..1871af48962d98a21f6ab3d1ac7ea77f07190cf8 100644 --- a/coreblas/compute/core_zgemm.c +++ b/coreblas/compute/core_zgemm.c @@ -43,8 +43,7 @@ void CORE_zgemm(MORSE_enum transA, int transB, MORSE_Complex64_t beta, MORSE_Complex64_t *C, int LDC) { #ifdef CBLAS_HAS_ZGEMM3M - MORSE_context_t *morse = morse_context_self(); - if (morse->gemm3m_enabled) + if (get_coreblas_gemm3m_enabled()) cblas_zgemm3m( CblasColMajor, (CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB, diff --git a/coreblas/compute/global.c b/coreblas/compute/global.c index 69842845c6389718df8bc17fdb190595c9465a22..fb59b345eed9fe16570a165b08a07ef44522ab55 100644 --- a/coreblas/compute/global.c +++ b/coreblas/compute/global.c @@ -23,6 +23,15 @@ * **/ +static int coreblas_gemm3m_enabled=0; + +void set_coreblas_gemm3m_enabled(int v) { + coreblas_gemm3m_enabled=v; +} +int get_coreblas_gemm3m_enabled(void) { + return coreblas_gemm3m_enabled; +} + /******************************************************************************* * LAPACK Constants **/ diff --git a/coreblas/include/coreblas.h b/coreblas/include/coreblas.h index a241074a7dbed4ddfe6d4ab07398ebfdf26904e1..b8fcc1c7fdc2e817fc1f337ec09250c5c227f276 100644 --- a/coreblas/include/coreblas.h +++ b/coreblas/include/coreblas.h @@ -94,6 +94,9 @@ extern "C" { extern char *morse_lapack_constants[]; #define morse_lapack_const(morse_const) morse_lapack_constants[morse_const][0] +void set_coreblas_gemm3m_enabled(int v) ; +int get_coreblas_gemm3m_enabled(void) ; + #ifdef __cplusplus } #endif diff --git a/include/morse_struct.h b/include/morse_struct.h index 397d96e1e332171a8e2eef5eb7eff4073b43ca52..2958ce3d021bc68e2b5a91195b1b8dd7580a43b0 100644 --- a/include/morse_struct.h +++ b/include/morse_struct.h @@ -132,7 +132,6 @@ typedef struct morse_context_s { MORSE_bool parallel_enabled; MORSE_bool profiling_enabled; MORSE_bool progress_enabled; - MORSE_bool gemm3m_enabled; MORSE_enum householder; // "domino" (flat) or tree-based (reduction) Householder MORSE_enum translation; // In place or Out of place layout conversion