gt: link gtl on cray amd systems, more iters
Option to disable managed tests, TEST_MANAGED=OFF cmake var
This commit is contained in:
@@ -3,11 +3,13 @@ cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
|
|||||||
# create project
|
# create project
|
||||||
project(mpi-daxpy-test)
|
project(mpi-daxpy-test)
|
||||||
|
|
||||||
|
option(TEST_MANAGED "Test managed memory" ON)
|
||||||
|
|
||||||
# add dependencies
|
# add dependencies
|
||||||
include(cmake/CPM.cmake)
|
include(cmake/CPM.cmake)
|
||||||
CPMFindPackage(NAME gtensor
|
CPMFindPackage(NAME gtensor
|
||||||
GITHUB_REPOSITORY bd4/gtensor
|
GITHUB_REPOSITORY wdmapp/gtensor
|
||||||
GIT_TAG "pr/view-contiguous"
|
GIT_TAG "main"
|
||||||
OPTIONS "GTENSOR_ENABLE_BLAS ON")
|
OPTIONS "GTENSOR_ENABLE_BLAS ON")
|
||||||
|
|
||||||
set(MPI_CXX_SKIP_MPICXX ON)
|
set(MPI_CXX_SKIP_MPICXX ON)
|
||||||
@@ -32,7 +34,17 @@ add_executable(mpi_stencil2d_gt)
|
|||||||
target_sources(mpi_stencil2d_gt PRIVATE mpi_stencil2d_gt.cc)
|
target_sources(mpi_stencil2d_gt PRIVATE mpi_stencil2d_gt.cc)
|
||||||
target_link_libraries(mpi_stencil2d_gt PRIVATE gtensor::gtensor)
|
target_link_libraries(mpi_stencil2d_gt PRIVATE gtensor::gtensor)
|
||||||
target_link_libraries(mpi_stencil2d_gt PRIVATE MPI::MPI_CXX)
|
target_link_libraries(mpi_stencil2d_gt PRIVATE MPI::MPI_CXX)
|
||||||
target_compile_features(mpi_stencil2d_gt PRIVATE cxx_std_17)
|
#target_compile_features(mpi_stencil2d_gt PRIVATE cxx_std_17)
|
||||||
|
if (TEST_MANAGED)
|
||||||
|
message(STATUS "${PROJECT_NAME}: Enabling managed memory")
|
||||||
|
target_compile_definitions(mpi_stencil2d_gt PRIVATE TEST_MANAGED)
|
||||||
|
endif()
|
||||||
|
if (GTENSOR_DEVICE STREQUAL "hip" AND DEFINED ENV{PE_MPICH_GTL_DIR_amd_gfx90a})
|
||||||
|
message(STATUS "${PROJECT_NAME}: Linking gtl libs for HIP backend")
|
||||||
|
target_link_options(mpi_stencil2d_gt PRIVATE
|
||||||
|
$ENV{PE_MPICH_GTL_DIR_amd_gfx90a}
|
||||||
|
$ENV{PE_MPICH_GTL_LIBS_amd_gfx90a})
|
||||||
|
endif()
|
||||||
|
|
||||||
if ("${GTENSOR_DEVICE}" STREQUAL "cuda")
|
if ("${GTENSOR_DEVICE}" STREQUAL "cuda")
|
||||||
set_source_files_properties(mpi_daxpy_gt.cc
|
set_source_files_properties(mpi_daxpy_gt.cc
|
||||||
|
|||||||
@@ -653,8 +653,8 @@ int main(int argc, char** argv)
|
|||||||
|
|
||||||
// Note: domain will be n_global x n_global plus ghost points in one dimension
|
// Note: domain will be n_global x n_global plus ghost points in one dimension
|
||||||
int n_global = 8 * 1024;
|
int n_global = 8 * 1024;
|
||||||
int n_iter = 100;
|
int n_iter = 1000;
|
||||||
int n_warmup = 5;
|
int n_warmup = 10;
|
||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
n_global = std::atoi(argv[1]) * 1024;
|
n_global = std::atoi(argv[1]) * 1024;
|
||||||
@@ -697,28 +697,36 @@ int main(int argc, char** argv)
|
|||||||
n_global, n_iter, true, 5);
|
n_global, n_iter, true, 5);
|
||||||
test_deriv<gt::space::device, 0>(device_id, vendor_id, world_size, world_rank,
|
test_deriv<gt::space::device, 0>(device_id, vendor_id, world_size, world_rank,
|
||||||
n_global, n_iter, false, 5);
|
n_global, n_iter, false, 5);
|
||||||
|
#ifdef TEST_MANAGED
|
||||||
test_deriv<gt::space::managed, 0>(device_id, vendor_id, world_size,
|
test_deriv<gt::space::managed, 0>(device_id, vendor_id, world_size,
|
||||||
world_rank, n_global, n_iter, true, 5);
|
world_rank, n_global, n_iter, true, 5);
|
||||||
test_deriv<gt::space::managed, 0>(device_id, vendor_id, world_size,
|
test_deriv<gt::space::managed, 0>(device_id, vendor_id, world_size,
|
||||||
world_rank, n_global, n_iter, false, 5);
|
world_rank, n_global, n_iter, false, 5);
|
||||||
|
#endif
|
||||||
|
|
||||||
test_deriv<gt::space::device, 1>(device_id, vendor_id, world_size, world_rank,
|
test_deriv<gt::space::device, 1>(device_id, vendor_id, world_size, world_rank,
|
||||||
n_global, n_iter, true, 5);
|
n_global, n_iter, true, 5);
|
||||||
test_deriv<gt::space::device, 1>(device_id, vendor_id, world_size, world_rank,
|
test_deriv<gt::space::device, 1>(device_id, vendor_id, world_size, world_rank,
|
||||||
n_global, n_iter, false, 5);
|
n_global, n_iter, false, 5);
|
||||||
|
#ifdef TEST_MANAGED
|
||||||
test_deriv<gt::space::managed, 1>(device_id, vendor_id, world_size,
|
test_deriv<gt::space::managed, 1>(device_id, vendor_id, world_size,
|
||||||
world_rank, n_global, n_iter, true, 5);
|
world_rank, n_global, n_iter, true, 5);
|
||||||
test_deriv<gt::space::managed, 1>(device_id, vendor_id, world_size,
|
test_deriv<gt::space::managed, 1>(device_id, vendor_id, world_size,
|
||||||
world_rank, n_global, n_iter, false, 5);
|
world_rank, n_global, n_iter, false, 5);
|
||||||
|
#endif
|
||||||
|
|
||||||
test_sum<gt::space::device, 0>(device_id, vendor_id, world_size, world_rank,
|
test_sum<gt::space::device, 0>(device_id, vendor_id, world_size, world_rank,
|
||||||
n_global, n_iter, 5);
|
n_global, n_iter, 5);
|
||||||
|
#ifdef TEST_MANAGED
|
||||||
test_sum<gt::space::managed, 0>(device_id, vendor_id, world_size, world_rank,
|
test_sum<gt::space::managed, 0>(device_id, vendor_id, world_size, world_rank,
|
||||||
n_global, n_iter, 5);
|
n_global, n_iter, 5);
|
||||||
|
#endif
|
||||||
test_sum<gt::space::device, 1>(device_id, vendor_id, world_size, world_rank,
|
test_sum<gt::space::device, 1>(device_id, vendor_id, world_size, world_rank,
|
||||||
n_global, n_iter, 5);
|
n_global, n_iter, 5);
|
||||||
|
#ifdef TEST_MANAGED
|
||||||
test_sum<gt::space::managed, 1>(device_id, vendor_id, world_size, world_rank,
|
test_sum<gt::space::managed, 1>(device_id, vendor_id, world_size, world_rank,
|
||||||
n_global, n_iter, 5);
|
n_global, n_iter, 5);
|
||||||
|
#endif
|
||||||
|
|
||||||
MPI_Finalize();
|
MPI_Finalize();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user