diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt index 3ba1927ecdca670bba780e27990bfc3ab46ec0b7..98cde2e99338479488dd82191307eb2923c90dc4 100644 --- a/runtime/starpu/CMakeLists.txt +++ b/runtime/starpu/CMakeLists.txt @@ -28,6 +28,8 @@ ### cmake_minimum_required(VERSION 3.1) +include(CheckStructHasMember) + set(CHAMELEON_STARPU_VERSION "1.3" CACHE STRING "necessary STARPU API version") find_package(STARPU ${CHAMELEON_STARPU_VERSION} REQUIRED) @@ -38,6 +40,7 @@ if ( STARPU_FOUND ) message("-- ${Blue}Add definition CHAMELEON_SCHED_STARPU" " - Activate StarPU in Chameleon${ColourReset}") get_target_property(CMAKE_REQUIRED_LIBRARIES MORSE::STARPU INTERFACE_LINK_LIBRARIES) + get_target_property(CMAKE_REQUIRED_INCLUDES MORSE::STARPU INTERFACE_INCLUDE_DIRECTORIES) check_function_exists(starpu_data_idle_prefetch_on_node HAVE_STARPU_IDLE_PREFETCH) if ( HAVE_STARPU_IDLE_PREFETCH ) message("-- ${Blue}Add definition HAVE_STARPU_IDLE_PREFETCH${ColourReset}") @@ -70,6 +73,10 @@ if ( STARPU_FOUND ) if ( HAVE_STARPU_DATA_PEEK ) message("-- ${Blue}Add definition HAVE_STARPU_DATA_PEEK${ColourReset}") endif() + check_struct_has_member( "struct starpu_data_interface_ops" reuse_data_on_node "starpu_data_interfaces.h" HAVE_STARPU_REUSE_DATA_ON_NODE LANGUAGE "C" ) + if ( HAVE_STARPU_REUSE_DATA_ON_NODE ) + message("-- ${Blue}Add definition HAVE_STARPU_REUSE_DATA_ON_NODE${ColourReset}") + endif() if (CHAMELEON_USE_MPI) # Add MPI in case StarPU don't have a public dependency on it @@ -120,6 +127,7 @@ if ( STARPU_FOUND ) endif() endif() unset(CMAKE_REQUIRED_LIBRARIES) + unset(CMAKE_REQUIRED_INCLUDES) endif ( STARPU_FOUND ) configure_file("include/chameleon_starpu.h.in" diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in index e9fc23d52967610ab53ad3a99fd2736f80041782..3156108174b12ea2f34637d24a2bc7b66458a192 100644 --- a/runtime/starpu/include/chameleon_starpu.h.in +++ b/runtime/starpu/include/chameleon_starpu.h.in @@ -34,6 +34,7 @@ #cmakedefine HAVE_STARPU_DATA_SET_OOC_FLAG #cmakedefine HAVE_STARPU_INTERFACE_COPY2D #cmakedefine HAVE_STARPU_DATA_PEEK +#cmakedefine HAVE_STARPU_REUSE_DATA_ON_NODE #cmakedefine HAVE_STARPU_MPI_DATA_MIGRATE #cmakedefine HAVE_STARPU_MPI_DATA_REGISTER #cmakedefine HAVE_STARPU_MPI_COMM_RANK