Skip to content

Commit

Permalink
Daint: Update daint modules after upgrade (CUDA 11.0) (#1613)
Browse files Browse the repository at this point in the history
2 tests disabled:
- boundary_conditions_gpu because of #1522
- test_tuple.cu conversion constructor for Clang 11.0.0 because of #1615
  • Loading branch information
havogt authored Mar 23, 2021
1 parent b0611d6 commit fe1b5d4
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 19 deletions.
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,18 @@ The GridTools libraries are currently nightly tested with the following compiler

| Compiler | Backend | Tested on | Comments |
| --- | --- | --- | --- |
| Cray clang version 10.0.2 | all backends | Piz Daint | P100 GPU |
| GNU 8.3.0 + NVCC 10.2 | all backends | Piz Daint | P100 GPU |
| GNU 8.3.0 + NVCC 11.0 | all backends | Dom | P100 GPU |
| Cray clang version 11.0.0 | all backends | Piz Daint | P100 GPU |
| GNU 9.3.0 + NVCC 11.0 | all backends | Piz Daint | P100 GPU |
| GNU 9.3.0 + NVCC 11.0 | all backends | Dom | P100 GPU |
| Clang 7.0.1 + NVCC 10.2 | all backends | Piz Daint | GPU compilation in NVCC-CUDA mode, P100 GPU |
| GNU 8.3.0 + NVCC 10.1 | all backends | Tsa | V100 GPU |

##### Known issues

Some tests are failing with ROCm3.8.0 (Clang 11).
- Some tests are failing with ROCm3.8.0 (Clang 11).
- CUDA 11.0.x has a severe issue, see https://github.com/GridTools/gridtools/issues/1522. Under certain conditions, GridTools code will not compile for this version of CUDA. CUDA 11.1.x and later should not be affected by this issue.
- Cray Clang version 11.0.0 has a problem with the `gridtools::tuple` conversion constructor, see https://github.com/GridTools/gridtools/issues/1615.


##### Officially not supported (no workarounds implemented and planned)

Expand Down
4 changes: 2 additions & 2 deletions jenkins/envs/daint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ function module() {

module load daint-gpu
module load cudatoolkit
module rm CMake
module load /users/jenkins/easybuild/daint/haswell/modules/all/CMake/3.14.5
module load CMake


export BOOST_ROOT=/project/c14/install/daint/boost/boost_1_67_0/
export CUDATOOLKIT_HOME=$CUDA_PATH
Expand Down
3 changes: 2 additions & 1 deletion jenkins/envs/daint_nvcc_clang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

source $(dirname "$BASH_SOURCE")/daint.sh

module switch cudatoolkit/10.2.89_3.29-7.0.2.1_3.5__g67354b4
module load /users/vogtha/modules/compilers/clang/7.0.1
module load gcc
module load gcc/8.3.0

export CXX=$(which clang++)
export CC=$(which clang)
Expand Down
1 change: 1 addition & 0 deletions jenkins/envs/daint_nvcc_gcc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
source $(dirname "$BASH_SOURCE")/daint.sh

module swap PrgEnv-cray PrgEnv-gnu
module load cdt-cuda

if [ "$build_type" != "debug" ]; then
module load HPX/1.5.0-CrayGNU-20.08-cuda
Expand Down
4 changes: 1 addition & 3 deletions jenkins/envs/dom_nvcc_gcc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@

source $(dirname "$BASH_SOURCE")/dom.sh

module switch cudatoolkit cudatoolkit/11.0.2_3.33-7.0.2.1_3.1__g1ba0366

module swap PrgEnv-cray PrgEnv-gnu
module switch gcc/8.3.0
module load cdt-cuda

export CXX=$(which CC)
export CC=$(which cc)
Expand Down
22 changes: 14 additions & 8 deletions tests/regression/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -98,19 +98,25 @@ function(gridtools_add_layout_transformation_test)
endfunction()

function(gridtools_add_boundary_conditions_test)
set(ENABLED_GT_GCL_ARCHS)
foreach(arch IN LISTS GT_GCL_ARCHS)
set(tgt bc_testee_${arch})
add_library(${tgt} INTERFACE)
target_link_libraries(${tgt} INTERFACE boundaries_${arch})
if (arch STREQUAL gpu)
target_compile_definitions(${tgt} INTERFACE GT_GCL_GPU)
elseif (arch STREQUAL cpu)
target_compile_definitions(${tgt} INTERFACE GT_GCL_CPU)
if(arch STREQUAL gpu AND CMAKE_BUILD_TYPE STREQUAL Debug AND CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 11.0 AND CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.1)
message(WARNING "CUDA 11.0.x is buggy, see https://github.com/GridTools/gridtools/issues/1522, skipping test boundary_conditions_gpu.")
else()
list(APPEND ENABLED_GT_GCL_ARCHS ${arch})
set(tgt bc_testee_${arch})
add_library(${tgt} INTERFACE)
target_link_libraries(${tgt} INTERFACE boundaries_${arch})
if (arch STREQUAL gpu)
target_compile_definitions(${tgt} INTERFACE GT_GCL_GPU)
elseif (arch STREQUAL cpu)
target_compile_definitions(${tgt} INTERFACE GT_GCL_CPU)
endif()
endif()
endforeach()
gridtools_add_regression_test(boundary_conditions
LIB_PREFIX bc_testee
KEYS ${GT_GCL_ARCHS}
KEYS ${ENABLED_GT_GCL_ARCHS}
SOURCES boundary_conditions.cpp
PERFTEST)
endfunction()
Expand Down
6 changes: 5 additions & 1 deletion tests/unit_tests/common/test_tuple.cu
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ namespace gridtools {
EXPECT_EQ(2.5, tuple_util::host::get<1>(testee));
}

#if defined(__clang__) && (__clang_major__ == 11 && __clang_minor__ == 0 && __clang_patchlevel__ == 0)
// crashes Clang 11.0.0, see https://github.com/GridTools/gridtools/issues/1615
#else
__device__ tuple<int, double> element_wise_conversion_ctor(char x, char y) { return {x, y}; }

TEST(tuple, element_wise_conversion_ctor) {
Expand All @@ -51,6 +54,7 @@ namespace gridtools {
EXPECT_EQ('a', tuple_util::host::get<0>(testee));
EXPECT_EQ('b', tuple_util::host::get<1>(testee));
}
#endif
} // namespace gridtools

#include "test_tuple.cpp"
//#include "test_tuple.cpp"

0 comments on commit fe1b5d4

Please sign in to comment.