From aa2405f8b23d0f8d2ec04790882f2176ef2e8fd8 Mon Sep 17 00:00:00 2001 From: Tyler Smith Date: Tue, 18 Mar 2014 15:23:09 -0500 Subject: [PATCH] Fixing function pointer issues with thread decorator --- frame/3/gemm/bli_gemm_front.c | 2 +- frame/base/bli_threading.c | 14 ++++++++------ frame/base/bli_threading.h | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/frame/3/gemm/bli_gemm_front.c b/frame/3/gemm/bli_gemm_front.c index a17a600b5..2211625a5 100644 --- a/frame/3/gemm/bli_gemm_front.c +++ b/frame/3/gemm/bli_gemm_front.c @@ -79,7 +79,7 @@ void bli_gemm_front( obj_t* alpha, // Invoke the internal back-end. bli_level3_thread_decorator( n_threads, - (level3_int_t*) bli_gemm_int, + (level3_int_t) bli_gemm_int, alpha, &a_local, &b_local, diff --git a/frame/base/bli_threading.c b/frame/base/bli_threading.c index 53405bd96..b1814a023 100644 --- a/frame/base/bli_threading.c +++ b/frame/base/bli_threading.c @@ -233,7 +233,7 @@ void bli_get_range_tri_weighted( void* thr, dim_t size, dim_t block_factor, bool } void bli_level3_thread_decorator( dim_t n_threads, - level3_int_t* func, + level3_int_t func, obj_t* alpha, obj_t* a, obj_t* b, @@ -242,16 +242,18 @@ void bli_level3_thread_decorator( dim_t n_threads, void* cntl, void** thread ) { - _Pragma( "omp parallel num_threads(n_threads)" ) + //_Pragma( "omp parallel num_threads(n_threads)" ) { - dim_t omp_id = omp_get_thread_num(); + // dim_t omp_id = omp_get_thread_num(); - (*func) ( alpha, + func( alpha, +// bli_gemm_int ( alpha, a, b, beta, c, - cntl, - thread[omp_id] ); + (gemm_t*)cntl, +// thread[omp_id] ); + (gemm_thrinfo_t*)thread[0] ); } } diff --git a/frame/base/bli_threading.h b/frame/base/bli_threading.h index fdd3ae32a..bb2bd6ba3 100644 --- a/frame/base/bli_threading.h +++ b/frame/base/bli_threading.h @@ -101,7 +101,7 @@ void bli_setup_thread_info( thrinfo_t* thread, thread_comm_t* ocomm, dim_t ocomm typedef void (*level3_int_t) ( obj_t* alpha, obj_t* a, obj_t* b, obj_t* beta, obj_t* c, void* cntl, void* thread ); void bli_level3_thread_decorator( dim_t num_threads, - level3_int_t* func, + level3_int_t func, obj_t* alpha, obj_t* a, obj_t* b,