Skip to content

Commit 4678668

Browse files
author
tcojean
authored
Merge Release 1.3.0 for master
The Ginkgo team is proud to announce the new minor release of Ginkgo version 1.3.0. This release brings CUDA 11 support, changes the default C++ standard to be C++14 instead of C++11, adds a new Diagonal matrix format and capacity for diagonal extraction, significantly improves the CMake configuration output format, adds the Ginkgo paper which got accepted into the Journal of Open Source Software (JOSS), and fixes multiple issues. Supported systems and requirements: + For all platforms, cmake 3.9+ + Linux and MacOS + gcc: 5.3+, 6.3+, 7.3+, all versions after 8.1+ + clang: 3.9+ + Intel compiler: 2017+ + Apple LLVM: 8.0+ + CUDA module: CUDA 9.0+ + HIP module: ROCm 2.8+ + Windows + MinGW and Cygwin: gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+ + Microsoft Visual Studio: VS 2017 15.7+ + CUDA module: CUDA 9.0+, Microsoft Visual Studio + OpenMP module: MinGW or Cygwin. The current known issues can be found in the [known issues page](https://github.com/ginkgo-project/ginkgo/wiki/Known-Issues). Additions: + Add paper for Journal of Open Source Software (JOSS). [#479](#479) + Add a DiagonalExtractable interface. [#563](#563) + Add a new diagonal Matrix Format. [#580](#580) + Add Cuda11 support. [#603](#603) + Add information output after CMake configuration. [#610](#610) + Add a new preconditioner export example. [#595](#595) + Add a new cuda-memcheck CI job. [#592](#592) Changes: + Use unified memory in CUDA debug builds. [#621](#621) + Improve `BENCHMARKING.md` with more detailed info. [#619](#619) + Use C++14 standard instead of C++11. [#611](#611) + Update the Ampere sm information and CudaArchitectureSelector. [#588](#588) Fixes: + Fix documentation warnings and errors. [#624](#624) + Fix warnings for diagonal matrix format. [#622](#622) + Fix criterion factory parameters in CUDA. [#586](#586) + Fix the norm-type in the examples. [#612](#612) + Fix the WAW race in OpenMP is_sorted_by_column_index. [#617](#617) + Fix the example's exec_map by creating the executor only if requested. [#602](#602) + Fix some CMake warnings. [#614](#614) + Fix Windows building documentation. [#601](#601) + Warn when CXX and CUDA host compiler do not match. [#607](#607) + Fix reduce_add, prefix_sum, and doc-build. [#593](#593) + Fix find_library(cublas) issue on machines installing multiple cuda. [#591](#591) + Fix allocator in sellp read. [#589](#589) + Fix the CAS with HIP and NVIDIA backends. [#585](#585) Deletions: + Remove unused preconditioner parameter in LowerTrs. [#587](#587) Related PR: #627
2 parents b4be2be + f482bdc commit 4678668

308 files changed

Lines changed: 9368 additions & 2196 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/workflows/joss.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: JOSS-build
2+
3+
on:
4+
push:
5+
paths:
6+
- 'doc/joss/**'
7+
8+
jobs:
9+
joss-generate:
10+
name: joss-pandoc
11+
runs-on: [ubuntu-latest]
12+
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: setup
16+
run: sudo apt-get install texlive-xetex pandoc pandoc-citeproc
17+
- name: info
18+
run: |
19+
pandoc -v
20+
- name: build
21+
run: |
22+
pushd .
23+
mkdir build
24+
cd build
25+
mkdir doc
26+
cd doc
27+
cp -r ../../doc/joss ./
28+
cd joss
29+
pandoc paper.md -o paper.pdf --bibliography ./paper.bib --latex-engine=xelatex
30+
popd
31+
- uses: actions/upload-artifact@v1.0.0
32+
with:
33+
name: joss-paper
34+
path: build/doc/joss/paper.pdf
35+

.github/workflows/windows-build.yml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,35 @@ on: [push]
44

55
jobs:
66
windows_cuda:
7-
name: cuda102/release/shared (only compile)
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
config:
11+
- {version: "10.2.89.20191206", name: "cuda102/release/shared"}
12+
- {version: "latest", name: "cuda-latest/release/shared"}
13+
name: msvc/${{ matrix.config.name }} (only compile)
814
runs-on: [windows-latest]
915
steps:
1016
- uses: actions/checkout@v2
11-
- name: setup
17+
- name: setup (versioned)
18+
if: matrix.config.version != 'latest'
19+
run: |
20+
choco install cuda --version=${{ matrix.config.version }} -y
21+
- name: setup (latest)
22+
if: matrix.config.version == 'latest'
1223
run: |
13-
choco install cuda --version=10.2.89.20191206 -y
24+
choco install cuda -y
1425
- name: configure
1526
run: |
16-
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).Path)\..\.."
27+
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).Path)\..\.."
1728
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
1829
refreshenv
1930
mkdir build
2031
cd build
2132
$env:PATH="$pwd\windows_shared_library;$env:PATH"
2233
cmake -DGINKGO_BUILD_CUDA=ON -DGINKGO_BUILD_OMP=OFF ..
2334
cmake --build . -j4 --config Release
24-
35+
2536
windows_ref:
2637
strategy:
2738
fail-fast: false

.gitlab-ci.yml

Lines changed: 130 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ stages:
2222
BUILD_OMP: "OFF"
2323
BUILD_CUDA: "OFF"
2424
BUILD_HIP: "OFF"
25+
CONFIG_LOG: "ON"
2526
CXX_FLAGS: ""
2627
EXTRA_CMAKE_FLAGS: ""
2728

@@ -59,6 +60,7 @@ stages:
5960
-DGINKGO_BUILD_OMP=${BUILD_OMP} -DGINKGO_BUILD_CUDA=${BUILD_CUDA}
6061
-DGINKGO_BUILD_HIP=${BUILD_HIP}
6162
-DGINKGO_BUILD_TESTS=ON -DGINKGO_BUILD_EXAMPLES=ON
63+
-DGINKGO_CONFIG_LOG_DETAILED=${CONFIG_LOG}
6264
- ninja -j${NUM_CORES} -l${CI_LOAD_LIMIT}
6365
dependencies: []
6466
except:
@@ -84,6 +86,7 @@ stages:
8486
-DGINKGO_BUILD_OMP=${BUILD_OMP} -DGINKGO_BUILD_CUDA=${BUILD_CUDA}
8587
-DGINKGO_BUILD_HIP=${BUILD_HIP}
8688
-DGINKGO_BUILD_TESTS=ON -DGINKGO_BUILD_EXAMPLES=ON
89+
-DGINKGO_CONFIG_LOG_DETAILED=${CONFIG_LOG}
8790
- ninja -j${NUM_CORES} -l${CI_LOAD_LIMIT} install
8891
- |
8992
(( $(ctest -N | tail -1 | sed 's/Total Tests: //') != 0 )) || exit 1
@@ -199,7 +202,7 @@ build/cuda91/clang/all/release/shared:
199202

200203

201204
# cuda 9.2 and friends
202-
build/cuda92/gcc/all/release/shared:
205+
build/cuda92/gcc/all/release/debug:
203206
<<: *default_build_with_test
204207
image: localhost:5000/gko-cuda92-gnu7-llvm50-intel2017
205208
variables:
@@ -217,17 +220,56 @@ build/cuda92/gcc/all/release/shared:
217220
- cuda
218221
- gpu
219222

220-
build/cuda92/clang/all/debug/static:
223+
build/cuda92/intel/cuda/release/static:
221224
<<: *default_build_with_test
222225
image: localhost:5000/gko-cuda92-gnu7-llvm50-intel2017
226+
variables:
227+
<<: *default_variables
228+
C_COMPILER: "icc"
229+
CXX_COMPILER: "icpc"
230+
BUILD_OMP: "ON"
231+
BUILD_CUDA: "ON"
232+
BUILD_TYPE: "Release"
233+
BUILD_SHARED_LIBS: "OFF"
234+
CUDA_ARCH: 35
235+
only:
236+
variables:
237+
- $RUN_CI_TAG
238+
tags:
239+
- private_ci
240+
- cuda
241+
- gpu
242+
243+
# cuda 10.0 and friends
244+
build/cuda100/gcc/all/debug/shared:
245+
<<: *default_build_with_test
246+
image: localhost:5000/gko-cuda100-gnu7-llvm60-intel2018
247+
variables:
248+
<<: *default_variables
249+
BUILD_OMP: "ON"
250+
BUILD_CUDA: "ON"
251+
BUILD_HIP: "ON"
252+
BUILD_TYPE: "Debug"
253+
CUDA_ARCH: 35
254+
only:
255+
variables:
256+
- $RUN_CI_TAG
257+
tags:
258+
- private_ci
259+
- cuda
260+
- gpu
261+
262+
build/cuda100/clang/all/release/static:
263+
<<: *default_build_with_test
264+
image: localhost:5000/gko-cuda100-gnu7-llvm60-intel2018
223265
variables:
224266
<<: *default_variables
225267
C_COMPILER: "clang"
226268
CXX_COMPILER: "clang++"
227269
BUILD_OMP: "ON"
228270
BUILD_CUDA: "ON"
229271
BUILD_HIP: "ON"
230-
BUILD_TYPE: "Debug"
272+
BUILD_TYPE: "Release"
231273
BUILD_SHARED_LIBS: "OFF"
232274
CUDA_ARCH: 35
233275
only:
@@ -238,17 +280,16 @@ build/cuda92/clang/all/debug/static:
238280
- cuda
239281
- gpu
240282

241-
build/cuda92/intel/cuda/release/static:
283+
build/cuda100/intel/cuda/release/shared:
242284
<<: *default_build_with_test
243-
image: localhost:5000/gko-cuda92-gnu7-llvm50-intel2017
285+
image: localhost:5000/gko-cuda100-gnu7-llvm60-intel2018
244286
variables:
245287
<<: *default_variables
246288
C_COMPILER: "icc"
247289
CXX_COMPILER: "icpc"
248290
BUILD_OMP: "ON"
249291
BUILD_CUDA: "ON"
250292
BUILD_TYPE: "Release"
251-
BUILD_SHARED_LIBS: "OFF"
252293
CUDA_ARCH: 35
253294
only:
254295
variables:
@@ -258,10 +299,10 @@ build/cuda92/intel/cuda/release/static:
258299
- cuda
259300
- gpu
260301

261-
# cuda 10.0 and friends
262-
build/cuda100/gcc/all/debug/shared:
302+
# cuda 10.1 and friends
303+
build/cuda101/gcc/all/debug/shared:
263304
<<: *default_build_with_test
264-
image: localhost:5000/gko-cuda100-gnu7-llvm60-intel2018
305+
image: localhost:5000/gko-cuda101-gnu8-llvm7-intel2019
265306
variables:
266307
<<: *default_variables
267308
BUILD_OMP: "ON"
@@ -277,9 +318,9 @@ build/cuda100/gcc/all/debug/shared:
277318
- cuda
278319
- gpu
279320

280-
build/cuda100/clang/all/release/static:
321+
build/cuda101/clang/all/release/static:
281322
<<: *default_build_with_test
282-
image: localhost:5000/gko-cuda100-gnu7-llvm60-intel2018
323+
image: localhost:5000/gko-cuda101-gnu8-llvm7-intel2019
283324
variables:
284325
<<: *default_variables
285326
C_COMPILER: "clang"
@@ -298,15 +339,16 @@ build/cuda100/clang/all/release/static:
298339
- cuda
299340
- gpu
300341

301-
build/cuda100/intel/cuda/release/shared:
342+
# clang-cuda with cuda 10.1 and friends
343+
build/clang-cuda101/gcc/all/release/shared:
302344
<<: *default_build_with_test
303-
image: localhost:5000/gko-cuda100-gnu7-llvm60-intel2018
345+
image: localhost:5000/gko-cuda101-gnu8-llvm10-intel2019
304346
variables:
305347
<<: *default_variables
306-
C_COMPILER: "icc"
307-
CXX_COMPILER: "icpc"
348+
CUDA_COMPILER: "clang++"
308349
BUILD_OMP: "ON"
309350
BUILD_CUDA: "ON"
351+
BUILD_HIP: "ON"
310352
BUILD_TYPE: "Release"
311353
CUDA_ARCH: 35
312354
only:
@@ -317,10 +359,31 @@ build/cuda100/intel/cuda/release/shared:
317359
- cuda
318360
- gpu
319361

320-
# cuda 10.1 and friends
321-
build/cuda101/gcc/all/debug/shared:
362+
build/clang-cuda101/clang/cuda/debug/static:
322363
<<: *default_build_with_test
323-
image: localhost:5000/gko-cuda101-gnu8-llvm7-intel2019
364+
image: localhost:5000/gko-cuda101-gnu8-llvm10-intel2019
365+
variables:
366+
<<: *default_variables
367+
C_COMPILER: "clang"
368+
CXX_COMPILER: "clang++"
369+
CUDA_COMPILER: "clang++"
370+
BUILD_OMP: "ON"
371+
BUILD_CUDA: "ON"
372+
BUILD_TYPE: "Debug"
373+
BUILD_SHARED_LIBS: "OFF"
374+
CUDA_ARCH: 35
375+
only:
376+
variables:
377+
- $RUN_CI_TAG
378+
tags:
379+
- private_ci
380+
- cuda
381+
- gpu
382+
383+
# cuda 10.2 and friends
384+
build/cuda102/gcc/all/debug/shared:
385+
<<: *default_build_with_test
386+
image: localhost:5000/gko-cuda102-gnu8-llvm8-intel2019
324387
variables:
325388
<<: *default_variables
326389
BUILD_OMP: "ON"
@@ -336,9 +399,9 @@ build/cuda101/gcc/all/debug/shared:
336399
- cuda
337400
- gpu
338401

339-
build/cuda101/clang/all/release/static:
402+
build/cuda102/clang/all/release/static:
340403
<<: *default_build_with_test
341-
image: localhost:5000/gko-cuda101-gnu8-llvm7-intel2019
404+
image: localhost:5000/gko-cuda102-gnu8-llvm8-intel2019
342405
variables:
343406
<<: *default_variables
344407
C_COMPILER: "clang"
@@ -357,9 +420,9 @@ build/cuda101/clang/all/release/static:
357420
- cuda
358421
- gpu
359422

360-
build/cuda101/intel/cuda/debug/static:
423+
build/cuda102/intel/cuda/debug/static:
361424
<<: *default_build_with_test
362-
image: localhost:5000/gko-cuda101-gnu8-llvm7-intel2019
425+
image: localhost:5000/gko-cuda102-gnu8-llvm8-intel2019
363426
variables:
364427
<<: *default_variables
365428
C_COMPILER: "icc"
@@ -377,17 +440,15 @@ build/cuda101/intel/cuda/debug/static:
377440
- cuda
378441
- gpu
379442

380-
# clang-cuda with cuda 10.1 and friends
381-
build/clang-cuda101/gcc/all/release/shared:
443+
# cuda 11.0 and friends
444+
build/cuda110/gcc/cuda/debug/shared:
382445
<<: *default_build_with_test
383-
image: localhost:5000/gko-cuda101-gnu8-llvm10-intel2019
446+
image: localhost:5000/gko-cuda110-gnu9-llvm9-intel2020
384447
variables:
385448
<<: *default_variables
386-
CUDA_COMPILER: "clang++"
387449
BUILD_OMP: "ON"
388450
BUILD_CUDA: "ON"
389-
BUILD_HIP: "ON"
390-
BUILD_TYPE: "Release"
451+
BUILD_TYPE: "Debug"
391452
CUDA_ARCH: 35
392453
only:
393454
variables:
@@ -397,14 +458,33 @@ build/clang-cuda101/gcc/all/release/shared:
397458
- cuda
398459
- gpu
399460

400-
build/clang-cuda101/clang/cuda/debug/static:
461+
build/cuda110/clang/cuda/release/static:
401462
<<: *default_build_with_test
402-
image: localhost:5000/gko-cuda101-gnu8-llvm10-intel2019
463+
image: localhost:5000/gko-cuda110-gnu9-llvm9-intel2020
403464
variables:
404465
<<: *default_variables
405466
C_COMPILER: "clang"
406467
CXX_COMPILER: "clang++"
407-
CUDA_COMPILER: "clang++"
468+
BUILD_OMP: "ON"
469+
BUILD_CUDA: "ON"
470+
BUILD_TYPE: "Release"
471+
BUILD_SHARED_LIBS: "OFF"
472+
CUDA_ARCH: 35
473+
only:
474+
variables:
475+
- $RUN_CI_TAG
476+
tags:
477+
- private_ci
478+
- cuda
479+
- gpu
480+
481+
build/cuda110/intel/cuda/debug/static:
482+
<<: *default_build_with_test
483+
image: localhost:5000/gko-cuda110-gnu9-llvm9-intel2020
484+
variables:
485+
<<: *default_variables
486+
C_COMPILER: "icc"
487+
CXX_COMPILER: "icpc"
408488
BUILD_OMP: "ON"
409489
BUILD_CUDA: "ON"
410490
BUILD_TYPE: "Debug"
@@ -839,6 +919,25 @@ undefinedsanitizer:
839919
- cuda
840920
- gpu
841921

922+
cudamemcheck:
923+
stage: QoS_tools
924+
image: localhost:5000/gko-cuda101-gnu8-llvm10-intel2019
925+
before_script: *default_before_script
926+
script:
927+
- ctest -V -S cmake/CTestScript.cmake -DCTEST_BUILD_CONFIGURATION=RelWithDebInfo
928+
-DCTEST_MEMORYCHECK_TYPE=CudaMemcheck
929+
dependencies: []
930+
only:
931+
refs:
932+
- master
933+
- develop
934+
- tags
935+
variables:
936+
- $RUN_CI_TAG
937+
tags:
938+
- private_ci
939+
- cuda
940+
- gpu
842941

843942
# Benchmark build
844943
.benchmark_before_script_template: &default_benchmark_before_script

0 commit comments

Comments
 (0)