mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-10-05 01:49:02 +00:00
d348b11183
The reason why we did not support shared libraries when CUDA compiles were on is that virtual methods require a special linking step to pull together all virtual methods that might be called. I other words, you cannot call a virtual CUDA method defined inside a library. This requirement goes away when virtuals are removed. Also removed the necessity of using seprable compilation with cuda. Again, this is only needed when a CUDA function is defined in one translation unit and used in another. Now we can enforce that all translation units define their own CUDA functions. Also, suppress warnings in cuda/internal/ExecutionPolicy.h This is where we call the thrust algorithms. There must be some loop where it, on some code path, calls back a host function. This must be in an execution path that never happens. The thrust version has its own suppress, but that does not seem to actually suppress the warning (it just means that the warning does not tell you where the actual call is). Get around the problem by suppressing the warnings in VTK-m. Co-authored-by: Kenneth Moreland <morelandkd@ornl.gov> Co-authored-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com> Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
238 lines
5.5 KiB
YAML
238 lines
5.5 KiB
YAML
|
|
# Docker Images:
|
|
#
|
|
# * .gitlab/ci/docker/centos7/cuda10.2/
|
|
# - cuda
|
|
# - gcc 7.3.1
|
|
# * .gitlab/ci/docker/centos8/base/
|
|
# - gcc 8.3.1
|
|
# - clang 8.0.1
|
|
# - openmp
|
|
# - asan, ubsan
|
|
# * .gitlab/ci/docker/rhel8/cuda10.2/
|
|
# - cuda
|
|
# - gcc 8.2.1
|
|
# * .gitlab/ci/docker/ubuntu1604/base/
|
|
# - gcc 5.4.0
|
|
# - clang 3.8
|
|
# - clang 5.0
|
|
# - tbb
|
|
# - openmpi
|
|
# * .gitlab/ci/docker/ubuntu1604/cuda9.2/
|
|
# - cuda
|
|
# - gcc 5.4
|
|
# - tbb
|
|
# - openmp
|
|
# - openmpi
|
|
# * .gitlab/ci/docker/ubuntu1804/base/
|
|
# - gcc 6.5
|
|
# - gcc 7.4
|
|
# - gcc 9
|
|
# - clang 8
|
|
# - tbb
|
|
# - openmp
|
|
# - mpich2
|
|
# - hdf5
|
|
# * .gitlab/ci/docker/ubuntu1804/cuda11.1/
|
|
# - cuda
|
|
# - gcc 7
|
|
# - gcc 8
|
|
# - tbb
|
|
# - openmp
|
|
# - mpich2
|
|
# * .gitlab/ci/docker/ubuntu2004/doxygen/
|
|
# - gcc 9.3
|
|
# - tbb
|
|
# - openmp
|
|
# - mpich2
|
|
|
|
.docker_image: &docker_image
|
|
variables:
|
|
GIT_CLONE_PATH: $CI_BUILDS_DIR/gitlab-kitware-sciviz-ci
|
|
|
|
.centos7: ¢os7
|
|
image: "kitware/vtkm:ci-centos7_cuda10.2-20210128"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.centos8: ¢os8
|
|
image: "kitware/vtkm:ci-centos8-20201016"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.rhel8: &rhel8
|
|
image: "kitware/vtkm:ci-rhel8_cuda10.2-20201016"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.ubuntu1604: &ubuntu1604
|
|
image: "kitware/vtkm:ci-ubuntu1604-20201016"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.ubuntu1604_cuda: &ubuntu1604_cuda
|
|
image: "kitware/vtkm:ci-ubuntu1604_cuda9.2-20201016"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.ubuntu1804: &ubuntu1804
|
|
image: "kitware/vtkm:ci-ubuntu1804-20210107"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.ubuntu1804_cuda: &ubuntu1804_cuda
|
|
image: "kitware/vtkm:ci-ubuntu1804_cuda11.1-20201016"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.ubuntu1804_cuda_kokkos: &ubuntu1804_cuda_kokkos
|
|
image: "kitware/vtkm:ci-ubuntu1804_cuda11_kokkos-20210819"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.ubuntu2004_doxygen: &ubuntu2004_doxygen
|
|
image: "kitware/vtkm:ci-doxygen-20201016"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.ubuntu2004_kokkos: &ubuntu2004_kokkos
|
|
image: "kitware/vtkm:ci-ubuntu2004_kokkos-20201016"
|
|
extends:
|
|
- .docker_image
|
|
|
|
.only-default: &only-default
|
|
only:
|
|
- master@vtk/vtk-m
|
|
- tags@vtk/vtk-m
|
|
- merge_requests
|
|
|
|
.only-master: &only-master
|
|
only:
|
|
- master@vtk/vtk-m
|
|
|
|
|
|
# General Longer Term Tasks:
|
|
# - Setup clang tidy as sub-pipeline
|
|
# - Setup a machine to replicate the issue in https://gitlab.kitware.com/vtk/vtk-m/-/issues/447
|
|
# Note: Centos7 doesn't work as they ship separate standard library
|
|
# headers for each version. We will have to figure out something else
|
|
# like using spack or building llvm/clang from source
|
|
|
|
stages:
|
|
- build
|
|
- test
|
|
|
|
.use_minimum_supported_cmake:
|
|
variables:
|
|
CMAKE_VERSION: "3.13.5"
|
|
|
|
.install_cmake: &install_cmake |
|
|
export PATH=$PWD/.gitlab/cmake/bin:$PATH
|
|
.gitlab/ci/config/cmake.sh "$CMAKE_VERSION"
|
|
cmake --version
|
|
|
|
.cmake_build_linux: &cmake_build_linux
|
|
stage: build
|
|
timeout: 2 hours
|
|
interruptible: true
|
|
before_script:
|
|
- *install_cmake
|
|
- .gitlab/ci/config/sccache.sh
|
|
- export PATH=$PWD/.gitlab:$PATH
|
|
- SCCACHE_IDLE_TIMEOUT=0 sccache --start-server
|
|
- sccache --show-stats
|
|
- .gitlab/ci/config/google_benchmarks.sh
|
|
- "cmake --version"
|
|
- "cmake -V -P .gitlab/ci/config/fetch_vtkm_tags.cmake"
|
|
- "cmake -V -P .gitlab/ci/config/gitlab_ci_setup.cmake"
|
|
- "ctest -VV -S .gitlab/ci/ctest_configure.cmake"
|
|
script:
|
|
- "ctest -VV -S .gitlab/ci/ctest_build.cmake"
|
|
- sccache --show-stats
|
|
artifacts:
|
|
expire_in: 24 hours
|
|
when: always
|
|
paths:
|
|
# The artifacts of the build.
|
|
- build/bin/
|
|
- build/include/
|
|
- build/vtkm/thirdparty/diy/vtkmdiy/
|
|
- build/lib/
|
|
- build/config/
|
|
|
|
# CTest and CMake install files.
|
|
# XXX(globbing): Can be simplified with support from
|
|
# https://gitlab.com/gitlab-org/gitlab-runner/issues/4840
|
|
#
|
|
# Note: this also captures our CIState.cmake file
|
|
- build/CMakeCache.txt
|
|
- build/*.cmake
|
|
- build/*/*.cmake
|
|
- build/*/*/*.cmake
|
|
- build/*/*/*/*.cmake
|
|
- build/*/*/*/*/*.cmake
|
|
- build/*/*/*/*/*/*.cmake
|
|
- build/Testing/
|
|
|
|
# CDash files.
|
|
- build/DartConfiguration.tcl
|
|
|
|
.cmake_test_linux: &cmake_test_linux
|
|
stage: test
|
|
timeout: 50 minutes
|
|
interruptible: true
|
|
before_script:
|
|
- *install_cmake
|
|
script:
|
|
- "ctest -VV -S .gitlab/ci/ctest_test.cmake"
|
|
artifacts:
|
|
expire_in: 24 hours
|
|
when: always
|
|
paths:
|
|
# The generated regression testing images
|
|
- build/*.png
|
|
- build/*.pnm
|
|
- build/*.pmm
|
|
- build/*/*.png
|
|
- build/*/*.pnm
|
|
- build/*/*.pmm
|
|
- build/*/*/*.png
|
|
- build/*/*/*.pnm
|
|
- build/*/*/*.pmm
|
|
- build/*/*/*/*.png
|
|
- build/*/*/*/*.pnm
|
|
- build/*/*/*/*.pmm
|
|
reports:
|
|
junit:
|
|
- build/junit.xml
|
|
|
|
.cmake_memcheck_linux: &cmake_memcheck_linux
|
|
stage: test
|
|
timeout: 2 hours
|
|
interruptible: true
|
|
before_script:
|
|
- *install_cmake
|
|
script:
|
|
- "ctest -VV -S .gitlab/ci/ctest_memcheck.cmake"
|
|
artifacts:
|
|
expire_in: 24 hours
|
|
when: always
|
|
paths:
|
|
# The generated regression testing images
|
|
- build/*.png
|
|
- build/*.pnm
|
|
- build/*.pmm
|
|
reports:
|
|
junit:
|
|
- build/junit.xml
|
|
|
|
include:
|
|
- local: '/.gitlab/ci/centos7.yml'
|
|
- local: '/.gitlab/ci/centos8.yml'
|
|
- local: '/.gitlab/ci/doxygen.yml'
|
|
- local: '/.gitlab/ci/rhel8.yml'
|
|
- local: '/.gitlab/ci/ubuntu1604.yml'
|
|
- local: '/.gitlab/ci/ubuntu1804.yml'
|
|
- local: '/.gitlab/ci/ubuntu2004.yml'
|
|
- local: '/.gitlab/ci/windows10.yml'
|