From c9fdfacb963beb1059754c1f781f08fd3ad7cf67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= Date: Thu, 1 Oct 2020 21:18:38 +0200 Subject: [PATCH 1/2] .gitlab-ci.yml: switch to building in Docker containers --- .gitlab-ci.yml | 74 ++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fc5b04679..cdc43329e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,9 +1,9 @@ # vim: tabstop=4 shiftwidth=4 softtabstop=4 -before_script: - - which g++ - - which cmake - - which ninja +default: + image: "archlinux/devel-tnl:latest" + tags: + - docker stages: - build @@ -32,9 +32,6 @@ stages: # base for OpenMP+MPI builds .openmp_mpi: - tags: - - openmp - - mpi variables: WITH_OPENMP: "yes" WITH_MPI: "yes" @@ -43,9 +40,8 @@ stages: extends: .openmp_mpi # tags are overridden, not merged... tags: - - gpu - - openmp - - mpi + - docker + - nvidia # base for Clang builds .clang: @@ -54,15 +50,6 @@ stages: CXX: clang++ CC: clang CUDA_HOST_COMPILER: clang++ - tags: - - clang - -.clang_mpi: - extends: .clang - # tags are overridden, not merged... - tags: - - clang - - mpi # template for build jobs .build_template: @@ -81,6 +68,9 @@ stages: - export CTEST_OUTPUT_ON_FAILURE=1 - export CTEST_PARALLEL_LEVEL=4 - export OMP_NUM_THREADS=4 + # running as root does not matter inside Docker containers + - export OMPI_ALLOW_RUN_AS_ROOT=1 + - export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 - mkdir -p "./builddir/$CI_JOB_NAME" - pushd "./builddir/$CI_JOB_NAME" - cmake ../.. @@ -142,7 +132,8 @@ cuda_tests_Debug: extends: .build_template stage: build:cuda tags: - - gpu + - docker + - nvidia variables: <<: *default_cmake_flags WITH_CUDA: "yes" @@ -153,7 +144,8 @@ cuda_tests_Release: extends: .build_template stage: build:cuda tags: - - gpu + - docker + - nvidia variables: <<: *default_cmake_flags WITH_CUDA: "yes" @@ -165,7 +157,8 @@ cuda_matrix_tests_Debug: extends: .build_template stage: build:cuda tags: - - gpu + - docker + - nvidia variables: <<: *default_cmake_flags WITH_CUDA: "yes" @@ -176,7 +169,8 @@ cuda_matrix_tests_Release: extends: .build_template stage: build:cuda tags: - - gpu + - docker + - nvidia variables: <<: *default_cmake_flags WITH_CUDA: "yes" @@ -188,7 +182,8 @@ cuda_examples_Debug: extends: .build_template stage: build:cuda tags: - - gpu + - docker + - nvidia variables: <<: *default_cmake_flags WITH_CUDA: "yes" @@ -205,7 +200,8 @@ cuda_examples_Release: extends: .build_template stage: build:cuda tags: - - gpu + - docker + - nvidia variables: <<: *default_cmake_flags WITH_CUDA: "yes" @@ -217,7 +213,8 @@ cuda_benchmarks_tools_python_Debug: extends: .build_template stage: build:cuda tags: - - gpu + - docker + - nvidia variables: <<: *default_cmake_flags WITH_CUDA: "yes" @@ -230,7 +227,8 @@ cuda_benchmarks_tools_python_Release: extends: .build_template stage: build:cuda tags: - - gpu + - docker + - nvidia variables: <<: *default_cmake_flags WITH_CUDA: "yes" @@ -430,42 +428,42 @@ clang_benchmarks_tools_python_Release: clang_mpi_tests_Debug: extends: - mpi_tests_Debug - - .clang_mpi + - .clang clang_mpi_tests_Release: extends: - mpi_tests_Release - - .clang_mpi + - .clang clang_mpi_matrix_tests_Debug: extends: - mpi_matrix_tests_Debug - - .clang_mpi + - .clang clang_mpi_matrix_tests_Release: extends: - mpi_matrix_tests_Release - - .clang_mpi + - .clang clang_mpi_examples_Debug: extends: - mpi_examples_Debug - - .clang_mpi + - .clang clang_mpi_examples_Release: extends: - mpi_examples_Release - - .clang_mpi + - .clang clang_mpi_benchmarks_tools_python_Debug: extends: - mpi_benchmarks_tools_python_Debug - - .clang_mpi + - .clang clang_mpi_benchmarks_tools_python_Release: extends: - mpi_benchmarks_tools_python_Release - - .clang_mpi + - .clang @@ -487,8 +485,8 @@ build documentation: artifacts: paths: - ./Documentation/html/ - tags: - - doxygen +# tags: +# - doxygen deploy documentation: stage: deploy @@ -509,5 +507,5 @@ deploy documentation: script: - ./Documentation/deploy tags: - - doxygen +# - doxygen - deploy_key -- GitLab From 2c12430fcd0b39cc0b28815fc992e6528e95071a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= Date: Sat, 3 Oct 2020 10:27:26 +0200 Subject: [PATCH 2/2] Fixed MeshEntity for CUDA 11.1 --- CMakeLists.txt | 2 +- src/TNL/Meshes/MeshEntity.h | 4 ++-- src/TNL/Meshes/MeshEntity.hpp | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 790f7188c..e9e505a6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -225,7 +225,7 @@ if( ${WITH_CUDA} ) # disable false compiler warnings # reference for the -Xcudafe --diag_suppress and --display_error_number flags: https://stackoverflow.com/a/54142937 # incomplete list of tokens: http://www.ssl.berkeley.edu/~jimm/grizzly_docs/SSL/opt/intel/cc/9.0/lib/locale/en_US/mcpcom.msg - set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ; -Wno-deprecated-gpu-targets --expt-relaxed-constexpr --expt-extended-lambda -Xcudafe --diag_suppress=code_is_unreachable -Xcudafe --diag_suppress=loop_not_reachable -Xcudafe --diag_suppress=implicit_return_from_non_void_function -Xcudafe --diag_suppress=unsigned_compare_with_zero -Xcudafe --diag_suppress=2906 -Xcudafe --diag_suppress=2913 -Xcudafe --diag_suppress=2886 -Xcudafe --diag_suppress=2929 -Xcudafe --diag_suppress=2977 -Xcudafe --diag_suppress=3057 -Xcudafe --display_error_number) + set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ; -Wno-deprecated-gpu-targets --expt-relaxed-constexpr --expt-extended-lambda -Xcudafe --diag_suppress=code_is_unreachable -Xcudafe --diag_suppress=loop_not_reachable -Xcudafe --diag_suppress=implicit_return_from_non_void_function -Xcudafe --diag_suppress=unsigned_compare_with_zero -Xcudafe --diag_suppress=2906 -Xcudafe --diag_suppress=2913 -Xcudafe --diag_suppress=2886 -Xcudafe --diag_suppress=2929 -Xcudafe --diag_suppress=2977 -Xcudafe --diag_suppress=3057 -Xcudafe --diag_suppress=3124 -Xcudafe --display_error_number) # temporarily disable host-compler warnings about VLAs, which are caused by nvcc's modifications to the source code set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} ; -Xcompiler -Wno-vla) # Select GPU architecture diff --git a/src/TNL/Meshes/MeshEntity.h b/src/TNL/Meshes/MeshEntity.h index 744febe5f..3df3f1034 100644 --- a/src/TNL/Meshes/MeshEntity.h +++ b/src/TNL/Meshes/MeshEntity.h @@ -90,8 +90,8 @@ class MeshEntity template< int Subdimension > __cuda_callable__ - const typename SubentityTraits< Subdimension >::OrientationArrayType& - getSubentityOrientation( const LocalIndexType localIndex ) const; + auto getSubentityOrientation( const LocalIndexType localIndex ) const + -> const typename SubentityTraits< Subdimension >::OrientationArrayType&; /**** * Superentities diff --git a/src/TNL/Meshes/MeshEntity.hpp b/src/TNL/Meshes/MeshEntity.hpp index 36ced6134..67ee08377 100644 --- a/src/TNL/Meshes/MeshEntity.hpp +++ b/src/TNL/Meshes/MeshEntity.hpp @@ -129,9 +129,10 @@ template< typename MeshConfig, typename EntityTopology > template< int Subdimension > __cuda_callable__ -const typename MeshEntity< MeshConfig, Device, EntityTopology >::template SubentityTraits< Subdimension >::OrientationArrayType& +auto MeshEntity< MeshConfig, Device, EntityTopology >:: getSubentityOrientation( const LocalIndexType localIndex ) const + -> const typename SubentityTraits< Subdimension >::OrientationArrayType& { TNL_ASSERT_TRUE( meshPointer, "meshPointer was not set" ); return meshPointer->template getSubentityOrientation< getEntityDimension(), Subdimension >( this->getIndex(), localIndex ); -- GitLab