diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fc5b04679a89e0b92e6298497e48387351329a6e..cdc43329e71816b6c8a2043c1fd0f9f3f21cd888 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 diff --git a/CMakeLists.txt b/CMakeLists.txt index 790f7188c873f6ddd4dea20100afa7fc047d16b6..e9e505a6b1fa97b6e12d2e0672028880708694c7 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 744febe5f0a0e4960969dada45b8d574ea5b4faa..3df3f103456513065088a4e3a21803d1614bf427 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 36ced6134e18445413e0b484b9204f94754c5263..67ee0837745364484f0af1de7ca61ed5fa5bee11 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 );