mirror of https://github.com/QMCPACK/qmcpack.git
1056 lines
48 KiB
YAML
1056 lines
48 KiB
YAML
# Copyright 2020-2024 Alfredo A. Correa
|
|
|
|
# Install docker (for local CI or to set up CI machine)
|
|
# sudo apt install docker.io
|
|
# Install gitlab-runner
|
|
# curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
|
|
# sudo apt-get install gitlab-runner
|
|
|
|
image: debian:stable
|
|
|
|
workflow:
|
|
auto_cancel:
|
|
on_new_commit: interruptible
|
|
|
|
variables:
|
|
GIT_SUBMODULE_STRATEGY: recursive
|
|
CODECOV_TOKEN: "999feb5b-a599-4d02-b9c5-46d977247f3a"
|
|
RT_VERSION: "0.1"
|
|
NVIDIA_DISABLE_REQUIRE: 1
|
|
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
|
|
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
|
|
msbuild: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe'
|
|
|
|
g++: # debian-stable: default is gcc 12.2.0 as of April 2024
|
|
stage: build
|
|
interruptible: false
|
|
tags:
|
|
- non-shared
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev liblapack-dev libfftw3-dev pkg-config
|
|
- g++ --version
|
|
- mkdir build && cd build
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-D_GLIBCXX_DEBUG=1"
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure -T Test
|
|
|
|
g++-m32:
|
|
stage: build
|
|
image: debian:latest
|
|
tags:
|
|
- non-shared
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates g++ g++-multilib cmake make tar wget
|
|
- wget https://downloads.sourceforge.net/project/boost/boost/1.84.0/boost_1_84_0.tar.gz --no-verbose # 1.70 doesn't install boost timer well, there is no version 1.71 in sourceforge
|
|
- tar -xf boost_1_84_0.tar.gz
|
|
- cd boost_1_84_0
|
|
- ./bootstrap.sh
|
|
- ./b2 cxxflags=-m32 --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
|
|
- cd ..
|
|
- mkdir build && cd build
|
|
- c++ --version
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-m32"
|
|
- cmake --build .
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["g++"]
|
|
|
|
g++-10:
|
|
stage: build
|
|
image: ubuntu:20.04
|
|
tags:
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates g++-10 cmake libboost-test-dev libboost-timer-dev libboost-serialization-dev make tar wget # linux-libc-dev:i386
|
|
- mkdir build && cd build
|
|
- g++-10 --version
|
|
- CXX=g++-10 cmake .. -DCMAKE_BUILD_TYPE=Debug # -DCMAKE_CXX_FLAGS="-m32"
|
|
- cmake --build .
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["g++"]
|
|
|
|
clang++-9:
|
|
stage: build
|
|
image: ubuntu:20.04
|
|
tags:
|
|
- non-shared
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang-9 cmake libboost-test-dev libboost-timer-dev libboost-serialization-dev make tar wget
|
|
- mkdir build && cd build
|
|
- clang++-9 --version
|
|
- CXX=clang++-9 cmake .. -DCMAKE_BUILD_TYPE=Debug
|
|
- cmake --build .
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["clang++"]
|
|
|
|
clang++-11:
|
|
stage: build
|
|
image: ubuntu:22.04
|
|
tags:
|
|
- non-shared
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang-11 cmake libboost-test-dev libboost-timer-dev libboost-serialization-dev make tar wget
|
|
- mkdir build && cd build
|
|
- clang++-11 --version
|
|
- CXX=clang++-11 cmake .. -DCMAKE_BUILD_TYPE=Debug
|
|
- cmake --build .
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["clang++"]
|
|
|
|
coverage:
|
|
stage: build
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
allow_failure: true
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake curl g++ gcovr git make lcov libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config wget
|
|
- mkdir build && cd build
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-DNDEBUG --coverage -O0 -fno-inline -fno-inline-small-functions -fno-default-inline" -DCMAKE_EXE_LINKER_FLAGS="--coverage"
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 1 --output-on-failure -T Test
|
|
- ctest -j 1 --output-on-failure -T Coverage
|
|
- gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml --root ${CI_PROJECT_DIR}
|
|
# - lcov --directory . --capture --output-file coverage.info
|
|
# - lcov --remove coverage.info '/usr/*' --output-file coverage.info
|
|
# - lcov --list coverage.info && genhtml coverage.info
|
|
- bash <(curl -s https://codecov.io/bash) || echo 'Codecov failed to upload'
|
|
coverage: /^\s*Percentage\s+Coverage:\s*\d+.\d+\%/
|
|
# coverage: /^\s*lines:\s*\d+.\d+\%/
|
|
artifacts:
|
|
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
|
|
expire_in: 2 days
|
|
reports:
|
|
coverage_report:
|
|
coverage_format: cobertura
|
|
path: build/coverage.xml
|
|
needs: ["g++"]
|
|
|
|
g++ cppcheck cpplint memcheck: # debian-stable: gcc 12 as of Dec 2023
|
|
stage: build
|
|
allow_failure: true
|
|
interruptible: true
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake cppcheck cpplint g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config valgrind
|
|
- g++ --version
|
|
- cpplint --version
|
|
- cppcheck --version
|
|
- valgrind --version
|
|
- mkdir build && cd build
|
|
- export VALGRIND_EXE="valgrind --leak-check=full --track-origins=yes --show-leak-kinds=all --suppressions=.valgrind_suppressions --gen-suppressions=all --error-exitcode=1 "
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_CPPLINT="cpplint;--quiet" -DCMAKE_CXX_CPPCHECK="cppcheck;--enable=all;--suppress=missingIncludeSystem;--inline-suppr;--std=c++17;--check-config;--error-exitcode=1"
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure -T memcheck
|
|
needs: ["g++"]
|
|
|
|
g++-testing sanitizer:
|
|
stage: build
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
image: debian:testing
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
|
|
- mkdir build && cd build
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-fsanitize=address" -fno-omit-frame-pointer # ,undefined,pointer-compare,pointer-subtract,float-divide-by-zero -fno-omit-frame-pointer -fno-sanitize-recover=all"
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ASAN_OPTIONS="new_delete_type_mismatch=true:check_initialization_order=true:strict_init_order=true:detect_stack_use_after_return=true:detect_odr_violation=true" ctest -j 2 --output-on-failure -T Test
|
|
needs: ["g++"]
|
|
|
|
g++-7:
|
|
stage: build
|
|
image: debian:oldoldstable # default is gcc 8 as of Dec 2023
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++-7 make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config wget
|
|
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
|
|
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
|
|
- cmake --version
|
|
- g++-7 --version
|
|
- mkdir build && cd build
|
|
- CXX=g++-7 CXXFLAGS="-DBOOST_TEST_MAIN -DBOOST_TEST_DYN_LINK" cmake .. -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_BUILD_TYPE=Debug
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure -T Test
|
|
needs: ["g++"]
|
|
|
|
g++-testing c++20:
|
|
stage: build
|
|
image: debian:testing
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet g++ pkg-config cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev
|
|
- mkdir build && cd build
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_STANDARD=20
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --output-on-failure
|
|
needs: ["g++"]
|
|
|
|
g++-13 c++23 par: # debian-testing: default is gcc 13.2.0 as of Dec 2023
|
|
stage: build
|
|
image: debian:unstable
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet g++ g++-14 pkg-config cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev libtbb-dev
|
|
- mkdir build && cd build
|
|
- g++-13 --version
|
|
- CXX=g++-13 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=23
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --output-on-failure
|
|
needs: ["g++-testing c++20"]
|
|
|
|
g++-14 c++23 par: # debian-testing: default is gcc 13.2.0 as of Dec 2023
|
|
stage: build
|
|
image: debian:unstable
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
allow_failure: true
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet g++ g++-14 pkg-config cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev libtbb-dev
|
|
- mkdir build && cd build
|
|
- g++-14 --version
|
|
- CXX=g++-14 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=23
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --output-on-failure
|
|
needs: ["g++-testing c++20"]
|
|
|
|
clang++:
|
|
stage: build
|
|
tags:
|
|
- non-shared
|
|
interruptible: false
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet clang cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
|
|
- mkdir build && cd build
|
|
- clang++ --version
|
|
- CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-D_GLIBCXX_DEBUG=1"
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
|
|
# deb:
|
|
# stage: build
|
|
# script:
|
|
# - apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
|
|
# - mkdir build && cd build
|
|
# - cmake .. -DCMAKE_BUILD_TYPE=Release
|
|
# - cmake --build . --parallel 2 || cmake --build . --verbose
|
|
# - ctest -j 2 --output-on-failure
|
|
# - cpack -G DEB
|
|
# - ls -all
|
|
# - dpkg -i multi_all.deb
|
|
# - ls -all /usr/include/multi
|
|
# - c++ ../test/main.cpp
|
|
# artifacts:
|
|
# paths:
|
|
# - build/multi_all.deb
|
|
# needs: ["g++", "clang++"]
|
|
|
|
clang++-latest libc++:
|
|
stage: build
|
|
image: debian:latest
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake make libblas-dev libc++-dev libc++abi-dev libfftw3-dev pkg-config tar wget
|
|
- wget https://downloads.sourceforge.net/project/boost/boost/1.72.0/boost_1_72_0.tar.gz --no-verbose # 1.70 doesn't install boost timer well, there is no version 1.72 in sourceforge
|
|
- tar -xf boost_1_72_0.tar.gz
|
|
- cd boost_1_72_0
|
|
- ./bootstrap.sh --with-toolset=clang
|
|
- ./b2 toolset=clang cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++ --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
|
|
- cd ..
|
|
- mkdir build && cd build
|
|
- clang++ --version
|
|
- CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-stdlib=libc++ -DBOOST_NO_CXX98_FUNCTION_BASE -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG"
|
|
- cmake --build .
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["clang++"]
|
|
|
|
# build_windows:
|
|
# stage: build
|
|
# allow_failure: true
|
|
# script:
|
|
# - '& "$msbuild" -help'
|
|
# - '& "$msbuild" -version'
|
|
# - choco install -y cmake
|
|
# - $env:Path += ';C:\Program Files\CMake\bin'
|
|
# - cmake --version
|
|
# tags:
|
|
# - shared-windows
|
|
# - windows
|
|
# - windows-1809
|
|
|
|
# clang++-macos:
|
|
# stage: build
|
|
# image: macos-14-xcode-15
|
|
# # variables:
|
|
# # HOMEBREW_NO_AUTO_UPDATE: 1
|
|
# tags:
|
|
# - saas-macos-medium-m1
|
|
# allow_failure: true
|
|
# script:
|
|
# #- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake make libblas-dev libc++-dev libc++abi-dev libfftw3-dev pkg-config tar wget
|
|
# #- wget https://downloads.sourceforge.net/project/boost/boost/1.72.0/boost_1_72_0.tar.gz --no-verbose # 1.70 doesn't install boost timer well, there is no version 1.72 in sourceforge
|
|
# #- tar -xf boost_1_72_0.tar.gz
|
|
# #- cd boost_1_72_0
|
|
# #- ./bootstrap.sh --with-toolset=clang
|
|
# #- ./b2 toolset=clang cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++ --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
|
|
# #- cd ..
|
|
# - mkdir build && cd build
|
|
# - c++ --version
|
|
# - CXX=c++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 # -DCMAKE_CXX_FLAGS="-stdlib=libc++ -DBOOST_NO_CXX98_FUNCTION_BASE -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR -D_LIBCPP_ENABLE_DEBUG_MODE=1 -D_LIBCPP_DEBUG_RANDOMIZE_UNSPECIFIED_STABILITY=1 -D_LIBCPP_DEBUG_STRICT_WEAK_ORDERING_CHECK=1"
|
|
# - cmake --build .
|
|
# - ctest -j 2 --output-on-failure
|
|
# needs: ["clang++"]
|
|
|
|
clang++-m32:
|
|
stage: build
|
|
image: debian:latest
|
|
tags:
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang g++ g++-multilib cmake make tar wget
|
|
- wget https://downloads.sourceforge.net/project/boost/boost/1.84.0/boost_1_84_0.tar.gz --no-verbose # 1.70 doesn't install boost timer well, there is no version 1.71 in sourceforge
|
|
- tar -xf boost_1_84_0.tar.gz
|
|
- cd boost_1_84_0
|
|
- ./bootstrap.sh --with-toolset=clang
|
|
- ./b2 toolset=clang cxxflags=-m32 --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
|
|
- cd ..
|
|
- mkdir build && cd build
|
|
- c++ --version
|
|
- CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-m32"
|
|
- cmake --build .
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["clang++"]
|
|
|
|
clang++-testing tidy:
|
|
stage: build
|
|
image: debian:unstable # clang 18 as of Apr 2024
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet clang-18 clang-tidy-18 cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
|
|
- mkdir build && cd build
|
|
- clang++-18 --version
|
|
- clang-tidy-18 --version
|
|
- CXX=clang++-18 cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_CLANG_TIDY=clang-tidy-18
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["clang++"]
|
|
|
|
g++-testing c++20:
|
|
stage: build
|
|
image: debian:testing
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet g++ pkg-config cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev
|
|
- mkdir build && cd build
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_STANDARD=20
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --output-on-failure
|
|
needs: ["g++"]
|
|
|
|
g++-testing sanitizer:
|
|
stage: build
|
|
image: debian:testing
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config
|
|
- mkdir build && cd build
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="-fsanitize=address,undefined,pointer-compare,pointer-subtract,float-divide-by-zero -fno-sanitize-recover=all"
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ASAN_OPTIONS="new_delete_type_mismatch=0:check_initialization_order=true:strict_init_order=true:detect_stack_use_after_return=true:detect_odr_violation=1" ctest -j 2 --output-on-failure -T Test
|
|
needs: ["g++"]
|
|
|
|
clang++-17-unstable libc++ c++23 boost_1_84:
|
|
stage: build
|
|
image: debian:unstable # clang 17 as of March 2024
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script: # clang 17 doesn't work with gcc 13 libstd
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang clang-17 cmake make libblas-dev libc++-17-dev libc++abi-17-dev libfftw3-dev pkg-config tar wget
|
|
- wget https://downloads.sourceforge.net/project/boost/boost/1.84.0/boost_1_84_0.tar.gz --no-verbose
|
|
- tar -xf boost_1_84_0.tar.gz
|
|
- cd boost_1_84_0
|
|
- ./bootstrap.sh --with-toolset=clang
|
|
- ./b2 toolset=clang cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++ --with-serialization --with-test --with-timer install -j4 # libc++ only works with boost test compiled with libc++
|
|
- cd ..
|
|
- mkdir build && cd build
|
|
- CXX=clang++-17 cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_STANDARD=23 -DCMAKE_CXX_FLAGS="-stdlib=libc++ -D_LIBCPP_ENABLE_DEBUG_MODE=1 -D_LIBCPP_DEBUG_RANDOMIZE_UNSPECIFIED_STABILITY=1 -D_LIBCPP_DEBUG_STRICT_WEAK_ORDERING_CHECK=1" # -DBoost_INCLUDE_DIR=../boost_1_84_0 -DBoost_LIBRARY_DIR=../boost_1_84_0/stage/lib -DBoost_NO_SYSTEM_PATHS=ON
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --output-on-failure
|
|
needs: ["clang++-latest libc++", "g++-testing c++20"]
|
|
|
|
clang++-oldoldstable:
|
|
stage: build
|
|
image: debian:oldoldstable # clang 7.0.1 as of April 2024
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config wget
|
|
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
|
|
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
|
|
- mkdir build && cd build
|
|
- clang++ --version
|
|
- CXX=clang++ CXXFLAGS="-DBOOST_TEST_DYN_LINK" cmake .. -DCMAKE_BUILD_TYPE=Release -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["clang++"]
|
|
|
|
oneapi:
|
|
stage: build
|
|
image: intel/oneapi-hpckit:2023.0.0-devel-ubuntu22.04 # Intel(R) oneAPI DPC++/C++ Compiler 2023.0.0 (2023.0.0.20221201)
|
|
tags:
|
|
- non-shared
|
|
- large-disk-space
|
|
interruptible: true
|
|
script:
|
|
- apt-get update && apt-get install --no-install-recommends -y --quiet ca-certificates cmake curl libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev liblapack-dev libfftw3-dev make pkg-config
|
|
- mkdir build && cd build
|
|
- icpx --version
|
|
- CXX=icpx cmake .. -DCMAKE_BUILD_TYPE=Release -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --parallel 2 --output-on-failure
|
|
|
|
oneapi-2022.2:
|
|
stage: build
|
|
image: intel/oneapi-hpckit:2022.2-devel-ubuntu20.04
|
|
tags:
|
|
- non-shared
|
|
- large-disk-space
|
|
interruptible: true
|
|
script:
|
|
- apt-get update && apt-get install --no-install-recommends -y --quiet ca-certificates cmake curl g++ libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev liblapack-dev libfftw3-dev make pkg-config
|
|
- mkdir build && cd build
|
|
- icpx --version
|
|
- CXX=icpx CXXFLAGS="-DPSTL_USE_PARALLEL_POLICIES=0" cmake .. -DCMAKE_BUILD_TYPE=Release
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --parallel 2 --output-on-failure
|
|
needs: ["oneapi"]
|
|
|
|
oneapi-latest c++20:
|
|
stage: build
|
|
image: intel/oneapi-hpckit:latest # icpx --version (2023.2.0.20230721) as of Dec 2023
|
|
allow_failure: true
|
|
tags:
|
|
- non-shared
|
|
- large-disk-space
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
# - wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
|
|
# - echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list
|
|
- apt-get update && apt-get install --no-install-recommends -y --quiet ca-certificates cmake curl g++ libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev liblapack-dev libfftw3-dev make pkg-config
|
|
- mkdir build && cd build
|
|
- icpx --version
|
|
- CXX=icpx cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=20
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --parallel 2 --output-on-failure
|
|
needs: ["oneapi"]
|
|
|
|
nvhpc:
|
|
stage: build
|
|
image: nvcr.io/nvidia/nvhpc:22.11-devel-cuda11.8-ubuntu22.04 # https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nvhpc/tags
|
|
tags:
|
|
- non-shared
|
|
- large-disk-space
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get update && apt-get install --no-install-recommends -y cmake make libboost-test-dev libboost-serialization-dev
|
|
- /opt/nvidia/hpc_sdk/Linux_x86_64/2022/compilers/bin/nvc++ --version
|
|
- mkdir build && cd build
|
|
- CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/2022/compilers/bin/nvc++ cmake .. -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --output-on-failure
|
|
|
|
nvhpc-22.7:
|
|
stage: build
|
|
image: nvcr.io/nvidia/nvhpc:22.7-devel-cuda11.7-ubuntu22.04 # https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nvhpc/tags
|
|
tags:
|
|
- non-shared
|
|
- large-disk-space
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get update && apt-get install --no-install-recommends -y cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev
|
|
- /opt/nvidia/hpc_sdk/Linux_x86_64/2022/compilers/bin/nvc++ --version
|
|
- mkdir build && cd build
|
|
- CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/2022/compilers/bin/nvc++ cmake .. -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 # TODO(correaa) add -DCMAKE_BUILD_TYPE=Release
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --output-on-failure
|
|
needs: ["nvhpc"]
|
|
|
|
nvhpc-24.3 c++20 par:
|
|
stage: build
|
|
image: nvcr.io/nvidia/nvhpc:24.3-devel-cuda12.3-ubuntu22.04 # https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nvhpc/tags
|
|
tags:
|
|
- non-shared
|
|
- large-disk-space
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get update && apt-get install --no-install-recommends -y cmake make libboost-test-dev libboost-timer-dev libboost-serialization-dev libfftw3-dev pkg-config
|
|
- /opt/nvidia/hpc_sdk/Linux_x86_64/2024/compilers/bin/nvc++ --version
|
|
- mkdir build && cd build
|
|
- CXX=/opt/nvidia/hpc_sdk/Linux_x86_64/2024/compilers/bin/nvc++ cmake .. -DCMAKE_BUILD_TYPE=Release -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_FLAGS="-stdpar=multicore"
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest --output-on-failure
|
|
needs: ["nvhpc"]
|
|
|
|
cuda:
|
|
stage: build
|
|
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get -qq update && apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
|
|
- mkdir build && cd build
|
|
- ls /usr/local
|
|
- ls /usr/local/cuda-11/bin
|
|
- /usr/local/cuda-11/bin/nvcc --version
|
|
- CUDACXX=/usr/local/cuda-11/bin/nvcc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES=61
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
- ../build/include/boost/multi/adaptors/thrust/test/speed.cu.x
|
|
- ../build/include/boost/multi/adaptors/thrust/test/speed_algo.cu.x
|
|
- ../build/include/boost/multi/adaptors/fftw/test/combinations.cpp.x
|
|
needs: ["g++"]
|
|
|
|
cuda-11.8 mkl:
|
|
stage: build
|
|
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get -qq update && apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
|
|
- DEBIAN_FRONTEND=interactive apt-get install --no-install-recommends --yes --force-yes -y libmkl-full-dev
|
|
- mkdir build && cd build
|
|
- ls /usr/local
|
|
- ls /usr/local/cuda-11/bin
|
|
- /usr/local/cuda-11/bin/nvcc --version
|
|
- CUDACXX=/usr/local/cuda-11/bin/nvcc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES=61
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
- ../build/include/boost/multi/adaptors/thrust/test/speed.cu.x
|
|
- ../build/include/boost/multi/adaptors/thrust/test/speed_algo.cu.x
|
|
- ../build/include/boost/multi/adaptors/fftw/test/combinations.cpp.x
|
|
needs: ["cuda"]
|
|
|
|
cuda-11.4.3:
|
|
stage: build
|
|
image: nvcr.io/nvidia/cuda:11.4.3-devel-ubuntu20.04
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
# - export CUDA_VISIBLE_DEVICES=2
|
|
- apt-get -qq update
|
|
- DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
|
|
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
|
|
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
|
|
- cmake --version
|
|
- mkdir build && cd build
|
|
- /usr/local/cuda/bin/nvcc --version
|
|
- CUDACXX=/usr/local/cuda/bin/nvcc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES=61
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["cuda"]
|
|
|
|
cuclang++-16 cuda-11.4.3:
|
|
stage: build
|
|
image: nvcr.io/nvidia/cuda:11.4.3-devel-ubuntu20.04
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get -qq update
|
|
- DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
|
|
- apt-get install --no-install-recommends -y lsb-release software-properties-common
|
|
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
|
|
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
|
|
- cmake --version
|
|
- wget https://apt.llvm.org/llvm.sh
|
|
- chmod u+x llvm.sh
|
|
- ./llvm.sh 16
|
|
- mkdir build && cd build
|
|
- clang++-16 --version
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=clang++-16 -DCMAKE_CXX_COMPILER=clang++-16
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["cuda", "clang++"]
|
|
|
|
culang++-17 cuda-11.8:
|
|
stage: build
|
|
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04 # nvcr.io/nvidia/cuda:12.0.0-devel-ubuntu22.04
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get -qq update && apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
|
|
- apt-get install --no-install-recommends -y lsb-release software-properties-common
|
|
- wget https://apt.llvm.org/llvm.sh
|
|
- chmod u+x llvm.sh
|
|
- ./llvm.sh 17
|
|
- mkdir build && cd build
|
|
- clang++-17 --version
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Release -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=clang++-17 -DCMAKE_CXX_COMPILER=clang++-17
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["cuda", "clang++"]
|
|
|
|
culang++-19 cuda-12.1.1 tidy:
|
|
stage: build
|
|
image: nvcr.io/nvidia/cuda:12.1.1-devel-ubuntu22.04 # nvcr.io/nvidia/cuda:12.0.0-devel-ubuntu22.04
|
|
allow_failure: false
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get -qq update && apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
|
|
- apt-get install --no-install-recommends -y lsb-release software-properties-common
|
|
- wget https://apt.llvm.org/llvm.sh
|
|
- chmod u+x llvm.sh
|
|
- ./llvm.sh 19
|
|
- apt-get install --no-install-recommends -y clang-tidy-19
|
|
- mkdir build && cd build
|
|
- clang++-19 --version
|
|
- clang-tidy-19 --version
|
|
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_CLANG_TIDY=clang-tidy-19 -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=clang++-19 -DCMAKE_CXX_COMPILER=clang++-19
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["cuda", "clang++"]
|
|
|
|
cuda-12.3.1:
|
|
stage: build
|
|
allow_failure: false
|
|
image: nvcr.io/nvidia/cuda:12.3.1-devel-ubuntu22.04
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
interruptible: true
|
|
script:
|
|
- nvidia-smi
|
|
- apt-get -qq update && apt-get install --no-install-recommends -y cmake g++-12 wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev
|
|
- mkdir build && cd build
|
|
- g++-12 --version
|
|
- /usr/local/cuda/bin/nvcc --version
|
|
- CUDACXX=/usr/local/cuda/bin/nvcc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CUDA=1 -DCMAKE_CUDA_ARCHITECTURES=61 -DCMAKE_CUDA_HOST_COMPILER=g++-12 -DCMAKE_CUDA_FLAGS="-allow-unsupported-compiler"
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose
|
|
- ctest || ctest --rerun-failed --output-on-failure || echo "ctest failed, probably due to lack of drivers"
|
|
needs: ["cuda"]
|
|
|
|
rocm:
|
|
stage: build
|
|
image: rocm/dev-ubuntu-22.04
|
|
allow_failure: false
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
- high-bandwidth
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update
|
|
- apt-get install --no-install-recommends -y cmake wget pkg-config make libboost-test-dev libboost-serialization-dev libboost-timer-dev libblas-dev libfftw3-dev wget gpg
|
|
- apt-get install --no-install-recommends -y rocthrust-dev hipblas-dev hipfft-dev rocm-device-libs
|
|
- /opt/rocm/bin/hipconfig --full
|
|
- HIPCC_VERBOSE=1 /opt/rocm/bin/hipcc --version
|
|
- cmake --version
|
|
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
|
|
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
|
|
- cmake --version
|
|
- mkdir build && cd build
|
|
- export PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:${PATH}
|
|
- export CMAKE_PREFIX_PATH=/opt/rocm:${CMAKE_PREFIX_PATH}
|
|
- export ROCM_PATH=/opt/rocm
|
|
- export HIP_PATH=/opt/rocm
|
|
- cmake .. -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_HIP_COMPILER=/opt/rocm/llvm/bin/clang++ -DCMAKE_CXX_FLAGS="-DMULTI_USE_HIP" -DCMAKE_HIP_FLAGS="-DMULTI_USE_HIP" -DENABLE_HIP=1 -DCMAKE_HIP_ARCHITECTURES=gfx90a # TODO(correaa) add CMAKE_BUILD_TYPE
|
|
- cmake --build . --parallel 2 || cmake --build . --verbose --parallel 1
|
|
- ctest || ctest --rerun-failed --output-on-failure || echo "ctest failed, probably due to lack of hardware"
|
|
needs: ["clang++", "g++"]
|
|
|
|
# clang++-fedora c++23:
|
|
# stage: build
|
|
# image: fedora:rawhide # clang 17.0.6 as of Dec 2023
|
|
# script: # clang 17 doesn't work with gcc 13 libstd
|
|
# - dnf install --setopt=install_weak_deps=False -y ca-certificates blas-devel boost-devel clang cmake fftw-devel make pkg-config
|
|
# - mkdir build && cd build
|
|
# - CXX=clang++ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=23 # -DBoost_INCLUDE_DIR=../boost_1_84_0 -DBoost_LIBRARY_DIR=../boost_1_84_0/stage/lib -DBoost_NO_SYSTEM_PATHS=ON
|
|
# - cmake --build . --parallel 2 || cmake --build . --verbose
|
|
# - ctest --output-on-failure
|
|
# needs: ["clang++-testing c++20"]
|
|
|
|
circle:
|
|
stage: build
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
# interruptible: false
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake g++-11 gzip libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libelf1 libfftw3-dev make pkg-config tar wget
|
|
- mkdir -p build_latest ; cd build_latest
|
|
- wget https://www.circle-lang.org/linux/build_200.tgz --no-verbose
|
|
- tar -zxvf build_???.tgz
|
|
- cd ..
|
|
- ls
|
|
- ./build_latest/circle --version
|
|
- mkdir build && cd build
|
|
- CXX=`pwd`/../build_latest/circle cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_CIRCLE=1
|
|
- cmake --build . --parallel 2 || make VERBOSE=1
|
|
- ctest -j 2 --output-on-failure
|
|
|
|
circle-187:
|
|
stage: build
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake g++-11 gzip libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libelf1 libfftw3-dev make pkg-config tar wget
|
|
- mkdir -p build_latest ; cd build_latest
|
|
- wget https://www.circle-lang.org/linux/build_187.tgz --no-verbose
|
|
- tar -zxvf build_???.tgz
|
|
- cd ..
|
|
- ls
|
|
- ./build_latest/circle --version
|
|
- mkdir build && cd build
|
|
- CXX=`pwd`/../build_latest/circle cmake .. -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DENABLE_CIRCLE=1
|
|
- cmake --build . --parallel 2 || make VERBOSE=1
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["circle"]
|
|
|
|
circle-latest:
|
|
stage: build
|
|
allow_failure: true
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates clang cmake g++-11 gzip libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libelf1 libfftw3-dev make pkg-config tar wget
|
|
- mkdir -p build_latest ; cd build_latest
|
|
- wget https://www.circle-lang.org/linux/build_latest.tgz --no-verbose
|
|
- tar -zxvf build_*.tgz
|
|
- cd ..
|
|
- ls
|
|
- ./build_latest/circle --version
|
|
- mkdir build && cd build
|
|
- CXX=`pwd`/../build_latest/circle cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_CIRCLE=1
|
|
- cmake --build . --parallel 2 || make VERBOSE=1
|
|
- ctest -j 2 --output-on-failure
|
|
needs: ["circle"]
|
|
|
|
inq:
|
|
stage: test
|
|
image: debian:stable
|
|
tags:
|
|
- non-shared
|
|
- large-memory-space
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake g++ git gfortran libopenmpi-dev libblas-dev libboost-filesystem-dev libboost-iostreams-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev make ninja-build pkg-config python3-dev
|
|
- export PREFIX=`mktemp -d`
|
|
- git clone --recurse-submodules https://gitlab.com/npneq/inq.git
|
|
- cd inq
|
|
- git submodule update
|
|
- cd external_libs/multi
|
|
- git checkout $CI_COMMIT_SHA # check that multi repo is mirrored correctly
|
|
- cd ../..
|
|
- mkdir build && cd build
|
|
- cmake .. -G Ninja --install-prefix=$PREFIX -DCMAKE_BUILD_TYPE=Release
|
|
- cmake --build . || cmake --build . --parallel 1
|
|
- cmake --install .
|
|
- export OMPI_ALLOW_RUN_AS_ROOT=1
|
|
- export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
|
|
- export OMPI_MCA_btl_vader_single_copy_mechanism=none
|
|
- export OMPI_MCA_rmaps_base_oversubscribe=1
|
|
- ctest -j 2 --output-on-failure --timeout 600
|
|
- INQ_EXEC_ENV="mpirun --oversubscribe -n 4" ctest --output-on-failure --timeout 600
|
|
needs: ["g++"]
|
|
|
|
inq cuda:
|
|
allow_failure: false
|
|
stage: test
|
|
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
interruptible: true
|
|
before_script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake git gfortran libopenmpi-dev libblas-dev libboost-filesystem-dev libboost-iostreams-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev pkg-config python3-dev
|
|
script:
|
|
- nvidia-smi
|
|
# - export CUDA_VISIBLE_DEVICES=0,1
|
|
- __nvcc_device_query
|
|
- export PREFIX=`mktemp -d`
|
|
- git clone --recurse-submodules https://gitlab.com/npneq/inq.git
|
|
- cd inq
|
|
- cd external_libs/multi
|
|
- git checkout $CI_COMMIT_SHA
|
|
- cd ../..
|
|
- rm -f cmake/FindNCCL.cmake # disable NCCL workaround
|
|
- mkdir build && cd build
|
|
- /usr/local/cuda/bin/nvcc --version
|
|
- CUDACXX=/usr/local/cuda/bin/nvcc cmake .. --install-prefix=$PREFIX -DENABLE_CUDA=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CUDA_ARCHITECTURES=61 # =75 # =80
|
|
- cmake --build . --parallel 4 || cmake --build . --parallel 1
|
|
- cmake --install .
|
|
- export OMPI_ALLOW_RUN_AS_ROOT=1
|
|
- export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
|
|
- export OMPI_MCA_btl_vader_single_copy_mechanism=none
|
|
- export OMPI_MCA_rmaps_base_oversubscribe=1
|
|
- ctest -j 2 --output-on-failure --timeout 2400
|
|
- INQ_EXEC_ENV="mpirun --oversubscribe -n 4" ctest --output-on-failure --timeout 2400
|
|
timeout: 2 hours 30 minutes
|
|
needs: ["cuda", "inq"]
|
|
|
|
inq rocm:
|
|
stage: test
|
|
image: rocm/dev-ubuntu-22.04
|
|
allow_failure: false
|
|
tags:
|
|
- non-shared
|
|
- large-disk-space
|
|
interruptible: true
|
|
script:
|
|
- apt-get -qq update
|
|
- apt-get -qq install --no-install-recommends -y ca-certificates cmake git gfortran gpg hipblas-dev hipfft-dev libopenmpi-dev libblas-dev libboost-filesystem-dev libboost-iostreams-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev make pkg-config python3-dev rocthrust-dev rocm-device-libs wget
|
|
- /opt/rocm/bin/hipconfig --full
|
|
- HIPCC_VERBOSE=1 /opt/rocm/bin/hipcc --version
|
|
- cmake --version
|
|
- wget https://github.com/Kitware/CMake/releases/download/v3.27.0-rc3/cmake-3.27.0-rc3-linux-x86_64.sh --no-verbose
|
|
- sh ./cmake-3.27.0-rc3-linux-x86_64.sh --skip-license --prefix=/usr
|
|
- cmake --version
|
|
- export PREFIX=`mktemp -d`
|
|
- git clone --recurse-submodules https://gitlab.com/npneq/inq.git
|
|
- cd inq
|
|
- cd external_libs/multi
|
|
- git checkout $CI_COMMIT_SHA
|
|
- cd ../..
|
|
- mkdir build && cd build
|
|
- export PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:${PATH}
|
|
- export CMAKE_PREFIX_PATH=/opt/rocm:${CMAKE_PREFIX_PATH}
|
|
- export ROCM_PATH=/opt/rocm
|
|
- export HIP_PATH=/opt/rocm
|
|
- cmake .. -DCMAKE_HIP_COMPILER=/opt/rocm/llvm/bin/clang++ --install-prefix=$PREFIX -DENABLE_HIP=1 -DCMAKE_HIP_ARCHITECTURES=gfx90a
|
|
- cmake --build . --parallel 4 || cmake --build . --parallel 1
|
|
- cmake --install .
|
|
- export OMPI_ALLOW_RUN_AS_ROOT=1
|
|
- export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
|
|
- export OMPI_MCA_btl_vader_single_copy_mechanism=none
|
|
- export OMPI_MCA_rmaps_base_oversubscribe=1
|
|
- INQ_EXEC_ENV="mpirun --oversubscribe -n 4" ctest --output-on-failure --timeout 2400 || echo "ctest failed, probably due to lack of hardware"
|
|
timeout: 2 hours 30 minutes
|
|
needs: ["rocm", "inq"]
|
|
|
|
qmcpack:
|
|
stage: test
|
|
image: debian:latest
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
- high-bandwidth
|
|
interruptible: true
|
|
before_script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake g++ git gfortran libblas-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev libopenmpi-dev make numdiff pkg-config python3 python3-h5py python3-numpy python3-mpi4py python3-scipy libxml2-dev
|
|
script:
|
|
- git clone --depth=1 https://github.com/QMCPACK/qmcpack.git # --branch fix_afqmc_pointer_traits
|
|
- cd qmcpack
|
|
- git config --global user.email "alfredo.correa@gmail.com" && git config --global user.name "Alfredo Correa"
|
|
- git rm -r external_codes/boost_multi/multi && git commit -m "remove multi subtree"
|
|
- git subtree add --squash -P external_codes/boost_multi/multi $CI_REPOSITORY_URL $CI_COMMIT_SHA || git subtree add --squash -P external_codes/boost_multi/multi $CI_REPOSITORY_URL # e.g. https://gitlab.com/correaa/boost-multi.git
|
|
- cd build
|
|
- cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DBUILD_AFQMC=1 -DQMC_MIXED_PRECISION=1 -DCMAKE_BUILD_TYPE=Debug -DMPIEXEC_PREFLAGS="--allow-run-as-root;--bind-to;none" ..
|
|
- make ppconvert afqmc test_afqmc_matrix test_afqmc_numerics test_afqmc_slaterdeterminantoperations test_afqmc_walkers test_afqmc_hamiltonians test_afqmc_hamiltonian_operations test_afqmc_phmsd test_afqmc_wfn_factory test_afqmc_prop_factory test_afqmc_estimators qmc-afqmc-performance
|
|
- ctest -R ppconvert --output-on-failure
|
|
- ctest -R afqmc --output-on-failure
|
|
needs: ["g++"]
|
|
|
|
# qmcpack-cuda:
|
|
# stage: test
|
|
# image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04
|
|
# tags:
|
|
# - nvidia-gpu
|
|
# before_script:
|
|
# - apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake git libopenmpi-dev cmake g++ git gfortran libblas-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev libopenmpi-dev make numdiff pkg-config python3 python3-h5py python3-numpy python3-mpi4py python3-scipy libxml2-dev
|
|
# script:
|
|
# - nvidia-smi
|
|
# - git clone --depth 1 https://github.com/QMCPACK/qmcpack.git
|
|
# # - git clone https://github.com/correaa/qmcpack.git --branch fix_afqmc_pointer_traits
|
|
# - cd qmcpack
|
|
# - git config --global user.email "alfredo.correa@gmail.com" && git config --global user.name "Alfredo Correa"
|
|
# - git rm -r external_codes/boost_multi/multi && git commit -m "remove multi subtree"
|
|
# - git subtree add --squash -P external_codes/boost_multi/multi $CI_REPOSITORY_URL $CI_COMMIT_SHA # e.g. https://gitlab.com/correaa/boost-multi.git
|
|
# - cd build
|
|
# - nvcc --version
|
|
# - __nvcc_device_query
|
|
# - CUDACXX=/usr/local/cuda/bin/nvcc cmake .. -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DBUILD_AFQMC=1 -DQMC_CXX_STANDARD=17 -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DCMAKE_CUDA_HOST_COMPILER=g++ -DCMAKE_CXX_FLAGS="-Wno-deprecated -Wno-deprecated-declarations" -DCMAKE_CUDA_ARCHITECTURES=80
|
|
# - make -j 4 ppconvert afqmc test_afqmc_matrix test_afqmc_numerics test_afqmc_slaterdeterminantoperations test_afqmc_walkers test_afqmc_hamiltonians test_afqmc_hamiltonian_operations test_afqmc_phmsd test_afqmc_wfn_factory test_afqmc_prop_factory test_afqmc_estimators qmc-afqmc-performance
|
|
# - OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 ctest -R ppconvert --output-on-failure
|
|
# - OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 ctest -R afqmc --output-on-failure
|
|
# needs: ["qmcpack","cuda"]
|
|
|
|
qmcpack cuda-12.3.1:
|
|
stage: test
|
|
image: nvcr.io/nvidia/cuda:12.3.1-devel-ubuntu22.04
|
|
tags:
|
|
- non-shared
|
|
- nvidia-gpu
|
|
- high-bandwidth
|
|
interruptible: true
|
|
before_script:
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y ca-certificates cmake git libopenmpi-dev cmake g++ git gfortran libblas-dev libboost-serialization-dev libfftw3-dev libhdf5-dev liblapack-dev libopenmpi-dev make numdiff pkg-config python3 python3-h5py python3-numpy python3-mpi4py python3-scipy libxml2-dev
|
|
script:
|
|
- nvidia-smi
|
|
- git clone --depth 1 https://github.com/QMCPACK/qmcpack.git # --branch fix_afqmc_pointer_traits
|
|
- cd qmcpack
|
|
- git config --global user.email "alfredo.correa@gmail.com" && git config --global user.name "Alfredo Correa"
|
|
- git rm -r external_codes/boost_multi/multi && git commit -m "remove multi subtree"
|
|
- git subtree add --squash -P external_codes/boost_multi/multi $CI_REPOSITORY_URL $CI_COMMIT_SHA # e.g. https://gitlab.com/correaa/boost-multi.git
|
|
- cd build
|
|
- nvcc --version
|
|
- __nvcc_device_query
|
|
- CUDACXX=/usr/local/cuda/bin/nvcc cmake .. -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DBUILD_AFQMC=1 -DQMC_CXX_STANDARD=17 -DENABLE_CUDA=1 -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DCMAKE_CUDA_HOST_COMPILER=g++ -DCMAKE_CXX_FLAGS="-Wno-deprecated -Wno-deprecated-declarations" -DCMAKE_CUDA_ARCHITECTURES=75 # =80
|
|
- make -j 4 ppconvert afqmc test_afqmc_matrix test_afqmc_numerics test_afqmc_slaterdeterminantoperations test_afqmc_walkers test_afqmc_hamiltonians test_afqmc_hamiltonian_operations test_afqmc_phmsd test_afqmc_wfn_factory test_afqmc_prop_factory test_afqmc_estimators qmc-afqmc-performance
|
|
- OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 ctest -R ppconvert --output-on-failure
|
|
- OMPI_ALLOW_RUN_AS_ROOT=1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1 ctest -R afqmc --output-on-failure
|
|
needs: ["qmcpack","cuda"]
|
|
|
|
# sonar cloud
|
|
# from instructions
|
|
# another example here: https://github.com/sonarsource-cfamily-examples/linux-cmake-gitlab-ci-sc/blob/main/.gitlab-ci.yml
|
|
|
|
# get-sonar-binaries:
|
|
# stage: .pre
|
|
# cache:
|
|
# policy: push
|
|
# key: "${CI_COMMIT_SHORT_SHA}"
|
|
# paths:
|
|
# - build-wrapper/
|
|
# - sonar-scanner/
|
|
# script:
|
|
# - apt-get -qq update && apt-get -qq install curl unzip
|
|
# # Download sonar-scanner
|
|
# - curl -sSLo ./sonar-scanner.zip 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip'
|
|
# - unzip -o sonar-scanner.zip
|
|
# - mv sonar-scanner-5.0.1.3006-linux sonar-scanner
|
|
# # Download build-wrapper
|
|
# - curl -sSLo ./build-wrapper-linux-x86.zip "${SONAR_HOST_URL}/static/cpp/build-wrapper-linux-x86.zip"
|
|
# - unzip -oj build-wrapper-linux-x86.zip -d ./build-wrapper
|
|
# only:
|
|
# - merge_requests
|
|
# - master
|
|
# - develop
|
|
|
|
sonar:
|
|
stage: build
|
|
allow_failure: true
|
|
only:
|
|
refs:
|
|
- master
|
|
tags:
|
|
- non-shared
|
|
- docker
|
|
# cache:
|
|
# policy: pull-push
|
|
# key: "${CI_COMMIT_SHORT_SHA}"
|
|
# paths:
|
|
# - build-wrapper/
|
|
# - sonar-scanner/
|
|
# - bw-output/
|
|
interruptible: true
|
|
script:
|
|
# Run the build inside the build wrapper
|
|
- apt-get -qq update && apt-get -qq install --no-install-recommends -y --quiet ca-certificates cmake curl unzip g++ make libboost-test-dev libboost-timer-dev libboost-serialization-dev libblas-dev libfftw3-dev pkg-config gcovr lcov
|
|
- g++ --version
|
|
- mkdir build
|
|
# Download sonar-scanner
|
|
- curl -sSLo ./sonar-scanner.zip 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip'
|
|
- unzip -o sonar-scanner.zip
|
|
- mv sonar-scanner-5.0.1.3006-linux sonar-scanner
|
|
# Download build-wrapper
|
|
- curl -sSLo ./build-wrapper-linux-x86.zip "${SONAR_HOST_URL}/static/cpp/build-wrapper-linux-x86.zip"
|
|
- unzip -oj build-wrapper-linux-x86.zip -d ./build-wrapper
|
|
- cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DBOOST_MULTI_STANDALONE=1 -DBUILD_TESTING=0 -DCMAKE_CXX_FLAGS="--coverage -O0 -fno-inline -fno-inline-small-functions -fno-default-inline" -DCMAKE_EXE_LINKER_FLAGS="--coverage"
|
|
- build-wrapper/build-wrapper-linux-x86-64 --out-dir bw-output cmake --build build/ --verbose
|
|
- cd build
|
|
- ctest -j 1 --output-on-failure -T Test
|
|
- ctest -j 1 --output-on-failure -T Coverage
|
|
- gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml --root ${CI_PROJECT_DIR}
|
|
- cd ..
|
|
- sonar-scanner/bin/sonar-scanner -Dsonar.host.url="${SONAR_HOST_URL}" -Dsonar.token="${SONAR_TOKEN}" -Dsonar.cfamily.build-wrapper-output=bw-output -Dsonar.cfamily.gcov.reportsPath="build/"
|
|
# only:
|
|
# - merge_requests
|
|
# - master
|
|
# - main
|
|
# - develop
|
|
# needs: ["g++"]
|
|
|
|
# sonarcloud-check:
|
|
# stage: .post
|
|
# cache:
|
|
# policy: pull
|
|
# key: "${CI_COMMIT_SHORT_SHA}"
|
|
# paths:
|
|
# - build-wrapper/
|
|
# - sonar-scanner/
|
|
# - bw-output/
|
|
# script:
|
|
# - sonar-scanner/bin/sonar-scanner -Dsonar.host.url="${SONAR_HOST_URL}" -Dsonar.token="${SONAR_TOKEN}" -Dsonar.cfamily.build-wrapper-output=bw-output
|
|
# only:
|
|
# - merge_requests
|
|
# - master
|
|
# - develop
|