perftest: add benchmark build

This commit is contained in:
Vicente Adolfo Bolea Sanchez 2022-07-05 19:42:16 -04:00
parent 19f10b9a0b
commit ebdd6b55a5
9 changed files with 97 additions and 46 deletions

@ -81,7 +81,7 @@
- .docker_image
.ubuntu1804_cuda: &ubuntu1804_cuda
image: "kitware/vtkm:ci-ubuntu1804_cuda11.6-20220407"
image: "kitware/vtkm:ci-ubuntu1804_cuda11-20220919"
extends:
- .docker_image
@ -96,7 +96,7 @@
- .docker_image
.ubuntu2004: &ubuntu2004
image: "kitware/vtkm:ci-ubuntu2004-20210920"
image: "kitware/vtkm:ci-ubuntu2004-20220623"
extends:
- .docker_image

@ -22,6 +22,9 @@ tar xf "$tarball"
mkdir build
mkdir "$install_dir"
cmake -GNinja -S benchmark* -B build -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON
cmake -GNinja -S benchmark* -B build \
-DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON \
-DCMAKE_BUILD_TYPE="Release"
cmake --build build
cmake --install build --prefix "$install_dir"

@ -107,6 +107,9 @@ foreach(option IN LISTS options)
set(VTKm_CUDA_Architecture "turing" CACHE STRING "")
endif()
elseif(ampere STREQUAL option)
set(CMAKE_CUDA_ARCHITECTURES "80" CACHE STRING "")
elseif(hip STREQUAL option)
if(CMAKE_VERSION VERSION_LESS_EQUAL 3.20)
message(FATAL_ERROR "VTK-m requires cmake > 3.20 to enable HIP support")
@ -154,6 +157,9 @@ foreach(option IN LISTS options)
else()
message(FATAL_ERROR "CCACHE version [${CCACHE_VERSION}] is <= 4")
endif()
elseif(perftest STREQUAL option)
set(VTKm_ENABLE_PERFORMANCE_TESTING "ON" CACHE STRING "")
endif()
endforeach()

@ -29,7 +29,7 @@ set(test_exclusions
string(REPLACE " " ";" test_exclusions "${test_exclusions}")
string(REPLACE ";" "|" test_exclusions "${test_exclusions}")
if (test_exclusions)
set(test_exclusions "(${test_exclusions})")
set(test_exclusions EXCLUDE "(${test_exclusions})")
endif ()
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.21)
@ -41,17 +41,32 @@ if (DEFINED ENV{CTEST_MAX_PARALLELISM})
set(PARALLEL_LEVEL $ENV{CTEST_MAX_PARALLELISM})
endif()
if (DEFINED ENV{TEST_INCLUSIONS})
set(test_inclusions INCLUDE $ENV{TEST_INCLUSIONS})
unset(test_exclusions)
endif()
ctest_test(APPEND
PARALLEL_LEVEL ${PARALLEL_LEVEL}
RETURN_VALUE test_result
EXCLUDE "${test_exclusions}"
${test_exclusions}
${test_inclusions}
REPEAT "UNTIL_PASS:${CTEST_REPEAT_UNTIL_PASS}"
${junit_args}
)
message(STATUS "ctest_test RETURN_VALUE: ${test_result}")
if(VTKm_ENABLE_PERFORMANCE_TESTING)
file(GLOB note_files
"${CTEST_BINARY_DIRECTORY}/benchmark_*.stdout"
"${CTEST_BINARY_DIRECTORY}/compare_*.stdout"
"${CTEST_BINARY_DIRECTORY}/$ENV{CI_COMMIT_SHA}_*.json")
list(APPEND CTEST_NOTES_FILES ${note_files})
endif()
if(NOT DEFINED ENV{GITLAB_CI_EMULATION})
ctest_submit(PARTS Test BUILD_ID build_id)
ctest_submit(PARTS Test Notes BUILD_ID build_id)
message(STATUS "Test submission build_id: ${build_id}")
endif()

@ -0,0 +1,24 @@
FROM nvidia/cuda:11.7.1-devel-ubuntu18.04
LABEL maintainer "Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>"
# Base dependencies for building VTK-m projects
RUN apt-get update && apt-get install -y --no-install-recommends \
clang-8 \
curl \
g++-8 \
git \
libmpich-dev \
libomp-dev \
libtbb-dev \
mpich \
ninja-build \
python3 \
python3-scipy \
&& \
rm -rf /var/lib/apt/lists/*
# Install Git LFS from official tarball, repo version is too old
RUN curl -OL https://github.com/git-lfs/git-lfs/releases/download/v3.2.0/git-lfs-linux-amd64-v3.2.0.tar.gz && \
tar -xvzf git-lfs-linux-amd64-v3.2.0.tar.gz && \
./git-lfs-3.2.0/install.sh && \
rm -rf ./git-lfs-3.2.0

@ -1,38 +0,0 @@
FROM nvidia/cuda:11.6.1-devel-ubuntu18.04
LABEL maintainer "Robert Maynard<robert.maynard@kitware.com>"
# Base dependencies for building VTK-m projects
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
g++-8 \
clang-8 \
git \
git-lfs \
libmpich-dev \
libomp-dev \
libtbb-dev \
mpich \
ninja-build \
&& \
rm -rf /var/lib/apt/lists/*
# Need to run git-lfs install manually on ubuntu based images when using the
# system packaged version
RUN git-lfs install
# Provide a consistent CMake path across all images
# Allow tests that require CMake to work correctly
RUN mkdir /opt/cmake && \
curl -L https://github.com/Kitware/CMake/releases/download/v3.16.7/cmake-3.16.7-Linux-x86_64.sh > cmake-3.16.7-Linux-x86_64.sh && \
sh cmake-3.16.7-Linux-x86_64.sh --prefix=/opt/cmake/ --exclude-subdir --skip-license && \
rm cmake-3.16.7-Linux-x86_64.sh
# Provide CMake 3.17 so we can re-run tests easily
# This will be used when we run just the tests
RUN mkdir /opt/cmake-latest/ && \
curl -L https://github.com/Kitware/CMake/releases/download/v3.17.3/cmake-3.17.3-Linux-x86_64.sh > cmake-3.17.3-Linux-x86_64.sh && \
sh cmake-3.17.3-Linux-x86_64.sh --prefix=/opt/cmake-latest/ --exclude-subdir --skip-license && \
rm cmake-3.17.3-Linux-x86_64.sh && \
ln -s /opt/cmake-latest/bin/ctest /opt/cmake-latest/bin/ctest-latest
ENV PATH "/opt/cmake/bin:/opt/cmake-latest/bin:${PATH}"

@ -4,7 +4,7 @@ LABEL maintainer "Vicente Adolfo Bolea Sanchez<vicente.bolea@kitware.com>"
ENV TZ=America/New_York
# Base dependencies for building VTK-m projects
RUN apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-install-recommends \
RUN apt update && DEBIAN_FRONTEND="noninteractive" apt install -y --no-install-recommends \
cmake \
curl \
g++ \
@ -16,7 +16,10 @@ RUN apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y --no-i
libhdf5-dev \
mpich \
ninja-build \
software-properties-common
python \
python3-scipy \
software-properties-common && \
apt clean
# Need to run git-lfs install manually on ubuntu based images when using the
# system packaged version

@ -220,3 +220,39 @@ test:ubuntu1804_kokkos:
- build:ubuntu1804_kokkos
needs:
- build:ubuntu1804_kokkos
build:ubuntu1804_cuda_perftest:
tags:
- build
- vtkm
- docker
- linux
extends:
- .ubuntu1804_cuda
- .cmake_build_linux
- .run_automatically
variables:
CMAKE_BUILD_TYPE: Release
VTKM_SETTINGS: "benchmarks+ampere+perftest+cuda+mpi+shared"
test:ubuntu1804_cuda_perftest:
tags:
- benchmark
- vtkm
- docker
- cuda-rt
- linux
extends:
- .ubuntu1804_cuda
- .cmake_test_linux
- .run_automatically
dependencies:
- build:ubuntu1804_cuda_perftest
needs:
- build:ubuntu1804_cuda_perftest
variables:
TEST_INCLUSIONS: "PerformanceTest"
VTKm_PERF_REMOTE_URL: "https://vbolea:$VTKM_BENCH_RECORDS_TOKEN@gitlab.kitware.com/vbolea/vtk-m-benchmark-records.git"
VTKm_PERF_ALPHA: "0.05"
VTKm_PERF_REPETITIONS: "10"
VTKm_PERF_DIST: "t"

@ -59,3 +59,5 @@ set(CTEST_REPEAT_UNTIL_PASS 3)
if (NOT x"@CMAKE_HIP_COMPILER@"x STREQUAL xx)
set(CTEST_REPEAT_UNTIL_PASS 0)
endif()
set(VTKm_ENABLE_PERFORMANCE_TESTING "@VTKm_ENABLE_PERFORMANCE_TESTING@")