Skip to content

Commit 49242ff

Browse files
author
Terry Cojean
authored
Merge Release 1.7.0 to master
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
2 parents 1f1ed46 + 6cee27c commit 49242ff

764 files changed

Lines changed: 67224 additions & 11151 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/_typos.toml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
[files]
2+
extend-exclude = ["third_party/*", "*.svg"]
3+
4+
[default.extend-words]
5+
dout = "dout"
6+
nd = "nd"
7+
tht = "tht"
8+
automatical = "automatical"
9+
strat = "strat"
10+
entrie = "entrie"
11+
agregate = "agregate" # since that script name is already in ginkgo-data repo
12+
13+
[default.extend-identifiers]
14+
set_complex_subpsace = "set_complex_subpsace" # remove when deprecated function is gone
15+
HSA_HEADER = "HSA_HEADER"
16+
conj_operaton = "conj_operaton" # considered interface break in range.hpp
17+
imag_operaton = "imag_operaton" # considered interface break in range.hpp
18+
real_operaton = "real_operaton" # considered interface break in range.hpp
19+
one_operaton = "one_operaton" # considered interface break in range.hpp
20+
abs_operaton = "abs_operaton" # considered interface break in range.hpp
21+
max_operaton = "max_operaton" # considered interface break in range.hpp
22+
min_operaton = "min_operaton" # considered interface break in range.hpp
23+
squared_norm_operaton = "squared_norm_operaton" # considered interface break in range.hpp

.github/workflows/bot-pr-updated.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
runs-on: ubuntu-latest
2929
if: github.event.pull_request.author_association == 'COLLABORATOR' || github.event.pull_request.author_association == 'MEMBER' || github.event.pull_request.author_association == 'OWNER'
3030
env:
31-
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
31+
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
3232
steps:
3333
- name: Checkout the new code (shallow clone)
3434
uses: actions/checkout@v3

.github/workflows/intel.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ jobs:
2121
fail-fast: false
2222
matrix:
2323
config:
24-
- {build_type: "Release", name: "intel/release/shared", "mixed": "ON"}
24+
- {compiler: "dpcpp", build_type: "Release", name: "intel/dpcpp/release/shared", mixed: "ON"}
25+
- {compiler: "icpx", build_type: "Release", name: "intel/icpx/release/shared", mixed: "OFF"}
2526
name: ${{ matrix.config.name }}
2627
runs-on: [gpu_intel]
2728

@@ -35,9 +36,9 @@ jobs:
3536
spack find --loaded
3637
mkdir build
3738
cd build
38-
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
39+
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
3940
make -j8
40-
SYCL_DEVICE_FILTER=level_zero ctest -j10 --output-on-failure
41+
ONEAPI_DEVICE_SELECTOR=level_zero:gpu ctest -j10 --output-on-failure
4142
4243
- name: install
4344
run: |

.github/workflows/spell_check.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Test GitHub Action
2+
on:
3+
pull_request:
4+
types: [opened, synchronize]
5+
6+
jobs:
7+
run:
8+
name: Spell Check with Typos
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v3
12+
- name: Check for typos
13+
uses: crate-ci/typos@master
14+
with:
15+
config: .github/_typos.toml
16+

.github/workflows/windows-msvc-ref.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ jobs:
2727
fail-fast: false
2828
matrix:
2929
config:
30-
- {shared: "ON", build_type: "Debug", name: "reference/debug/shared"}
30+
# Debug shared exceeds symbol limit
31+
# - {shared: "ON", build_type: "Debug", name: "reference/debug/shared"}
3132
- {shared: "OFF", build_type: "Release", name: "reference/release/static"}
33+
- {shared: "ON", build_type: "Release", name: "reference/release/shared"}
3234
# Debug static needs too much storage
3335
# - {shared: "OFF", build_type: "Debug", name: "reference/debug/static"}
3436
name: msvc/${{ matrix.config.name }}

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ compile_commands.json
1212
CTestTestfile.cmake
1313
build
1414

15+
### Python
16+
__pycache__
17+
1518
### IDE
1619
# Clion
1720
.idea

.gitlab-ci.yml

Lines changed: 55 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ include:
1919
- local: '.gitlab/rules.yml'
2020
- local: '.gitlab/scripts.yml'
2121
- local: '.gitlab/variables.yml'
22+
# This is a workaround to conditionally make the branch pipelines
23+
# interruptible, because the flag does not directly support rules [1].
24+
#
25+
# [1] https://gitlab.com/gitlab-org/gitlab/-/issues/194023#note_1225906002
26+
- local: '.gitlab/add-interrupt.yml'
27+
rules:
28+
- if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "develop" && $CI_COMMIT_TAG !~ /^v\d+\.\d+\.\d+/
2229

2330
sync:
2431
stage: sync
@@ -86,20 +93,6 @@ trigger_pipeline:
8693
8794
# Build jobs
8895
# Job with example runs.
89-
# cuda 9.2 and friends
90-
build/cuda92/nompi/gcc/all/release/shared:
91-
extends:
92-
- .build_and_test_template
93-
- .default_variables
94-
- .quick_test_condition
95-
- .use_gko-cuda92-mvapich2-gnu7-llvm50-intel2017
96-
variables:
97-
BUILD_OMP: "ON"
98-
BUILD_CUDA: "ON"
99-
BUILD_HIP: "ON"
100-
BUILD_TYPE: "Release"
101-
CUDA_ARCH: 61
102-
10396
# cuda 10.1 and friends
10497
# Build CUDA NVIDIA without omp
10598
# Make sure that our jobs run when HWLOC is
@@ -120,6 +113,7 @@ build/cuda101/nompi/clang/cuda_wo_omp/release/shared:
120113
CUDA_ARCH: 35
121114

122115
# Job with example runs.
116+
# Also explicitly test PAPI SDE
123117
build/cuda101/openmpi/gcc/all/debug/shared:
124118
extends:
125119
- .build_template
@@ -133,6 +127,7 @@ build/cuda101/openmpi/gcc/all/debug/shared:
133127
MPI_AS_ROOT: "ON"
134128
BUILD_HIP: "ON"
135129
BUILD_TYPE: "Debug"
130+
BUILD_PAPI_SDE: "ON"
136131
RUN_EXAMPLES: "ON"
137132
CUDA_ARCH: 35
138133

@@ -169,7 +164,6 @@ build/cuda101/nompi/clang/all/release/static:
169164
# MPI_AS_ROOT: "ON"
170165
# BUILD_HIP: "OFF"
171166
# BUILD_TYPE: "Release"
172-
# CUDA_ARCH: 61
173167

174168

175169
#build/clang-cuda101/nompi/clang/cuda/debug/static:
@@ -187,7 +181,6 @@ build/cuda101/nompi/clang/all/release/static:
187181
# BUILD_TYPE: "Debug"
188182
# FAST_TESTS: "ON"
189183
# BUILD_SHARED_LIBS: "OFF"
190-
# CUDA_ARCH: 61
191184

192185

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

277272

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

310307

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

344343

@@ -348,7 +347,7 @@ build/cuda114/nompi/gcc/cuda/debug/shared:
348347
- .build_and_test_template
349348
- .default_variables
350349
- .quick_test_condition
351-
- .use_gko_cuda114-openmpi-gnu11-llvm12
350+
- .use_gko_cuda114-openmpi-gnu10-llvm12
352351
variables:
353352
BUILD_OMP: "ON"
354353
BUILD_CUDA: "ON"
@@ -358,7 +357,6 @@ build/cuda114/nompi/gcc/cuda/debug/shared:
358357
CXX_FLAGS: "-Wno-error=maybe-uninitialized"
359358
# disable spurious unused argument warning
360359
EXTRA_CMAKE_FLAGS: "-DCMAKE_CUDA_FLAGS=-diag-suppress=177"
361-
CUDA_ARCH: 61
362360

363361

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

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

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

541-
test/nocuda/openmpi/clang/omp/debug/static:
542-
extends:
543-
- .build_and_test_template
544-
- .default_variables
545-
- .full_test_condition
546-
- .use_gko-nocuda-openmpi-gnu9-llvm8
547-
variables:
548-
USE_NAME: "nocuda-openmpi-clang-${CI_PIPELINE_ID}"
549-
dependencies: null
550-
needs: [ "build/nocuda/openmpi/clang/omp/debug/static" ]
551-
552537
# nocuda with the oldest supported compiler
553538
build/nocuda/nompi/gcc/omp/release/static:
554539
extends:
555540
- .build_and_test_template
556541
- .default_variables
557542
- .quick_test_condition
558-
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2018
543+
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2019
559544
variables:
560545
BUILD_OMP: "ON"
561546
BUILD_TYPE: "Release"
@@ -566,7 +551,7 @@ build/nocuda-nomixed/nompi/clang/omp/release/static:
566551
- .build_and_test_template
567552
- .default_variables
568553
- .full_test_condition
569-
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2018
554+
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2019
570555
variables:
571556
C_COMPILER: "clang"
572557
CXX_COMPILER: "clang++"
@@ -602,7 +587,7 @@ build/nocuda-nomixed/nompi/clang/omp/debug/static:
602587
BUILD_SHARED_LIBS: "OFF"
603588
MIXED_PRECISION: "OFF"
604589

605-
build/dpcpp/2022-1/cpu/release/static:
590+
build/dpcpp/2022-1/cpu/release/shared:
606591
extends:
607592
- .build_and_test_template
608593
- .default_variables
@@ -611,10 +596,11 @@ build/dpcpp/2022-1/cpu/release/static:
611596
variables:
612597
C_COMPILER: "gcc"
613598
CXX_COMPILER: "dpcpp"
614-
BUILD_DPCPP: "ON"
599+
BUILD_SYCL: "ON"
600+
GKO_COMPILER_FLAGS: "-ffp-model=precise"
615601
BUILD_TYPE: "Release"
616602
BUILD_SHARED_LIBS: "ON"
617-
SYCL_DEVICE_TYPE: "CPU"
603+
SYCL_DEVICE_FILTER: "*:cpu"
618604
SLURM_PARTITION: "cpu"
619605
SLURM_TIME: "2:00:00"
620606
# This job is not in exclusive mode
@@ -629,11 +615,12 @@ build/dpcpp/igpu/release/shared:
629615
variables:
630616
C_COMPILER: "gcc"
631617
CXX_COMPILER: "dpcpp"
632-
BUILD_DPCPP: "ON"
618+
BUILD_SYCL: "ON"
619+
GKO_COMPILER_FLAGS: "-ffp-model=precise"
633620
BUILD_TYPE: "Release"
634621
BUILD_SHARED_LIBS: "ON"
635622
DPCPP_SINGLE_MODE: "ON"
636-
SYCL_DEVICE_TYPE: "GPU"
623+
ONEAPI_DEVICE_SELECTOR: "*:gpu"
637624

638625
# TODO: Enable when debug shared library size issues are fixed
639626
# build/dpcpp/level_zero_igpu/debug/shared:
@@ -645,11 +632,12 @@ build/dpcpp/igpu/release/shared:
645632
# variables:
646633
# C_COMPILER: "gcc"
647634
# CXX_COMPILER: "dpcpp"
648-
# BUILD_DPCPP: "ON"
635+
# BUILD_SYCL: "ON"
636+
# GKO_COMPILER_FLAGS: "-ffp-model=precise"
649637
# BUILD_TYPE: "Debug"
650638
# BUILD_SHARED_LIBS: "ON"
651639
# DPCPP_SINGLE_MODE: "ON"
652-
# SYCL_DEVICE_FILTER: "Level_Zero:GPU"
640+
# ONEAPI_DEVICE_SELECTOR: "level_zero:gpu"
653641

654642
# It gives two available backends of GPU on tests
655643
build/dpcpp/dgpu/release/static:
@@ -661,11 +649,12 @@ build/dpcpp/dgpu/release/static:
661649
variables:
662650
C_COMPILER: "gcc"
663651
CXX_COMPILER: "dpcpp"
664-
BUILD_DPCPP: "ON"
652+
BUILD_SYCL: "ON"
653+
GKO_COMPILER_FLAGS: "-ffp-model=precise"
665654
BUILD_TYPE: "Release"
666655
BUILD_SHARED_LIBS: "OF"
667656
DPCPP_SINGLE_MODE: "ON"
668-
SYCL_DEVICE_TYPE: "GPU"
657+
ONEAPI_DEVICE_SELECTOR: "*:gpu"
669658

670659
build/dpcpp/level_zero_dgpu/release/shared:
671660
extends:
@@ -676,10 +665,26 @@ build/dpcpp/level_zero_dgpu/release/shared:
676665
variables:
677666
C_COMPILER: "gcc"
678667
CXX_COMPILER: "dpcpp"
679-
BUILD_DPCPP: "ON"
668+
BUILD_SYCL: "ON"
669+
GKO_COMPILER_FLAGS: "-ffp-model=precise"
670+
BUILD_TYPE: "Release"
671+
DPCPP_SINGLE_MODE: "ON"
672+
ONEAPI_DEVICE_SELECTOR: "level_zero:gpu"
673+
674+
build/icpx/level_zero_dgpu/release/shared:
675+
extends:
676+
- .build_and_test_template
677+
- .default_variables
678+
- .quick_test_condition
679+
- .use_gko-oneapi-dgpu
680+
variables:
681+
C_COMPILER: "icx"
682+
CXX_COMPILER: "icpx"
683+
BUILD_SYCL: "ON"
684+
GKO_COMPILER_FLAGS: "-ffp-model=precise"
680685
BUILD_TYPE: "Release"
681686
DPCPP_SINGLE_MODE: "ON"
682-
SYCL_DEVICE_FILTER: "Level_Zero:GPU"
687+
ONEAPI_DEVICE_SELECTOR: "level_zero:gpu"
683688

684689
# Job with important warnings as error
685690
warnings:
@@ -694,6 +699,7 @@ warnings:
694699
BUILD_CUDA: "ON"
695700
BUILD_HIP: "ON"
696701
CXX_FLAGS: "-Werror=pedantic -pedantic-errors"
702+
GKO_COMPILER_FLAGS: "-Wpedantic"
697703
allow_failure: yes
698704

699705
# Ensure kernel modules do not depend on core
@@ -818,6 +824,7 @@ sonarqube_cov:
818824
# Deploy documentation to github-pages
819825
gh-pages:
820826
stage: deploy
827+
interruptible: false
821828
extends:
822829
- .default_variables
823830
- .deploy_condition
@@ -833,7 +840,7 @@ gh-pages:
833840
-DCMAKE_CUDA_COMPILER=${CUDA_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
834841
-DBUILD_SHARED_LIBS=ON ${EXTRA_CMAKE_FLAGS} -DGINKGO_DEVEL_TOOLS=OFF
835842
-DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF
836-
-DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_DPCPP=OFF -DGINKGO_BUILD_MPI=OFF
843+
-DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_SYCL=OFF -DGINKGO_BUILD_MPI=OFF
837844
-DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF
838845
-DGINKGO_BUILD_DOC=ON -DGINKGO_DOC_GENERATE_PDF=ON
839846
- make usr
@@ -921,6 +928,7 @@ cudamemcheck:
921928

922929
new-issue-on-failure:
923930
stage: on-failure
931+
interruptible: false
924932
extends:
925933
- .default_variables
926934
- .use_status-job-settings

.gitlab/add-interrupt.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
default:
2+
interruptible: true

0 commit comments

Comments
 (0)