Mentions légales du service

Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
......@@ -703,18 +703,18 @@ if( CHAMELEON_SCHED_STARPU )
string(REPLACE ";" " " CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
check_function_exists(starpu_data_idle_prefetch_on_node STARPU_IDLE_PREFETCH_FOUND)
if ( STARPU_IDLE_PREFETCH_FOUND )
set(CHAMELEON_USE_STARPU_IDLE_PREFETCH 1)
message("-- ${Blue}Add definition CHAMELEON_USE_STARPU_IDLE_PREFETCH${ColourReset}")
set(USE_STARPU_IDLE_PREFETCH 1)
message("-- ${Blue}Add definition USE_STARPU_IDLE_PREFETCH${ColourReset}")
endif()
check_function_exists(starpu_data_wont_use STARPU_DATA_WONT_USE_FOUND)
if ( STARPU_DATA_WONT_USE_FOUND )
set(CHAMELEON_USE_STARPU_DATA_WONT_USE 1)
message("-- ${Blue}Add definition CHAMELEON_USE_STARPU_DATA_WONT_USE${ColourReset}")
set(USE_STARPU_DATA_WONT_USE 1)
message("-- ${Blue}Add definition USE_STARPU_DATA_WONT_USE${ColourReset}")
endif()
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 )
set(CHAMELEON_USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS 1)
message("-- ${Blue}Add definition CHAMELEON_USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS${ColourReset}")
set(USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS 1)
message("-- ${Blue}Add definition USE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS${ColourReset}")
endif()
if(CHAMELEON_ENABLE_TRACING)
# check if fxt profiling is accessible in starpu and activate it in chameleon
......
......@@ -37,11 +37,16 @@ set(ZHDR
precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}"
PRECISIONS "s;d;c;z;ds;zc")
configure_file("config.h.in"
"config.h"
@ONLY)
# Define the list of headers
# --------------------------
set(CHAMELEON_HDRS
async.h
auxiliary.h
config.h
common.h
context.h
descriptor.h
......
......@@ -43,6 +43,8 @@
#include <unistd.h>
#endif
/* need the config to get definitions */
#include "control/config.h"
/** ****************************************************************************
* 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 @@
#define _MORSE_DESCRIPTOR_H_
#include <assert.h>
#include "include/chameleon_config.h"
#include "morse_struct.h"
#include "control/auxiliary.h"
......
......@@ -37,6 +37,8 @@
#include <cuda.h>
#include <cuComplex.h>
#include "include/chameleon_config.h"
#if defined(CHAMELEON_USE_CUBLAS_V2)
#include <cublas_v2.h>
......
......@@ -25,6 +25,7 @@
#ifndef _MORSE_CUDA_ZBLAS_H_
#define _MORSE_CUDA_ZBLAS_H_
#include "include/chameleon_config.h"
#include "morse_types.h"
#ifdef __cplusplus
......
......@@ -3,7 +3,7 @@
# @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-2017 Inria. All rights reserved.
# @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
#
###
......@@ -22,6 +22,7 @@
# @author Cedric Castagnede
# @author Emmanuel Agullo
# @author Mathieu Faverge
# @author Florent Pruvost
# @date 13-07-2012
#
###
......@@ -40,8 +41,8 @@ set(ZHDR
precisions_rules_py(CHAMELEON_HDRS_GENERATED "${ZHDR}"
PRECISIONS "z;c;d;s;zc;ds")
configure_file("morse_config.h.in"
"morse_config.h"
configure_file("chameleon_config.h.in"
"chameleon_config.h"
@ONLY)
configure_file("morse.h.in"
"morse.h"
......@@ -50,12 +51,12 @@ configure_file("morse.h.in"
# Define the list of headers
# --------------------------
set(CHAMELEON_HDRS
chameleon_config.h
morse_constants.h
morse_kernels.h
morse_simulate.h
morse_struct.h
morse_types.h
morse_config.h
morse.h
runtime.h
${CHAMELEON_HDRS_GENERATED}
......@@ -83,7 +84,7 @@ set(HDR_INSTALL
foreach( hdr_file ${CHAMELEON_HDRS_GENERATED} )
list(APPEND HDR_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/${hdr_file})
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
# ------------
......
......@@ -10,7 +10,7 @@
/**
*
* @file chameleon.h
* @file chameleon_config.h
*
* MORSE main header
* MORSE is a software package provided by Univ. of Tennessee,
......@@ -22,8 +22,8 @@
* @date 2017-01-06
*
**/
#ifndef MORSE_CONFIG_H_HAS_BEEN_INCLUDED
#define MORSE_CONFIG_H_HAS_BEEN_INCLUDED
#ifndef CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED
#define CHAMELEON_CONFIG_H_HAS_BEEN_INCLUDED
#define CHAMELEON_VERSION_MAJOR @CHAMELEON_VERSION_MAJOR@
#define CHAMELEON_VERSION_MINOR @CHAMELEON_VERSION_MINOR@
......@@ -43,24 +43,8 @@
#cmakedefine CHAMELEON_USE_CUBLAS_V2
#cmakedefine CHAMELEON_USE_MAGMA
/* For BLAS Fortran mangling */
#cmakedefine ADD_
/* Profiling */
#cmakedefine HAVE_STARPU_FXT_PROFILING
/* Simulating */
#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 @@
/* ****************************************************************************
* MORSE types and constants
*/
#include "morse_config.h"
#include "chameleon_config.h"
#include "morse_types.h"
#include "morse_struct.h"
#include "morse_constants.h"
......
......@@ -25,6 +25,8 @@
#ifndef _MORSE_SIMULATE_H_
#define _MORSE_SIMULATE_H_
#include "include/chameleon_config.h"
/* we need this when starpu is compiled with simgrid enabled */
#if defined(CHAMELEON_SCHED_STARPU) && defined(CHAMELEON_SIMULATION)
#include <starpu_simgrid_wrap.h>
......
......@@ -28,6 +28,7 @@
#ifndef _MORSE_STRUCT_H_
#define _MORSE_STRUCT_H_
#include "include/chameleon_config.h"
#include "morse_types.h"
/** ****************************************************************************
......
......@@ -26,8 +26,8 @@
**/
#include "runtime/starpu/include/morse_starpu.h"
#ifdef CHAMELEON_USE_STARPU_DATA_WONT_USE
#elif defined CHAMELEON_USE_STARPU_IDLE_PREFETCH
#ifdef USE_STARPU_DATA_WONT_USE
#elif defined USE_STARPU_IDLE_PREFETCH
static void data_flush(void *handle)
{
starpu_data_idle_prefetch_on_node(handle, STARPU_MAIN_RAM, 1);
......@@ -63,9 +63,9 @@ void MORSE_TASK_dataflush(const MORSE_option_t *options,
if ( A->myrank == A->get_rankof( A, Am, An ) )
{
/* 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);
#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);
#else
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
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
#ifdef STARPU_MALLOC_SIMULATION_FOLDED
| STARPU_MALLOC_SIMULATION_FOLDED
......
......@@ -32,6 +32,8 @@
#ifndef _MORSE_STARPU_H_
#define _MORSE_STARPU_H_
#include "include/chameleon_config.h"
#if defined(CHAMELEON_USE_MPI)
#include <starpu_mpi.h>
#else
......
......@@ -28,6 +28,7 @@
#ifndef _CODELETS_H_
#define _CODELETS_H_
#include "include/chameleon_config.h"
#include "runtime_codelet_profile.h"
//#undef STARPU_CUDA_ASYNC
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment