Commit 04da77e9 authored by PRUVOST Florent's avatar PRUVOST Florent
Browse files

@all

- create config files to store definitions
 - include/chameleon_config.h: definitions exposed to the public (installed file)
 - control/config.h: additional definitions used internally
- modify source code to call the config files when it is necessary (when the different "if defined" are used)
parent d443b96f
...@@ -703,18 +703,18 @@ if( CHAMELEON_SCHED_STARPU ) ...@@ -703,18 +703,18 @@ if( CHAMELEON_SCHED_STARPU )
string(REPLACE ";" " " CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}") string(REPLACE ";" " " CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
check_function_exists(starpu_data_idle_prefetch_on_node STARPU_IDLE_PREFETCH_FOUND) check_function_exists(starpu_data_idle_prefetch_on_node STARPU_IDLE_PREFETCH_FOUND)
if ( STARPU_IDLE_PREFETCH_FOUND ) if ( STARPU_IDLE_PREFETCH_FOUND )
set(CHAMELEON_USE_STARPU_IDLE_PREFETCH 1) set(USE_STARPU_IDLE_PREFETCH 1)
message("-- ${Blue}Add definition CHAMELEON_USE_STARPU_IDLE_PREFETCH${ColourReset}") message("-- ${Blue}Add definition USE_STARPU_IDLE_PREFETCH${ColourReset}")
endif() endif()
check_function_exists(starpu_data_wont_use STARPU_DATA_WONT_USE_FOUND) check_function_exists(starpu_data_wont_use STARPU_DATA_WONT_USE_FOUND)
if ( STARPU_DATA_WONT_USE_FOUND ) if ( STARPU_DATA_WONT_USE_FOUND )
set(CHAMELEON_USE_STARPU_DATA_WONT_USE 1) set(USE_STARPU_DATA_WONT_USE 1)
message("-- ${Blue}Add definition CHAMELEON_USE_STARPU_DATA_WONT_USE${ColourReset}") message("-- ${Blue}Add definition USE_STARPU_DATA_WONT_USE${ColourReset}")
endif() endif()
check_function_exists(starpu_malloc_on_node_set_default_flags STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS) check_function_exists(starpu_malloc_on_node_set_default_flags STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS)
if ( STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS ) if ( STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS )
set(CHAMELEON_USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS 1) set(USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS 1)
message("-- ${Blue}Add definition CHAMELEON_USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS${ColourReset}") message("-- ${Blue}Add definition USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS${ColourReset}")
endif() endif()
if(CHAMELEON_ENABLE_TRACING) if(CHAMELEON_ENABLE_TRACING)
# check if fxt profiling is accessible in starpu and activate it in chameleon # check if fxt profiling is accessible in starpu and activate it in chameleon
......
...@@ -37,11 +37,16 @@ set(ZHDR ...@@ -37,11 +37,16 @@ set(ZHDR
precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}" precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}"
PRECISIONS "s;d;c;z;ds;zc") PRECISIONS "s;d;c;z;ds;zc")
configure_file("config.h.in"
"config.h"
@ONLY)
# Define the list of headers # Define the list of headers
# -------------------------- # --------------------------
set(CHAMELEON_HDRS set(CHAMELEON_HDRS
async.h async.h
auxiliary.h auxiliary.h
config.h
common.h common.h
context.h context.h
descriptor.h descriptor.h
......
...@@ -43,6 +43,8 @@ ...@@ -43,6 +43,8 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
/* need the config to get definitions */
#include "control/config.h"
/** **************************************************************************** /** ****************************************************************************
* Implementation headers * Implementation headers
......
/**
*
* @copyright (c) 2009-2014 The University of Tennessee and The University
* of Tennessee Research Foundation.
* All rights reserved.
* @copyright (c) 2012-2017 Inria. All rights reserved.
* @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
*
**/
/**
*
* @file config.h
*
* MORSE main header
* 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 0.9.1
* @author Florent Pruvost
* @date 2017-01-09
*
**/
#ifndef CONFIG_H_HAS_BEEN_INCLUDED
#define CONFIG_H_HAS_BEEN_INCLUDED
/* inherit from public chameleon's definitions */
#include "include/chameleon_config.h"
/* For BLAS Fortran mangling */
#cmakedefine ADD_
/* Profiling */
#cmakedefine HAVE_STARPU_FXT_PROFILING
/* Optional functions */
#cmakedefine HAVE_MAGMA_GETRF_INCPIV_GPU
#cmakedefine USE_STARPU_IDLE_PREFETCH
#cmakedefine USE_STARPU_DATA_WONT_USE
#cmakedefine USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS
#cmakedefine HAVE_STARPU_MPI_DATA_REGISTER
#cmakedefine HAVE_STARPU_MPI_COMM_RANK
#endif /* CONFIG_H_HAS_BEEN_INCLUDED */
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#define _MORSE_DESCRIPTOR_H_ #define _MORSE_DESCRIPTOR_H_
#include <assert.h> #include <assert.h>
#include "include/chameleon_config.h"
#include "morse_struct.h" #include "morse_struct.h"
#include "control/auxiliary.h" #include "control/auxiliary.h"
......
...@@ -37,6 +37,8 @@ ...@@ -37,6 +37,8 @@
#include <cuda.h> #include <cuda.h>
#include <cuComplex.h> #include <cuComplex.h>
#include "include/chameleon_config.h"
#if defined(CHAMELEON_USE_CUBLAS_V2) #if defined(CHAMELEON_USE_CUBLAS_V2)
#include <cublas_v2.h> #include <cublas_v2.h>
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#ifndef _MORSE_CUDA_ZBLAS_H_ #ifndef _MORSE_CUDA_ZBLAS_H_
#define _MORSE_CUDA_ZBLAS_H_ #define _MORSE_CUDA_ZBLAS_H_
#include "include/chameleon_config.h"
#include "morse_types.h" #include "morse_types.h"
#ifdef __cplusplus #ifdef __cplusplus
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# @copyright (c) 2009-2014 The University of Tennessee and The University # @copyright (c) 2009-2014 The University of Tennessee and The University
# of Tennessee Research Foundation. # of Tennessee Research Foundation.
# All rights reserved. # All rights reserved.
# @copyright (c) 2012-2014 Inria. All rights reserved. # @copyright (c) 2012-2017 Inria. All rights reserved.
# @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. # @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
# #
### ###
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
# @author Cedric Castagnede # @author Cedric Castagnede
# @author Emmanuel Agullo # @author Emmanuel Agullo
# @author Mathieu Faverge # @author Mathieu Faverge
# @author Florent Pruvost
# @date 13-07-2012 # @date 13-07-2012
# #
### ###
...@@ -40,8 +41,8 @@ set(ZHDR ...@@ -40,8 +41,8 @@ set(ZHDR
precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}" precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}"
PRECISIONS "z;c;d;s;zc;ds") PRECISIONS "z;c;d;s;zc;ds")
configure_file("morse_config.h.in" configure_file("chameleon_config.h.in"
"morse_config.h" "chameleon_config.h"
@ONLY) @ONLY)
configure_file("morse.h.in" configure_file("morse.h.in"
"morse.h" "morse.h"
...@@ -50,12 +51,12 @@ configure_file("morse.h.in" ...@@ -50,12 +51,12 @@ configure_file("morse.h.in"
# Define the list of headers # Define the list of headers
# -------------------------- # --------------------------
set(CHAMELEON_HDRS set(CHAMELEON_HDRS
chameleon_config.h
morse_constants.h morse_constants.h
morse_kernels.h morse_kernels.h
morse_simulate.h morse_simulate.h
morse_struct.h morse_struct.h
morse_types.h morse_types.h
morse_config.h
morse.h morse.h
runtime.h runtime.h
${CHAMELEON_HDRS_GENERATED} ${CHAMELEON_HDRS_GENERATED}
...@@ -83,7 +84,7 @@ set(HDR_INSTALL ...@@ -83,7 +84,7 @@ set(HDR_INSTALL
foreach( hdr_file ${CHAMELEON_HDRS_GENERATED} ) foreach( hdr_file ${CHAMELEON_HDRS_GENERATED} )
list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file}) list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
endforeach() endforeach()
list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/morse.h ${CMAKE_CURRENT_BINARY_DIR}/morse_config.h) list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/morse.h ${CMAKE_CURRENT_BINARY_DIR}/chameleon_config.h)
# installation # installation
# ------------ # ------------
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
/** /**
* *
* @file chameleon.h * @file chameleon_config.h
* *
* MORSE main header * MORSE main header
* MORSE is a software package provided by Univ. of Tennessee, * MORSE is a software package provided by Univ. of Tennessee,
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
* @date 2017-01-06 * @date 2017-01-06
* *
**/ **/
#ifndef MORSE_CONFIG_H_HAS_BEEN_INCLUDED #ifndef CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED
#define MORSE_CONFIG_H_HAS_BEEN_INCLUDED #define CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED
#define CHAMELEON_VERSION_MAJOR @CHAMELEON_VERSION_MAJOR@ #define CHAMELEON_VERSION_MAJOR @CHAMELEON_VERSION_MAJOR@
#define CHAMELEON_VERSION_MINOR @CHAMELEON_VERSION_MINOR@ #define CHAMELEON_VERSION_MINOR @CHAMELEON_VERSION_MINOR@
...@@ -43,24 +43,8 @@ ...@@ -43,24 +43,8 @@
#cmakedefine CHAMELEON_USE_CUBLAS_V2 #cmakedefine CHAMELEON_USE_CUBLAS_V2
#cmakedefine CHAMELEON_USE_MAGMA #cmakedefine CHAMELEON_USE_MAGMA
/* For BLAS Fortran mangling */
#cmakedefine ADD_
/* Profiling */
#cmakedefine HAVE_STARPU_FXT_PROFILING
/* Simulating */ /* Simulating */
#cmakedefine CHAMELEON_SIMULATION #cmakedefine CHAMELEON_SIMULATION
/* Optional functions */
#cmakedefine CBLAS_HAS_ZGEMM3M
#cmakedefine CBLAS_HAS_CGEMM3M
#cmakedefine HAVE_MAGMA_GETRF_INCPIV_GPU
#cmakedefine CHAMELEON_USE_STARPU_IDLE_PREFETCH
#cmakedefine CHAMELEON_USE_STARPU_DATA_WONT_USE
#cmakedefine CHAMELEON_USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS
#cmakedefine HAVE_STARPU_MPI_DATA_REGISTER
#cmakedefine HAVE_STARPU_MPI_COMM_RANK
#endif /*MORSE_CONFIG_H_HAS_BEEN_INCLUDED */ #endif /* CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED */
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
/* **************************************************************************** /* ****************************************************************************
* MORSE types and constants * MORSE types and constants
*/ */
#include "morse_config.h" #include "chameleon_config.h"
#include "morse_types.h" #include "morse_types.h"
#include "morse_struct.h" #include "morse_struct.h"
#include "morse_constants.h" #include "morse_constants.h"
......
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
#ifndef _MORSE_SIMULATE_H_ #ifndef _MORSE_SIMULATE_H_
#define _MORSE_SIMULATE_H_ #define _MORSE_SIMULATE_H_
#include "include/chameleon_config.h"
/* we need this when starpu is compiled with simgrid enabled */ /* we need this when starpu is compiled with simgrid enabled */
#if defined(CHAMELEON_SCHED_STARPU) && defined(CHAMELEON_SIMULATION) #if defined(CHAMELEON_SCHED_STARPU) && defined(CHAMELEON_SIMULATION)
#include <starpu_simgrid_wrap.h> #include <starpu_simgrid_wrap.h>
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#ifndef _MORSE_STRUCT_H_ #ifndef _MORSE_STRUCT_H_
#define _MORSE_STRUCT_H_ #define _MORSE_STRUCT_H_
#include "include/chameleon_config.h"
#include "morse_types.h" #include "morse_types.h"
/** **************************************************************************** /** ****************************************************************************
......
...@@ -26,8 +26,8 @@ ...@@ -26,8 +26,8 @@
**/ **/
#include "runtime/starpu/include/morse_starpu.h" #include "runtime/starpu/include/morse_starpu.h"
#ifdef CHAMELEON_USE_STARPU_DATA_WONT_USE #ifdef USE_STARPU_DATA_WONT_USE
#elif defined CHAMELEON_USE_STARPU_IDLE_PREFETCH #elif defined USE_STARPU_IDLE_PREFETCH
static void data_flush(void *handle) static void data_flush(void *handle)
{ {
starpu_data_idle_prefetch_on_node(handle, STARPU_MAIN_RAM, 1); starpu_data_idle_prefetch_on_node(handle, STARPU_MAIN_RAM, 1);
...@@ -63,9 +63,9 @@ void MORSE_TASK_dataflush(const MORSE_option_t *options, ...@@ -63,9 +63,9 @@ void MORSE_TASK_dataflush(const MORSE_option_t *options,
if ( A->myrank == A->get_rankof( A, Am, An ) ) if ( A->myrank == A->get_rankof( A, Am, An ) )
{ {
/* Push data to main memory when we have time to */ /* Push data to main memory when we have time to */
#ifdef CHAMELEON_USE_STARPU_DATA_WONT_USE #ifdef USE_STARPU_DATA_WONT_USE
starpu_data_wont_use(*ptrtile); starpu_data_wont_use(*ptrtile);
#elif defined CHAMELEON_USE_STARPU_IDLE_PREFETCH #elif defined USE_STARPU_IDLE_PREFETCH
starpu_data_acquire_on_node_cb(*ptrtile, -1, STARPU_R, data_flush, *ptrtile); starpu_data_acquire_on_node_cb(*ptrtile, -1, STARPU_R, data_flush, *ptrtile);
#else #else
starpu_data_acquire_cb(*ptrtile, STARPU_R, data_release, *ptrtile); starpu_data_acquire_cb(*ptrtile, STARPU_R, data_release, *ptrtile);
......
...@@ -113,7 +113,7 @@ int RUNTIME_init_scheduler( MORSE_context_t *morse, int ncpus, int ncudas, int n ...@@ -113,7 +113,7 @@ int RUNTIME_init_scheduler( MORSE_context_t *morse, int ncpus, int ncudas, int n
morse->nthreads_per_worker = nthreads_per_worker; morse->nthreads_per_worker = nthreads_per_worker;
} }
#ifdef CHAMELEON_USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS #ifdef USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS
starpu_malloc_on_node_set_default_flags(STARPU_MAIN_RAM, STARPU_MALLOC_PINNED | STARPU_MALLOC_COUNT starpu_malloc_on_node_set_default_flags(STARPU_MAIN_RAM, STARPU_MALLOC_PINNED | STARPU_MALLOC_COUNT
#ifdef STARPU_MALLOC_SIMULATION_FOLDED #ifdef STARPU_MALLOC_SIMULATION_FOLDED
| STARPU_MALLOC_SIMULATION_FOLDED | STARPU_MALLOC_SIMULATION_FOLDED
......
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
#ifndef _MORSE_STARPU_H_ #ifndef _MORSE_STARPU_H_
#define _MORSE_STARPU_H_ #define _MORSE_STARPU_H_
#include "include/chameleon_config.h"
#if defined(CHAMELEON_USE_MPI) #if defined(CHAMELEON_USE_MPI)
#include <starpu_mpi.h> #include <starpu_mpi.h>
#else #else
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#ifndef _CODELETS_H_ #ifndef _CODELETS_H_
#define _CODELETS_H_ #define _CODELETS_H_
#include "include/chameleon_config.h"
#include "runtime_codelet_profile.h" #include "runtime_codelet_profile.h"
//#undef STARPU_CUDA_ASYNC //#undef STARPU_CUDA_ASYNC
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment