diff --git a/control/async.c b/control/async.c index 82d99893050d2539f1a1938e3c593dec53ba9a5e..4e273b724351dee19a6bffb14e1dc7181e4add81 100644 --- a/control/async.c +++ b/control/async.c @@ -32,7 +32,7 @@ */ #include <stdlib.h> #include "control/common.h" -#include "runtime.h" +#include "chameleon/morse_runtime.h" /******************************************************************************* * Register an exception. diff --git a/control/async.h b/control/async.h index fda4143c1f6b2dec461c5a295c90e05598e282d0..8cfef81bf164250414dcf833380981d215724896 100644 --- a/control/async.h +++ b/control/async.h @@ -9,7 +9,7 @@ **/ /*** - * + * * * @file async.h * @@ -26,7 +26,7 @@ #ifndef _MORSE_ASYNC_H_ #define _MORSE_ASYNC_H_ -#include "morse_struct.h" +#include "chameleon/morse_struct.h" #ifdef __cplusplus extern "C" { diff --git a/control/auxiliary.h b/control/auxiliary.h index 147fe1694635c905accafddd9c847ff930f05914..5cc85d6dc50488bc9e1d0116d885c5c6a1f97b26 100644 --- a/control/auxiliary.h +++ b/control/auxiliary.h @@ -27,7 +27,7 @@ #ifndef _MORSE_AUXILIARY_H_ #define _MORSE_AUXILIARY_H_ -#include "morse_struct.h" +#include "chameleon/morse_struct.h" #ifdef __cplusplus extern "C" { diff --git a/control/context.c b/control/context.c index 4d901902d3588b955fb6a62bd86ee8e8804363d9..0204a1f48bca8a0539ac2d85d8a2d1b70177aae2 100644 --- a/control/context.c +++ b/control/context.c @@ -41,7 +41,7 @@ #include "control/common.h" #include "control/auxiliary.h" #include "control/context.h" -#include "runtime.h" +#include "chameleon/morse_runtime.h" /******************************************************************************* * Global data diff --git a/control/context.h b/control/context.h index 948a2d6c5fbe6512fca59564b0bad0f8500d95ed..0c9191c49439cace1991bb500158538ef1541ad4 100644 --- a/control/context.h +++ b/control/context.h @@ -27,7 +27,7 @@ #ifndef _MORSE_CONTEXT_H_ #define _MORSE_CONTEXT_H_ -#include "morse_struct.h" +#include "chameleon/morse_struct.h" /******************************************************************************* * Routines to handle threads context diff --git a/control/control.c b/control/control.c index 7bb54781d91930dd1b50bb3a1ba6915893b79f73..587a24ae1dfbd22dc7ffb93cac8c91005b260b2b 100644 --- a/control/control.c +++ b/control/control.c @@ -35,7 +35,7 @@ #include <stdlib.h> #include "control/auxiliary.h" #include "control/common.h" -#include "runtime.h" +#include "chameleon/morse_runtime.h" /** *************************************************************************** * diff --git a/control/descriptor.c b/control/descriptor.c index 69d189a29a2012c155693552c2a023cf1c1c5641..1a856099a45a291031f159a6dcc154bc5d1e04ed 100644 --- a/control/descriptor.c +++ b/control/descriptor.c @@ -34,7 +34,7 @@ #include <assert.h> #include "control/common.h" #include "control/descriptor.h" -#include "runtime.h" +#include "chameleon/morse_runtime.h" static int nbdesc = 0; diff --git a/control/descriptor.h b/control/descriptor.h index 7972ea05c574cc87ddfeaf6329101c096c886cb5..2f6c6afe937bfe04fa8d93f6f4c4a26154d4ece4 100644 --- a/control/descriptor.h +++ b/control/descriptor.h @@ -27,8 +27,8 @@ #define _MORSE_DESCRIPTOR_H_ #include <assert.h> -#include "include/chameleon_config.h" -#include "morse_struct.h" +#include "chameleon/chameleon_config.h" +#include "chameleon/morse_struct.h" #include "control/auxiliary.h" #ifdef __cplusplus diff --git a/coreblas/include/coreblas.h b/coreblas/include/coreblas.h index 590e48d62d730e41fd3a4f99300c2a55941decaf..d6269de796d3c5f5906e5dc0da48b4fc491c20a3 100644 --- a/coreblas/include/coreblas.h +++ b/coreblas/include/coreblas.h @@ -42,12 +42,9 @@ /** **************************************************************************** * MORSE types and constants **/ -#include "morse_types.h" -#include "morse_struct.h" -#include "morse_constants.h" -//#include "control/auxiliary.h" -//#include "control/descriptor.h" -//#include "control/tile.h" +#include "chameleon/morse_types.h" +#include "chameleon/morse_struct.h" +#include "chameleon/morse_constants.h" /** **************************************************************************** * CORE BLAS headers diff --git a/example/basic_zposv/posv_users_functions.h b/example/basic_zposv/posv_users_functions.h index 2227941ad0d3537c58439047940146eacb46a8ec..af2469c30f30e2ad5be1883cb4674c37129795e3 100644 --- a/example/basic_zposv/posv_users_functions.h +++ b/example/basic_zposv/posv_users_functions.h @@ -53,6 +53,7 @@ inline static void* user_getaddr_arrayofpointers(const MORSE_desc_t *A, int m, i **/ inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m) { + (void)m; return A->mb; } diff --git a/example/lapack_to_morse/step3.h b/example/lapack_to_morse/step3.h index eedce3468857cc6bb6cfac3907f80670eac0e2a8..f27132feede6050d5e8b2e3082534e01bd0532d0 100644 --- a/example/lapack_to_morse/step3.h +++ b/example/lapack_to_morse/step3.h @@ -190,6 +190,7 @@ inline static void* user_getaddr_arrayofpointers(const MORSE_desc_t *A, int m, i */ inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m) { + (void)m; return A->mb; } @@ -198,6 +199,7 @@ inline static int user_getblkldd_arrayofpointers(const MORSE_desc_t *A, int m) */ inline static int user_getrankof_zero(const MORSE_desc_t *A, int m, int n) { + (void)A; (void)m; (void)n; return 0; } diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 4308dc76d587c6d9958f3e25230b7cd3a0d52b74..21457aa537564e96262907540c99e656bc886fe0 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -34,8 +34,8 @@ set(CHAMELEON_HDRS_GENERATED "") set(ZHDR chameleon/morse_z.h chameleon/morse_zc.h - chameleon/runtime_z.h - chameleon/runtime_zc.h + chameleon/morse_tasks_z.h + chameleon/morse_tasks_zc.h ) precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}" @@ -52,11 +52,12 @@ set(CHAMELEON_HDRS chameleon/chameleon_config.h chameleon/morse_constants.h chameleon/morse_kernels.h + chameleon/morse_mangling.h + chameleon/morse_runtime.h chameleon/morse_simulate.h chameleon/morse_struct.h + chameleon/morse_tasks.h chameleon/morse_types.h - chameleon/morse_mangling.h - chameleon/runtime.h ${CHAMELEON_HDRS_GENERATED} ) diff --git a/include/chameleon/chameleon_config.h.in b/include/chameleon/chameleon_config.h.in index eceddc9e3fb73c76d97828b181b051b7a99dfe26..b1d6abb133ee925ed100228dc1a6d0766086d938 100644 --- a/include/chameleon/chameleon_config.h.in +++ b/include/chameleon/chameleon_config.h.in @@ -56,4 +56,20 @@ #cmakedefine CHAMELEON_HAVE_GETOPT_H #cmakedefine CHAMELEON_HAVE_GETOPT_LONG +#ifdef BEGIN_C_DECLS +#undef BEGIN_C_DECLS +#endif + +#ifdef END_C_DECLS +#undef END_C_DECLS +#endif + +#if defined(c_plusplus) || defined(__cplusplus) +# define BEGIN_C_DECLS extern "C" { +# define END_C_DECLS } +#else +# define BEGIN_C_DECLS /* empty */ +# define END_C_DECLS /* empty */ +#endif + #endif /* CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED */ diff --git a/include/chameleon/morse_kernels.h b/include/chameleon/morse_kernels.h index a979ab6735c42f4186dd4ecc9a508af4ea199856..dd1ce89f0cbf140b369134075f5853b79e0f04a0 100644 --- a/include/chameleon/morse_kernels.h +++ b/include/chameleon/morse_kernels.h @@ -85,4 +85,4 @@ typedef enum morse_kernel_e { MORSE_NBKERNELS } MORSE_kernel_t; -#endif /* _MORSE_KERNELS_H_ */ +#endif diff --git a/include/chameleon/runtime.h b/include/chameleon/morse_runtime.h similarity index 79% rename from include/chameleon/runtime.h rename to include/chameleon/morse_runtime.h index b4569f63083b4f5db9f153c97454dd3fbd5801e9..dc198373df896c950485db6356474aa9364c65d6 100644 --- a/include/chameleon/runtime.h +++ b/include/chameleon/morse_runtime.h @@ -24,10 +24,10 @@ * @date 2011-06-01 * **/ -#ifndef _RUNTIME_H_ -#define _RUNTIME_H_ +#ifndef _MORSE_RUNTIME_H_ +#define _MORSE_RUNTIME_H_ -#include "morse_struct.h" +#include "chameleon/morse_struct.h" /******************************************************************************* * RUNTIME Async @@ -133,34 +133,4 @@ void RUNTIME_ddisplay_oneprofile (MORSE_kernel_t); void RUNTIME_sdisplay_allprofile (); void RUNTIME_sdisplay_oneprofile (MORSE_kernel_t); -/******************************************************************************* - * RUNTIME Kernels - **/ -#include "runtime_z.h" -#include "runtime_d.h" -#include "runtime_c.h" -#include "runtime_s.h" -#include "runtime_zc.h" -#include "runtime_ds.h" - -void MORSE_TASK_ztile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_dtile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_ctile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda); -void MORSE_TASK_stile_zero(const MORSE_option_t *options, - int X1, int X2, int Y1, int Y2, - const MORSE_desc_t *A, int Am, int An, int lda); - -/* - * Mark a data as unused after this call - */ -void MORSE_TASK_dataflush(const MORSE_option_t *options, - const MORSE_desc_t *A, int Am, int An); -void MORSE_TASK_dataflush_all(); - -#endif +#endif /* _MORSE_RUNTIME_H_ */ diff --git a/include/chameleon/morse_simulate.h b/include/chameleon/morse_simulate.h index 7ef57e7291d309fe45b267cdb33f3937dffd3224..51b8131c84de14c318135f350b47e874618d9104 100644 --- a/include/chameleon/morse_simulate.h +++ b/include/chameleon/morse_simulate.h @@ -25,7 +25,7 @@ #ifndef _MORSE_SIMULATE_H_ #define _MORSE_SIMULATE_H_ -#include "chameleon_config.h" +#include "chameleon/chameleon_config.h" /* we need this when starpu is compiled with simgrid enabled */ #if defined(CHAMELEON_SCHED_STARPU) && defined(CHAMELEON_SIMULATION) diff --git a/include/chameleon/morse_struct.h b/include/chameleon/morse_struct.h index a87b8ca47c7f4716666ba6164450c1fe5416f415..a2ecf1934caa8bb7119a14564bbe6561cfb71f78 100644 --- a/include/chameleon/morse_struct.h +++ b/include/chameleon/morse_struct.h @@ -28,8 +28,8 @@ #ifndef _MORSE_STRUCT_H_ #define _MORSE_STRUCT_H_ -#include "chameleon_config.h" -#include "morse_types.h" +#include "chameleon/chameleon_config.h" +#include "chameleon/morse_types.h" /** **************************************************************************** * RUNTIME headers to include types of : @@ -188,7 +188,6 @@ typedef struct morse_option_s { /** **************************************************************************** * MORSE kernels **/ -#include "morse_kernels.h" - +#include "chameleon/morse_kernels.h" #endif /* __CHAMELEON_H__ */ diff --git a/include/chameleon/morse_tasks.h b/include/chameleon/morse_tasks.h new file mode 100644 index 0000000000000000000000000000000000000000..6abc5dcc099085f9b137248826ff52c9a56bea60 --- /dev/null +++ b/include/chameleon/morse_tasks.h @@ -0,0 +1,60 @@ +/** + * + * @copyright (c) 2009-2014 The University of Tennessee and The University + * of Tennessee Research Foundation. + * All rights reserved. + * @copyright (c) 2012-2014 Inria. All rights reserved. + * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. + * + **/ + +/** + * + * @file morse_tasks.h + * + * MORSE codelets kernel + * MORSE is a software package provided by Univ. of Tennessee, + * Univ. of California Berkeley and Univ. of Colorado Denver, + * and INRIA Bordeaux Sud-Ouest + * + * @version 2.3.1 + * @author Mathieu Faverge + * @author Cedric Augonnet + * @date 2011-06-01 + * + **/ +#ifndef _MORSE_TASKS_H_ +#define _MORSE_TASKS_H_ + +/******************************************************************************* + * MORSE Task submission routines + **/ +void MORSE_TASK_ztile_zero(const MORSE_option_t *options, + int X1, int X2, int Y1, int Y2, + const MORSE_desc_t *A, int Am, int An, int lda); +void MORSE_TASK_dtile_zero(const MORSE_option_t *options, + int X1, int X2, int Y1, int Y2, + const MORSE_desc_t *A, int Am, int An, int lda); +void MORSE_TASK_ctile_zero(const MORSE_option_t *options, + int X1, int X2, int Y1, int Y2, + const MORSE_desc_t *A, int Am, int An, int lda); +void MORSE_TASK_stile_zero(const MORSE_option_t *options, + int X1, int X2, int Y1, int Y2, + const MORSE_desc_t *A, int Am, int An, int lda); + +/* + * Mark a data as unused after this call + */ +void MORSE_TASK_dataflush(const MORSE_option_t *options, + const MORSE_desc_t *A, int Am, int An); +void MORSE_TASK_dataflush_all(); + +#include "chameleon/morse_tasks_z.h" +#include "chameleon/morse_tasks_d.h" +#include "chameleon/morse_tasks_c.h" +#include "chameleon/morse_tasks_s.h" +#include "chameleon/morse_tasks_zc.h" +#include "chameleon/morse_tasks_ds.h" + + +#endif /* _MORSE_TASKS_H_ */ diff --git a/include/chameleon/runtime_z.h b/include/chameleon/morse_tasks_z.h similarity index 99% rename from include/chameleon/runtime_z.h rename to include/chameleon/morse_tasks_z.h index d4e434a8cd170151cd46e9a8941f3b5dda026cd1..1a74269cc88e81967cb8356baf9a5f5175b42e3e 100644 --- a/include/chameleon/runtime_z.h +++ b/include/chameleon/morse_tasks_z.h @@ -10,7 +10,7 @@ /** * - * @file runtime_z.h + * @file morse_tasks_z.h * * MORSE auxiliary routines * MORSE is a software package provided by Univ. of Tennessee, @@ -29,8 +29,8 @@ * @precisions normal z -> c d s * **/ -#ifndef _RUNTIME_ZBLAS_H_ -#define _RUNTIME_ZBLAS_H_ +#ifndef _MORSE_TASKS_Z_H_ +#define _MORSE_TASKS_Z_H_ #define COMPLEX diff --git a/include/chameleon/runtime_zc.h b/include/chameleon/morse_tasks_zc.h similarity index 95% rename from include/chameleon/runtime_zc.h rename to include/chameleon/morse_tasks_zc.h index a17fd6fe0d5514792b7cb530c4c36e079e3db67d..7daedad435e3b864bb3876383193dc5afbcb2889 100644 --- a/include/chameleon/runtime_zc.h +++ b/include/chameleon/morse_tasks_zc.h @@ -10,7 +10,7 @@ /** * - * @file runtime_zc.h + * @file morse_tasks_zc.h * * MORSE auxiliary routines * MORSE is a software package provided by Univ. of Tennessee, @@ -28,8 +28,8 @@ * @precisions mixed zc -> ds * **/ -#ifndef _RUNTIME_ZCBLAS_H_ -#define _RUNTIME_ZCBLAS_H_ +#ifndef _MORSE_TASKS_Z_H_ +#define _MORSE_TASKS_Z_H_ #ifdef __cplusplus extern "C" { diff --git a/include/morse.h b/include/morse.h index f87fdc0982fafee360a4f0e0cdef8fe4d76f67df..dbce6b27964b7f26898cf34ad4fc4a8b178300f4 100644 --- a/include/morse.h +++ b/include/morse.h @@ -31,29 +31,48 @@ /* **************************************************************************** * MORSE types and constants */ -#include "chameleon_config.h" -#include "morse_types.h" -#include "morse_struct.h" -#include "morse_constants.h" +#include "chameleon/chameleon_config.h" +#include "chameleon/morse_types.h" +#include "chameleon/morse_struct.h" +#include "chameleon/morse_constants.h" +#include "chameleon/morse_kernels.h" /* **************************************************************************** - * RUNTIME Functions + * MORSE runtime common API */ -#include "runtime.h" +#include "chameleon/morse_runtime.h" /* **************************************************************************** - * For Simulation mode + * MORSE Simulation mode */ -#include "morse_simulate.h" +#include "chameleon/morse_simulate.h" + +/* **************************************************************************** + * Include LibHQR for hierarchical trees QR/LQ factorizations + */ +#include "libhqr.h" + +/* **************************************************************************** + * MORSE Tasks + */ +#include "chameleon/morse_tasks.h" + +/* **************************************************************************** + * MORSE functionnalities + */ +#include "chameleon/morse_z.h" +#include "chameleon/morse_c.h" +#include "chameleon/morse_d.h" +#include "chameleon/morse_s.h" +#include "chameleon/morse_zc.h" +#include "chameleon/morse_ds.h" /* **************************************************************************** * MORSE Functions */ -#ifdef __cplusplus -extern "C" { -#endif +BEGIN_C_DECLS /* Auxiliary */ int MORSE_Version (int *ver_major, int *ver_minor, int *ver_micro); @@ -113,16 +132,6 @@ int MORSE_Sequence_Create (MORSE_sequence_t **sequence); int MORSE_Sequence_Destroy (MORSE_sequence_t *sequence); int MORSE_Sequence_Wait (MORSE_sequence_t *sequence); -#ifdef __cplusplus -} -#endif - -#include "libhqr.h" -#include "morse_z.h" -#include "morse_c.h" -#include "morse_d.h" -#include "morse_s.h" -#include "morse_zc.h" -#include "morse_ds.h" +END_C_DECLS #endif diff --git a/runtime/starpu/control/runtime_async.c b/runtime/starpu/control/runtime_async.c index 03f5a6fa73156f7b619241209cd016c2fab3a926..09a120e69e63aabfd6f4a65103239cacac5e4856 100644 --- a/runtime/starpu/control/runtime_async.c +++ b/runtime/starpu/control/runtime_async.c @@ -54,28 +54,33 @@ extern void (*update_progress_callback)(int, int) ; /******************************************************************************* * Display a progress information when executing the tasks **/ -int RUNTIME_progress( MORSE_context_t *morse) +int RUNTIME_progress( MORSE_context_t *morse ) { + int tasksLeft, current, timer = 0; + int max; + #if defined(CHAMELEON_USE_MPI) - if (morse->my_mpi_rank!=0) - return MORSE_SUCCESS; + if ( morse->my_mpi_rank != 0 ) + return MORSE_SUCCESS; #endif - int tasksLeft, current, timer=0; - int max = starpu_task_nsubmitted(); - if (max==0) - return MORSE_SUCCESS; - // update_progress_callback(0, max); - while ((tasksLeft = starpu_task_nsubmitted()) > 0) { - current = max - tasksLeft; + + max = starpu_task_nsubmitted(); + if ( max == 0 ) + return MORSE_SUCCESS; + + // update_progress_callback(0, max); + while ((tasksLeft = starpu_task_nsubmitted()) > 0) { + current = max - tasksLeft; + if (timer > PROGRESS_MINIMUM_DURATION) + update_progress_callback(current, max); + sleep(1); + timer++; + } if (timer > PROGRESS_MINIMUM_DURATION) - update_progress_callback(current, max); - sleep(1); - timer++; - } - if (timer > PROGRESS_MINIMUM_DURATION) - update_progress_callback(max, max); + update_progress_callback(max, max); - return MORSE_SUCCESS; + (void)morse; + return MORSE_SUCCESS; } /******************************************************************************* @@ -86,7 +91,7 @@ int RUNTIME_sequence_wait( MORSE_context_t *morse, MORSE_sequence_t *sequence ) (void)morse; (void)sequence; if (morse->progress_enabled) - RUNTIME_progress(morse); + RUNTIME_progress(morse); starpu_task_wait_for_all(); #if defined(CHAMELEON_USE_MPI) starpu_mpi_barrier(MPI_COMM_WORLD); diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c index 6a05ce8baf0822c7222523f1d735ed9faf89f6e5..46383eae701eee8e5d2d5a0ddef754e0f0da1bf8 100644 --- a/runtime/starpu/control/runtime_descriptor.c +++ b/runtime/starpu/control/runtime_descriptor.c @@ -50,14 +50,17 @@ static int _tag_mpi_initialized_ = 0; #define FOLDED 0 #endif -void RUNTIME_user_tag_size(int user_tag_width, int user_tag_sep) { +void RUNTIME_user_tag_size( int user_tag_width, int user_tag_sep ) { #if defined(CHAMELEON_USE_MPI) if (_tag_mpi_initialized_ == 0) { - tag_width=user_tag_width; - tag_sep=user_tag_sep; - } else - morse_error("RUNTIME_user_tag_size", "must be called before creating any Morse descriptor with MORSE_Desc_create(). The tag sizes will not be modified."); + tag_width = user_tag_width; + tag_sep = user_tag_sep; + } else { + morse_error("RUNTIME_user_tag_size", + "must be called before creating any Morse descriptor with MORSE_Desc_create(). The tag sizes will not be modified."); + } #endif + (void)user_tag_width; (void)user_tag_sep; } @@ -126,9 +129,9 @@ void RUNTIME_desc_create( MORSE_desc_t *desc ) int pagesize = getpagesize(); if ((desc->mb * desc->nb * eltsze) % pagesize != 0 - || (lastmm * desc->nb * eltsze) % pagesize != 0 - || (desc->mb * lastnn * eltsze) % pagesize != 0 - || (lastmm * lastnn * eltsze) % pagesize != 0) + || (lastmm * desc->nb * eltsze) % pagesize != 0 + || (desc->mb * lastnn * eltsze) % pagesize != 0 + || (lastmm * lastnn * eltsze) % pagesize != 0) { morse_error("RUNTIME_desc_create", "Matrix and tile size not suitable for out-of-core: all tiles have to be multiples of 4096. Tip : choose 'n' and 'nb' as both multiples of 32."); return; diff --git a/runtime/starpu/control/runtime_zlocality.c b/runtime/starpu/control/runtime_zlocality.c index a83ddceb5df06a6e035bab0e65e121a01c1dfbce..f7bdf1fff8741172ee5fe2dca77efa6c640a2f53 100644 --- a/runtime/starpu/control/runtime_zlocality.c +++ b/runtime/starpu/control/runtime_zlocality.c @@ -250,8 +250,23 @@ void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel ) } } #else -void RUNTIME_zlocality_allrestrict( uint32_t where ) {} -void RUNTIME_zlocality_onerestrict( MORSE_kernel_t kernel, uint32_t where ) {} + +void RUNTIME_zlocality_allrestrict( uint32_t where ) +{ + (void)where; +} + +void RUNTIME_zlocality_onerestrict( MORSE_kernel_t kernel, uint32_t where ) +{ + (void)kernel; + (void)where; +} + void RUNTIME_zlocality_allrestore( ) {} -void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel ) {} + +void RUNTIME_zlocality_onerestore( MORSE_kernel_t kernel ) +{ + (void)kernel; +} + #endif diff --git a/testing/testing_zauxiliary.c b/testing/testing_zauxiliary.c index 748c56694aac865dceb215c7d6579ba300d46b67..e1501a07d18fec89fe6f172848f320e48fbfa189 100644 --- a/testing/testing_zauxiliary.c +++ b/testing/testing_zauxiliary.c @@ -157,7 +157,7 @@ int map_RRRB(int m, int n, int mb, int nb, int i, int j) { return ( m*n0 + (n-n0)*m0 + map_rm( m%mb, n%nb, i%mb, j%nb) ); } -void *formatmap[6] = { map_CM, map_RM, map_CCRB, map_CRRB, map_RCRB, map_RRRB }; +int (*formatmap[6])(int, int, int, int, int, int) = { map_CM, map_RM, map_CCRB, map_CRRB, map_RCRB, map_RRRB }; int main (int argc, char **argv) { diff --git a/testing/testing_zauxiliary.h b/testing/testing_zauxiliary.h index 2285df339ecd93a5bd4b7c09b25948bf0c21e6aa..7c55d8057c05a1028592b44d9fc8fa49a0cd3985 100644 --- a/testing/testing_zauxiliary.h +++ b/testing/testing_zauxiliary.h @@ -68,7 +68,7 @@ extern char *itypestr[3]; extern char *storevstr[2]; extern char *normstr[4]; -extern void *formatmap[6]; +extern int (*formatmap[6])(int, int, int, int, int, int); int map_CM (int m, int n, int mb, int nb, int i, int j); int map_CCRB(int m, int n, int mb, int nb, int i, int j); diff --git a/testing/testing_zpemv.c b/testing/testing_zpemv.c index 7130fa5b9adc665eaa63a71ec0eadaed496cb813..4a33972633be86505981cb5214fe2d1dbaf38072 100644 --- a/testing/testing_zpemv.c +++ b/testing/testing_zpemv.c @@ -42,12 +42,12 @@ /*-------------------------------------------------------------- * Check the pemv */ -static int check_solution(MORSE_enum trans, MORSE_enum storev, +static int check_solution(MORSE_enum trans, MORSE_enum storev, int M, int N, int L, MORSE_Complex64_t alpha, MORSE_Complex64_t *A, int LDA, - MORSE_Complex64_t *X, int INCX, + MORSE_Complex64_t *X, int INCX, MORSE_Complex64_t beta, MORSE_Complex64_t *Y0, int INCY0, - MORSE_Complex64_t *Y, int INCY, + MORSE_Complex64_t *Y, int INCY, MORSE_Complex64_t *W, double *Rnorm) { int k; @@ -61,28 +61,30 @@ static int check_solution(MORSE_enum trans, MORSE_enum storev, } else { k = M; } - + work = (double *)malloc(k * sizeof(double)); cblas_zcopy(k, Y0, INCY0, W, 1); - + /* w = a A x + b w */ - cblas_zgemv(CblasColMajor, (CBLAS_TRANSPOSE)trans, + cblas_zgemv(CblasColMajor, (CBLAS_TRANSPOSE)trans, M, N, - CBLAS_SADDR(alpha), A, LDA, - X, INCX, + CBLAS_SADDR(alpha), A, LDA, + X, INCX, CBLAS_SADDR(beta), W, 1); /* y - w */ cblas_zaxpy(k, CBLAS_SADDR(mzone), Y, INCY, W, 1); - + /* Max Norm */ *Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'm', 1, k, W, 1, work); - + if ( (*Rnorm / (M*N)) > eps) { return 1; } else { return 0; } + + (void)L; (void)storev; } /*-------------------------------------------------------------- @@ -136,8 +138,8 @@ int testing_zpemv(int argc, char **argv) printf("Out of Memory \n "); exit(0); } - - /* Initialize Data */ + + /* Initialize Data */ MORSE_zplrnt(n, n, A, lda, 479 ); MORSE_zplrnt(n, n, X, lda, 320 ); MORSE_zplrnt(n, 1, Y0, n, 573 ); @@ -152,7 +154,7 @@ int testing_zpemv(int argc, char **argv) nfails = 0; for (i=0; i<6; i++) { - + /* m and n cannot be greater than lda (arg_n) */ switch (i) { case 0: l = 0; m = arg_n; n = m; break; @@ -165,17 +167,17 @@ int testing_zpemv(int argc, char **argv) /* Colwise ConjTrans & Rowwise NoTrans */ #ifdef COMPLEX - for (t=0; t<3; t++) { + for (t=0; t<3; t++) #else - for (t=0; t<2; t++) { + for (t=0; t<2; t++) #endif - + { /* Swap m and n for transpose cases */ if ( t == 1 ) { k = m; m = n; n = k; } - LAPACKE_zlacpy_work( LAPACK_COL_MAJOR, 'A', m, n, + LAPACKE_zlacpy_work( LAPACK_COL_MAJOR, 'A', m, n, A, lda, A0, lda); if ( trans[t] == MorseNoTrans ) { @@ -217,29 +219,29 @@ int testing_zpemv(int argc, char **argv) case 2: incx = lda; incy = 1; break; case 3: incx = lda; incy = lda; break; } - + /* initialize Y with incy */ cblas_zcopy(n, Y0, 1, Y, incy); - + /* ZPEMV */ - CORE_zpemv( trans[t], storev, m, n, l, - alpha, A, lda, - X, incx, - beta, Y, incy, + CORE_zpemv( trans[t], storev, m, n, l, + alpha, A, lda, + X, incx, + beta, Y, incy, work); - + /* Check the solution */ - info_solution = check_solution(trans[t], storev, - m, n, l, + info_solution = check_solution(trans[t], storev, + m, n, l, alpha, A0, lda, - X, incx, - beta, Y0, 1, - Y, incy, + X, incx, + beta, Y0, 1, + Y, incy, work, &rnorm); - + if ( info_solution != 0 ) { nfails++; - printf("Failed: t=%s, s=%s, M=%3d, N=%3d, L=%3d, alpha=%e, incx=%3d, beta=%e, incy=%3d, rnorm=%e\n", + printf("Failed: t=%s, s=%s, M=%3d, N=%3d, L=%3d, alpha=%e, incx=%3d, beta=%e, incy=%3d, rnorm=%e\n", transstr[t], cstorev, m, n, l, creal(alpha), incx, creal(beta), incy, rnorm ); } nbtests++; @@ -268,4 +270,3 @@ int testing_zpemv(int argc, char **argv) return hres; } -