Skip to content

Commit

Permalink
Merge Release 1.7.0 to master
Browse files Browse the repository at this point in the history
Release 1.7.0 to master

The Ginkgo team is proud to announce the new Ginkgo minor release 1.7.0. This release brings new features such as:
- Complete GPU-resident sparse direct solvers feature set and interfaces,
- Improved Cholesky factorization performance,
- A new MC64 reordering,
- Batched iterative solver support with the BiCGSTAB solver with batched Dense and ELL matrix types,
- MPI support for the SYCL backend,
- Improved ParILU(T)/ParIC(T) preconditioner convergence,
and more!

If you face an issue, please first check our [known issues page](https://github.com/ginkgo-project/ginkgo/wiki/Known-Issues) and the [open issues list](https://github.com/ginkgo-project/ginkgo/issues) and if you do not find a solution, feel free to [open a new issue](https://github.com/ginkgo-project/ginkgo/issues/new/choose) or ask a question using the [github discussions](https://github.com/ginkgo-project/ginkgo/discussions).

Supported systems and requirements:
+ For all platforms, CMake 3.16+
+ C++14 compliant compiler
+ Linux and macOS
  + GCC: 5.5+
  + clang: 3.9+
  + Intel compiler: 2019+
  + Apple Clang: 14.0 is tested. Earlier versions might also work.
  + NVHPC: 22.7+
  + Cray Compiler: 14.0.1+
  + CUDA module: CMake 3.18+, and CUDA 10.1+ or NVHPC 22.7+
  + HIP module: ROCm 4.5+
  + DPC++ module: Intel oneAPI 2022.1+ with oneMKL and oneDPL. Set the CXX compiler to `dpcpp` or `icpx`.
  + MPI: standard version 3.1+, ideally GPU Aware, for best performance
+ Windows
  + MinGW: GCC 5.5+
  + Microsoft Visual Studio: VS 2019+
  + CUDA module: CUDA 10.1+, Microsoft Visual Studio
  + OpenMP module: MinGW.

### Version support changes

+ CUDA 9.2 is no longer supported and 10.0 is untested [#1382](#1382)
+ Ginkgo now requires CMake version 3.16 (and 3.18 for CUDA) [#1368](#1368)

### Interface changes

+ `const` Factory parameters can no longer be modified through `with_*` functions, as this breaks const-correctness [#1336](#1336) [#1439](#1439)

### New Deprecations

+ The `device_reset` parameter of CUDA and HIP executors no longer has an effect, and its `allocation_mode` parameters have been deprecated in favor of the `Allocator` interface. [#1315](#1315)
+ The CMake parameter `GINKGO_BUILD_DPCPP` has been deprecated in favor of `GINKGO_BUILD_SYCL`. [#1350](#1350)
+ The `gko::reorder::Rcm` interface has been deprecated in favor of `gko::experimental::reorder::Rcm` based on `Permutation`. [#1418](#1418)
+ The Permutation class' `permute_mask` functionality. [#1415](#1415)
+ Multiple functions with typos (`set_complex_subpsace()`, range functions such as `conj_operaton` etc). [#1348](#1348)

### Summary of previous deprecations
+ `gko::lend()` is not necessary anymore.
+ The classes `RelativeResidualNorm` and `AbsoluteResidualNorm` are deprecated in favor of `ResidualNorm`.
+ The class `AmgxPgm` is deprecated in favor of `Pgm`.
+ Default constructors for the CSR `load_balance` and `automatical` strategies
+ The PolymorphicObject's move-semantic `copy_from` variant
+ The templated `SolverBase` class.
+ The class `MachineTopology` is deprecated in favor of `machine_topology`.
+ Logger constructors and create functions with the `executor` parameter.
+ The virtual, protected, Dense functions `compute_norm1_impl`, `add_scaled_impl`, etc.
+ Logger events for solvers and criterion without the additional `implicit_tau_sq` parameter.
+ The global `gko::solver::default_krylov_dim`, use instead `gko::solver::gmres_default_krylov_dim`.

### Added features

+ Adds a batch::BatchLinOp class that forms a base class for batched linear operators such as batched matrix formats, solver and preconditioners [#1379](#1379)
+ Adds a batch::MultiVector class that enables operations such as dot, norm, scale on batched vectors [#1371](#1371)
+ Adds a batch::Dense matrix format that stores batched dense matrices and provides gemv operations for these dense matrices. [#1413](#1413)
+ Adds a batch::Ell matrix format that stores batched Ell matrices and provides spmv operations for these batched Ell matrices. [#1416](#1416) [#1437](#1437)
+ Add a batch::Bicgstab solver (class, core, and reference kernels) that enables iterative solution of batched linear systems [#1438](#1438).
+ Add device kernels (CUDA, HIP, and DPCPP) for batch::Bicgstab solver. [#1443](#1443).
+ New MC64 reordering algorithm which optimizes the diagonal product or sum of a matrix by permuting the rows, and computes additional scaling factors for equilibriation [#1120](#1120)
+ New interface for (non-symmetric) permutation and scaled permutation of Dense and Csr matrices [#1415](#1415)
+ LU and Cholesky Factorizations can now be separated into their factors [#1432](#1432)
+ New symbolic LU factorization algorithm that is optimized for matrices with an almost-symmetric sparsity pattern [#1445](#1445)
+ Sorting kernels for SparsityCsr on all backends [#1343](#1343)
+ Allow passing pre-generated local solver as factory parameter for the distributed Schwarz preconditioner [#1426](#1426)
+ Add DPCPP kernels for Partition [#1034](#1034), and CSR's `check_diagonal_entries` and `add_scaled_identity` functionality [#1436](#1436)
+ Adds a helper function to create a partition based on either local sizes, or local ranges [#1227](#1227)
+ Add function to compute arithmetic mean of dense and distributed vectors [#1275](#1275)
+ Adds `icpx` compiler supports [#1350](#1350)
+ All backends can be built simultaneously [#1333](#1333)
+ Emits a CMake warning in downstream projects that use different compilers than the installed Ginkgo [#1372](#1372)
+ Reordering algorithms in sparse_blas benchmark [#1354](#1354)
+ Benchmarks gained an `-allocator` parameter to specify device allocators [#1385](#1385)
+ Benchmarks gained an `-input_matrix` parameter that initializes the input JSON based on the filename [#1387](#1387)
+ Benchmark inputs can now be reordered as a preprocessing step [#1408](#1408)


### Improvements

+ Significantly improve Cholesky factorization performance [#1366](#1366)
+ Improve parallel build performance [#1378](#1378)
+ Allow constrained parallel test execution using CTest resources [#1373](#1373)
+ Use arithmetic type more inside mixed precision ELL [#1414](#1414)
+ Most factory parameters of factory type no longer need to be constructed explicitly via `.on(exec)` [#1336](#1336) [#1439](#1439)
+ Improve ParILU(T)/ParIC(T) convergence by using more appropriate atomic operations [#1434](#1434)

### Fixes

+ Fix an over-allocation for OpenMP reductions [#1369](#1369)
+ Fix DPCPP's common-kernel reduction for empty input sizes [#1362](#1362)
+ Fix several typos in the API and documentation [#1348](#1348)
+ Fix inconsistent `Threads` between generations [#1388](#1388)
+ Fix benchmark median condition [#1398](#1398)
+ Fix HIP 5.6.0 compilation [#1411](#1411)
+ Fix missing destruction of rand_generator from cuda/hip [#1417](#1417)
+ Fix PAPI logger destruction order [#1419](#1419)
+ Fix TAU logger compilation [#1422](#1422)
+ Fix relative criterion to not iterate if the residual is already zero [#1079](#1079)
+ Fix memory_order invocations with C++20 changes [#1402](#1402)
+ Fix `check_diagonal_entries_exist` report correctly when only missing diagonal value in the last rows. [#1440](#1440)
+ Fix checking OpenMPI version in cross-compilation settings [#1446](#1446)
+ Fix false-positive deprecation warnings in Ginkgo, especially for the old Rcm (it doesn't emit deprecation warnings anymore as a result but is still considered deprecated) [#1444](#1444)


### Related PR: #1451
  • Loading branch information
tcojean authored Nov 10, 2023
2 parents 1f1ed46 + 6cee27c commit 49242ff
Show file tree
Hide file tree
Showing 764 changed files with 67,224 additions and 11,151 deletions.
23 changes: 23 additions & 0 deletions .github/_typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
[files]
extend-exclude = ["third_party/*", "*.svg"]

[default.extend-words]
dout = "dout"
nd = "nd"
tht = "tht"
automatical = "automatical"
strat = "strat"
entrie = "entrie"
agregate = "agregate" # since that script name is already in ginkgo-data repo

[default.extend-identifiers]
set_complex_subpsace = "set_complex_subpsace" # remove when deprecated function is gone
HSA_HEADER = "HSA_HEADER"
conj_operaton = "conj_operaton" # considered interface break in range.hpp
imag_operaton = "imag_operaton" # considered interface break in range.hpp
real_operaton = "real_operaton" # considered interface break in range.hpp
one_operaton = "one_operaton" # considered interface break in range.hpp
abs_operaton = "abs_operaton" # considered interface break in range.hpp
max_operaton = "max_operaton" # considered interface break in range.hpp
min_operaton = "min_operaton" # considered interface break in range.hpp
squared_norm_operaton = "squared_norm_operaton" # considered interface break in range.hpp
2 changes: 1 addition & 1 deletion .github/workflows/bot-pr-updated.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
if: github.event.pull_request.author_association == 'COLLABORATOR' || github.event.pull_request.author_association == 'MEMBER' || github.event.pull_request.author_association == 'OWNER'
env:
CMAKE_FLAGS: -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=DEBUG -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF -DGINKGO_BUILD_BENCHMARKS=OFF -DGINKGO_BUILD_HWLOC=OFF -DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF -DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_DPCPP=OFF
CMAKE_FLAGS: -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=DEBUG -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF -DGINKGO_BUILD_BENCHMARKS=OFF -DGINKGO_BUILD_HWLOC=OFF -DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF -DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_SYCL=OFF
steps:
- name: Checkout the new code (shallow clone)
uses: actions/checkout@v3
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ jobs:
fail-fast: false
matrix:
config:
- {build_type: "Release", name: "intel/release/shared", "mixed": "ON"}
- {compiler: "dpcpp", build_type: "Release", name: "intel/dpcpp/release/shared", mixed: "ON"}
- {compiler: "icpx", build_type: "Release", name: "intel/icpx/release/shared", mixed: "OFF"}
name: ${{ matrix.config.name }}
runs-on: [gpu_intel]

Expand All @@ -35,9 +36,9 @@ jobs:
spack find --loaded
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=install_ginkgo -DCMAKE_CXX_COMPILER=dpcpp -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }} -DGINKGO_DPCPP_SINGLE_MODE=ON
cmake .. -DCMAKE_INSTALL_PREFIX=install_ginkgo -DGINKGO_COMPILER_FLAGS="-ffp-model=precise" -DCMAKE_CXX_COMPILER=${{ matrix.config.compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }} -DGINKGO_DPCPP_SINGLE_MODE=ON
make -j8
SYCL_DEVICE_FILTER=level_zero ctest -j10 --output-on-failure
ONEAPI_DEVICE_SELECTOR=level_zero:gpu ctest -j10 --output-on-failure
- name: install
run: |
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/spell_check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Test GitHub Action
on:
pull_request:
types: [opened, synchronize]

jobs:
run:
name: Spell Check with Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Check for typos
uses: crate-ci/typos@master
with:
config: .github/_typos.toml

4 changes: 3 additions & 1 deletion .github/workflows/windows-msvc-ref.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ jobs:
fail-fast: false
matrix:
config:
- {shared: "ON", build_type: "Debug", name: "reference/debug/shared"}
# Debug shared exceeds symbol limit
# - {shared: "ON", build_type: "Debug", name: "reference/debug/shared"}
- {shared: "OFF", build_type: "Release", name: "reference/release/static"}
- {shared: "ON", build_type: "Release", name: "reference/release/shared"}
# Debug static needs too much storage
# - {shared: "OFF", build_type: "Debug", name: "reference/debug/static"}
name: msvc/${{ matrix.config.name }}
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ compile_commands.json
CTestTestfile.cmake
build

### Python
__pycache__

### IDE
# Clion
.idea
Expand Down
102 changes: 55 additions & 47 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ include:
- local: '.gitlab/rules.yml'
- local: '.gitlab/scripts.yml'
- local: '.gitlab/variables.yml'
# This is a workaround to conditionally make the branch pipelines
# interruptible, because the flag does not directly support rules [1].
#
# [1] https://gitlab.com/gitlab-org/gitlab/-/issues/194023#note_1225906002
- local: '.gitlab/add-interrupt.yml'
rules:
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "develop" && $CI_COMMIT_TAG !~ /^v\d+\.\d+\.\d+/

sync:
stage: sync
Expand Down Expand Up @@ -86,20 +93,6 @@ trigger_pipeline:
# Build jobs
# Job with example runs.
# cuda 9.2 and friends
build/cuda92/nompi/gcc/all/release/shared:
extends:
- .build_and_test_template
- .default_variables
- .quick_test_condition
- .use_gko-cuda92-mvapich2-gnu7-llvm50-intel2017
variables:
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
BUILD_HIP: "ON"
BUILD_TYPE: "Release"
CUDA_ARCH: 61

# cuda 10.1 and friends
# Build CUDA NVIDIA without omp
# Make sure that our jobs run when HWLOC is
Expand All @@ -120,6 +113,7 @@ build/cuda101/nompi/clang/cuda_wo_omp/release/shared:
CUDA_ARCH: 35

# Job with example runs.
# Also explicitly test PAPI SDE
build/cuda101/openmpi/gcc/all/debug/shared:
extends:
- .build_template
Expand All @@ -133,6 +127,7 @@ build/cuda101/openmpi/gcc/all/debug/shared:
MPI_AS_ROOT: "ON"
BUILD_HIP: "ON"
BUILD_TYPE: "Debug"
BUILD_PAPI_SDE: "ON"
RUN_EXAMPLES: "ON"
CUDA_ARCH: 35

Expand Down Expand Up @@ -169,7 +164,6 @@ build/cuda101/nompi/clang/all/release/static:
# MPI_AS_ROOT: "ON"
# BUILD_HIP: "OFF"
# BUILD_TYPE: "Release"
# CUDA_ARCH: 61


#build/clang-cuda101/nompi/clang/cuda/debug/static:
Expand All @@ -187,7 +181,6 @@ build/cuda101/nompi/clang/all/release/static:
# BUILD_TYPE: "Debug"
# FAST_TESTS: "ON"
# BUILD_SHARED_LIBS: "OFF"
# CUDA_ARCH: 61


# cuda 10.2 and friends
Expand Down Expand Up @@ -272,6 +265,8 @@ test/cuda110/mvapich2/gcc/cuda/debug/shared:
SLURM_GRES: "gpu:4"
SLURM_TIME: "02:00:00"
dependencies: null
# FIXME: current slurm always reports failure even if all tests are passed.
allow_failure: yes
needs: [ "build/cuda110/mvapich2/gcc/cuda/debug/shared" ]


Expand Down Expand Up @@ -302,9 +297,11 @@ test/cuda110/nompi/clang/cuda/release/static:
variables:
USE_NAME: "cuda110-nompi-clang-${CI_PIPELINE_ID}"
SLURM_PARTITION: "accelerated"
SLURM_GRES: "gpu:1"
SLURM_GRES: "gpu:4"
SLURM_TIME: "01:30:00"
dependencies: null
# FIXME: current slurm always reports failure even if all tests are passed.
allow_failure: yes
needs: [ "build/cuda110/nompi/clang/cuda/release/static" ]


Expand Down Expand Up @@ -336,9 +333,11 @@ test/cuda110/nompi/intel/cuda/debug/static:
variables:
USE_NAME: "cuda110-nompi-intel-${CI_PIPELINE_ID}"
SLURM_PARTITION: "accelerated"
SLURM_GRES: "gpu:1"
SLURM_GRES: "gpu:4"
SLURM_TIME: "02:00:00"
dependencies: null
# FIXME: current slurm always reports failure even if all tests are passed.
allow_failure: yes
needs: [ "build/cuda110/nompi/intel/cuda/debug/static" ]


Expand All @@ -348,7 +347,7 @@ build/cuda114/nompi/gcc/cuda/debug/shared:
- .build_and_test_template
- .default_variables
- .quick_test_condition
- .use_gko_cuda114-openmpi-gnu11-llvm12
- .use_gko_cuda114-openmpi-gnu10-llvm12
variables:
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
Expand All @@ -358,7 +357,6 @@ build/cuda114/nompi/gcc/cuda/debug/shared:
CXX_FLAGS: "-Wno-error=maybe-uninitialized"
# disable spurious unused argument warning
EXTRA_CMAKE_FLAGS: "-DCMAKE_CUDA_FLAGS=-diag-suppress=177"
CUDA_ARCH: 61


# nvhpc and friends
Expand All @@ -381,7 +379,6 @@ build/nvhpc233/cuda120/nompi/nvcpp/release/static:
CXX_FLAGS: "--diag_suppress=useless_using_declaration,declared_but_not_referenced"
# disable spurious unused argument warning
EXTRA_CMAKE_FLAGS: "-DCMAKE_CUDA_FLAGS=-diag-suppress=177"
CUDA_ARCH: 61

build/nvhpc227/cuda117/nompi/nvcpp/debug/shared:
extends:
Expand All @@ -401,7 +398,6 @@ build/nvhpc227/cuda117/nompi/nvcpp/debug/shared:
CXX_FLAGS: "--diag_suppress=useless_using_declaration,declared_but_not_referenced"
# disable spurious unused argument warning
EXTRA_CMAKE_FLAGS: "-DCMAKE_CUDA_FLAGS=-diag-suppress=177"
CUDA_ARCH: 61

# ROCm 4.5 and friends
build/amd/nompi/gcc/rocm45/release/shared:
Expand Down Expand Up @@ -538,24 +534,13 @@ build/nocuda/openmpi/clang/omp/debug/static:
FAST_TESTS: "ON"
BUILD_SHARED_LIBS: "OFF"

test/nocuda/openmpi/clang/omp/debug/static:
extends:
- .build_and_test_template
- .default_variables
- .full_test_condition
- .use_gko-nocuda-openmpi-gnu9-llvm8
variables:
USE_NAME: "nocuda-openmpi-clang-${CI_PIPELINE_ID}"
dependencies: null
needs: [ "build/nocuda/openmpi/clang/omp/debug/static" ]

# nocuda with the oldest supported compiler
build/nocuda/nompi/gcc/omp/release/static:
extends:
- .build_and_test_template
- .default_variables
- .quick_test_condition
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2018
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2019
variables:
BUILD_OMP: "ON"
BUILD_TYPE: "Release"
Expand All @@ -566,7 +551,7 @@ build/nocuda-nomixed/nompi/clang/omp/release/static:
- .build_and_test_template
- .default_variables
- .full_test_condition
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2018
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2019
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
Expand Down Expand Up @@ -602,7 +587,7 @@ build/nocuda-nomixed/nompi/clang/omp/debug/static:
BUILD_SHARED_LIBS: "OFF"
MIXED_PRECISION: "OFF"

build/dpcpp/2022-1/cpu/release/static:
build/dpcpp/2022-1/cpu/release/shared:
extends:
- .build_and_test_template
- .default_variables
Expand All @@ -611,10 +596,11 @@ build/dpcpp/2022-1/cpu/release/static:
variables:
C_COMPILER: "gcc"
CXX_COMPILER: "dpcpp"
BUILD_DPCPP: "ON"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
BUILD_SHARED_LIBS: "ON"
SYCL_DEVICE_TYPE: "CPU"
SYCL_DEVICE_FILTER: "*:cpu"
SLURM_PARTITION: "cpu"
SLURM_TIME: "2:00:00"
# This job is not in exclusive mode
Expand All @@ -629,11 +615,12 @@ build/dpcpp/igpu/release/shared:
variables:
C_COMPILER: "gcc"
CXX_COMPILER: "dpcpp"
BUILD_DPCPP: "ON"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
BUILD_SHARED_LIBS: "ON"
DPCPP_SINGLE_MODE: "ON"
SYCL_DEVICE_TYPE: "GPU"
ONEAPI_DEVICE_SELECTOR: "*:gpu"

# TODO: Enable when debug shared library size issues are fixed
# build/dpcpp/level_zero_igpu/debug/shared:
Expand All @@ -645,11 +632,12 @@ build/dpcpp/igpu/release/shared:
# variables:
# C_COMPILER: "gcc"
# CXX_COMPILER: "dpcpp"
# BUILD_DPCPP: "ON"
# BUILD_SYCL: "ON"
# GKO_COMPILER_FLAGS: "-ffp-model=precise"
# BUILD_TYPE: "Debug"
# BUILD_SHARED_LIBS: "ON"
# DPCPP_SINGLE_MODE: "ON"
# SYCL_DEVICE_FILTER: "Level_Zero:GPU"
# ONEAPI_DEVICE_SELECTOR: "level_zero:gpu"

# It gives two available backends of GPU on tests
build/dpcpp/dgpu/release/static:
Expand All @@ -661,11 +649,12 @@ build/dpcpp/dgpu/release/static:
variables:
C_COMPILER: "gcc"
CXX_COMPILER: "dpcpp"
BUILD_DPCPP: "ON"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
BUILD_SHARED_LIBS: "OF"
DPCPP_SINGLE_MODE: "ON"
SYCL_DEVICE_TYPE: "GPU"
ONEAPI_DEVICE_SELECTOR: "*:gpu"

build/dpcpp/level_zero_dgpu/release/shared:
extends:
Expand All @@ -676,10 +665,26 @@ build/dpcpp/level_zero_dgpu/release/shared:
variables:
C_COMPILER: "gcc"
CXX_COMPILER: "dpcpp"
BUILD_DPCPP: "ON"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
DPCPP_SINGLE_MODE: "ON"
ONEAPI_DEVICE_SELECTOR: "level_zero:gpu"

build/icpx/level_zero_dgpu/release/shared:
extends:
- .build_and_test_template
- .default_variables
- .quick_test_condition
- .use_gko-oneapi-dgpu
variables:
C_COMPILER: "icx"
CXX_COMPILER: "icpx"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
DPCPP_SINGLE_MODE: "ON"
SYCL_DEVICE_FILTER: "Level_Zero:GPU"
ONEAPI_DEVICE_SELECTOR: "level_zero:gpu"

# Job with important warnings as error
warnings:
Expand All @@ -694,6 +699,7 @@ warnings:
BUILD_CUDA: "ON"
BUILD_HIP: "ON"
CXX_FLAGS: "-Werror=pedantic -pedantic-errors"
GKO_COMPILER_FLAGS: "-Wpedantic"
allow_failure: yes

# Ensure kernel modules do not depend on core
Expand Down Expand Up @@ -818,6 +824,7 @@ sonarqube_cov:
# Deploy documentation to github-pages
gh-pages:
stage: deploy
interruptible: false
extends:
- .default_variables
- .deploy_condition
Expand All @@ -833,7 +840,7 @@ gh-pages:
-DCMAKE_CUDA_COMPILER=${CUDA_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
-DBUILD_SHARED_LIBS=ON ${EXTRA_CMAKE_FLAGS} -DGINKGO_DEVEL_TOOLS=OFF
-DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF
-DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_DPCPP=OFF -DGINKGO_BUILD_MPI=OFF
-DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_SYCL=OFF -DGINKGO_BUILD_MPI=OFF
-DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF
-DGINKGO_BUILD_DOC=ON -DGINKGO_DOC_GENERATE_PDF=ON
- make usr
Expand Down Expand Up @@ -921,6 +928,7 @@ cudamemcheck:

new-issue-on-failure:
stage: on-failure
interruptible: false
extends:
- .default_variables
- .use_status-job-settings
Expand Down
2 changes: 2 additions & 0 deletions .gitlab/add-interrupt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
default:
interruptible: true
Loading

0 comments on commit 49242ff

Please sign in to comment.