Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 9df0e60d authored by LISITO Alycia's avatar LISITO Alycia Committed by Mathieu Faverge
Browse files

zgetrf/cmake: add a test to detect if STARPU_NONE is correctly defined to be...

zgetrf/cmake: add a test to detect if STARPU_NONE is correctly defined to be used with getrf algortihm or not
parent b7fb48cf
No related branches found
No related tags found
1 merge request!478Reduction
......@@ -33,6 +33,7 @@ cmake_minimum_required(VERSION 3.5)
include(CheckSymbolExists)
include(CheckStructHasMember)
include(CheckCSourceRuns)
set(CHAMELEON_STARPU_VERSION "1.3" CACHE STRING "necessary STARPU API version")
......@@ -90,6 +91,25 @@ if ( STARPU_FOUND )
message("-- ${Blue}Add definition HAVE_STARPU_REUSE_DATA_ON_NODE${ColourReset}")
endif()
# Check if STARPU_NONE equals 0 or not
set(C_STARPU_NONE_NONZERO "
#include <stdio.h>
#include <stdint.h>
#include <starpu.h>
int main() {
if (STARPU_NONE == 0)
return 1;
else
return 0;
}
")
unset(HAVE_STARPU_NONE_NONZERO CACHE)
check_c_source_runs("${C_STARPU_NONE_NONZERO}" HAVE_STARPU_NONE_NONZERO)
if ( HAVE_STARPU_NONE_NONZERO )
message("-- ${Blue}Add definition HAVE_STARPU_NONE_NONZERO${ColourReset}")
endif()
if (CHAMELEON_USE_MPI)
# Add MPI in case StarPU don't have a public dependency on it
check_function_exists(starpu_mpi_init_conf HAVE_STARPU_MPI_INIT_CONF)
......
......@@ -82,7 +82,7 @@ INSERT_TASK_zgetrf_panel_offdiag_batched( const RUNTIME_option_t *options,
if ( rankA != A->myrank ) {
return;
}
#if !defined ( HAVE_STARPU_NONE_NONZERO )
#if !defined(HAVE_STARPU_NONE_NONZERO)
/* STARPU_NONE can't be equal to 0 */
fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
assert( 0 );
......@@ -146,7 +146,7 @@ INSERT_TASK_zgetrf_panel_offdiag_batched_flush( const RUNTIME_option_t *options,
void (*callback)(void*) = NULL;
struct cl_getrf_batched_args_t *clargs = *clargs_ptr;
int rankA = A->myrank;
#if !defined ( HAVE_STARPU_NONE_NONZERO )
#if !defined(HAVE_STARPU_NONE_NONZERO)
/* STARPU_NONE can't be equal to 0 */
fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
assert( 0 );
......@@ -254,7 +254,7 @@ INSERT_TASK_zgetrf_panel_blocked_batched( const RUNTIME_option_t *options,
int accessU, access_npiv, access_ipiv, access_ppiv;
struct cl_getrf_batched_args_t *clargs = *clargs_ptr;
int rankA = A->get_rankof(A, Am, An);
#if !defined ( HAVE_STARPU_NONE_NONZERO )
#if !defined(HAVE_STARPU_NONE_NONZERO)
/* STARPU_NONE can't be equal to 0 */
fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
assert( 0 );
......@@ -359,7 +359,7 @@ INSERT_TASK_zgetrf_panel_blocked_batched_flush( const RUNTIME_option_t *options,
void (*callback)(void*) = NULL;
struct cl_getrf_batched_args_t *clargs = *clargs_ptr;
int rankA = A->myrank;
#if !defined ( HAVE_STARPU_NONE_NONZERO )
#if !defined(HAVE_STARPU_NONE_NONZERO)
/* STARPU_NONE can't be equal to 0 */
fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
assert( 0 );
......
......@@ -98,7 +98,7 @@ void INSERT_TASK_zgetrf_blocked_diag( const RUNTIME_option_t *options,
void (*callback)(void*) = options->profiling ? cl_zgetrf_blocked_diag_callback : NULL;
const char *cl_name = "zgetrf_blocked_diag";
int rankA = A->get_rankof(A, Am, An);
#if !defined ( HAVE_STARPU_NONE_NONZERO )
#if !defined(HAVE_STARPU_NONE_NONZERO)
/* STARPU_NONE can't be equal to 0 */
fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
assert( 0 );
......@@ -228,7 +228,7 @@ void INSERT_TASK_zgetrf_blocked_offdiag( const RUNTIME_option_t *options,
int access_ppiv = ( h == 0 ) ? STARPU_NONE : STARPU_R;
int accessU = ((h%ib == 0) && (h > 0)) ? STARPU_R : STARPU_NONE;
int rankA = A->get_rankof(A, Am, An);
#if !defined ( HAVE_STARPU_NONE_NONZERO )
#if !defined(HAVE_STARPU_NONE_NONZERO)
/* STARPU_NONE can't be equal to 0 */
fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
assert( 0 );
......
......@@ -86,7 +86,8 @@ void INSERT_TASK_zgetrf_percol_diag( const RUNTIME_option_t *options,
void (*callback)(void*) = options->profiling ? cl_zgetrf_percol_diag_callback : NULL;
const char *cl_name = "zgetrf_percol_diag";
int rankA = A->get_rankof(A, Am, An);
#if !defined ( HAVE_STARPU_NONE_NONZERO )
#if !defined(HAVE_STARPU_NONE_NONZERO)
/* STARPU_NONE can't be equal to 0 */
fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
assert( 0 );
......@@ -172,7 +173,7 @@ void INSERT_TASK_zgetrf_percol_offdiag( const RUNTIME_option_t *options,
int access_npiv = ( h == ipiv->n ) ? STARPU_R : STARPU_REDUX;
int access_ppiv = ( h == 0 ) ? STARPU_NONE : STARPU_R;
int rankA = A->get_rankof(A, Am, An);
#if !defined ( HAVE_STARPU_NONE_NONZERO )
#if !defined(HAVE_STARPU_NONE_NONZERO)
/* STARPU_NONE can't be equal to 0 */
fprintf( stderr, "INSERT_TASK_zgetrf_percol_diag: STARPU_NONE can not be equal to 0\n" );
assert( 0 );
......
......@@ -40,6 +40,7 @@
#cmakedefine HAVE_STARPU_SET_LIMIT_SUBMITTED_TASKS
#cmakedefine HAVE_STARPU_REUSE_DATA_ON_NODE
#cmakedefine HAVE_STARPU_PARALLEL_WORKER
#cmakedefine HAVE_STARPU_NONE_NONZERO
#cmakedefine HAVE_STARPU_MPI_DATA_MIGRATE
#cmakedefine HAVE_STARPU_MPI_DATA_REGISTER
......
......@@ -88,28 +88,25 @@ if (NOT CHAMELEON_SIMULATION)
if ( CHAMELEON_SCHED_STARPU )
add_test( test_${cat}_${prec}getrf_nopivpercol ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 --diag=ChamUnit -f input/getrf_nopiv.in )
set_tests_properties( test_${cat}_${prec}getrf_nopivpercol
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=nopivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=1" )
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=nopivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=0" )
add_test( test_${cat}_${prec}getrf_ppivpercol ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf_nopiv.in )
set_tests_properties( test_${cat}_${prec}getrf_ppivpercol
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=1" )
if ( HAVE_STARPU_NONE_NONZERO )
add_test( test_${cat}_${prec}getrf_ppivpercol ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf_nopiv.in )
set_tests_properties( test_${cat}_${prec}getrf_ppivpercol
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=0" )
if ( ${cat} STREQUAL "shm" )
add_test( test_${cat}_${prec}getrf_ppivpercol_batch ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf_nopiv.in )
set_tests_properties( test_${cat}_${prec}getrf_ppivpercol_batch
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppivpercolumn;CHAMELEON_GETRF_BATCH_SIZE=6" )
endif()
add_test( test_${cat}_${prec}getrf_ppiv ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf.in )
set_tests_properties( test_${cat}_${prec}getrf_ppiv
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppiv;CHAMELEON_GETRF_BATCH_SIZE=1" )
add_test( test_${cat}_${prec}getrf_ppiv ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf.in )
set_tests_properties( test_${cat}_${prec}getrf_ppiv
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppiv;CHAMELEON_GETRF_BATCH_SIZE=0" )
if ( ${cat} STREQUAL "shm" )
add_test( test_${cat}_${prec}getrf_ppiv_batch ${PREFIX} ${CMD} -c -t ${THREADS} -g ${gpus} -P 1 -f input/getrf.in )
set_tests_properties( test_${cat}_${prec}getrf_ppiv_batch
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppiv;CHAMELEON_GETRF_BATCH_SIZE=6" )
PROPERTIES ENVIRONMENT "CHAMELEON_GETRF_ALGO=ppiv;CHAMELEON_GETRF_BATCH_SIZE=6" )
endif()
endif()
list( REMOVE_ITEM TESTSTMP print gepdf_qr )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment