Skip to content

Commit 4c77a5d

Browse files
authored
Merge Release 1.11.0
The Ginkgo team is proud to announce the new Ginkgo minor release 1.11.0. This release brings new features such as: - New interface for sparse matrix-matrix multiplication and addition. The new interface can yield speedups, in the case of repeated computations where the matrix values may change, but the matrix structure (i.e. position of non-zero entries) doesn't. - Performance improvements for the distributed SpMV and pipelined CG solver. - Better support for ARM platforms and support for ROCm 7 and CUDA 13. And more! See the changelog for more details.
2 parents d4e0e9f + 4a3b5eb commit 4c77a5d

316 files changed

Lines changed: 7386 additions & 1355 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.

.gersemi.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from gersemi.builtin_commands import builtin_commands
2+
3+
new_target_sources = builtin_commands["target_sources"]
4+
new_target_sources["keyword_preprocessors"] = {
5+
key: "sort+unique" for key in new_target_sources["multi_value_keywords"]
6+
}
7+
8+
new_target_compile_definitions = builtin_commands["target_compile_definitions"]
9+
new_target_compile_definitions["keyword_preprocessors"] = {
10+
key: "sort+unique" for key in new_target_compile_definitions["multi_value_keywords"]
11+
}
12+
13+
command_definitions = {
14+
"target_sources": new_target_sources,
15+
"target_compile_definitions": new_target_compile_definitions
16+
}

.gersemirc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
extensions:
2+
- .gersemi.py
3+
definitions:
4+
- cmake
5+
- doc
6+
- core/test/gtest/CMakeLists.txt
7+
- common/cuda_hip/CMakeLists.txt
8+
- devices/CMakeLists.txt
9+
- core/test/accessor/CMakeLists.txt
10+
- benchmark/test/CMakeLists.txt
11+
- benchmark/CMakeLists.txt
12+
- extensions/test/kokkos/CMakeLists.txt

.github/workflows/arm.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: ARM-build
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
- 'master'
8+
- 'develop'
9+
- 'release/**'
10+
tags:
11+
- '**'
12+
pull_request:
13+
types: [opened,synchronize]
14+
paths-ignore:
15+
- 'doc/**'
16+
workflow_dispatch:
17+
inputs:
18+
debug_enabled:
19+
description: 'Run the build with tmate debugging enabled by `debug_enabled` keyword (https://github.com/marketplace/actions/debugging-with-tmate)'
20+
required: false
21+
default: false
22+
23+
concurrency:
24+
group: ${{ github.workflow }}-${{ (github.head_ref && github.ref) || github.run_id }}
25+
cancel-in-progress: true
26+
27+
jobs:
28+
arm-omp:
29+
strategy:
30+
fail-fast: false
31+
matrix:
32+
config:
33+
- {shared: "ON", build_type: "Debug", name: "arm/omp/debug/shared", mixed: "OFF", half: "ON", bfloat16: "OFF"}
34+
- {shared: "OFF", build_type: "Release", name: "arm/omp/release/static", mixed: "ON", half: "ON", bfloat16: "OFF"}
35+
- {shared: "ON", build_type: "Release", name: "arm/omp/release/shared", mixed: "ON", half: "OFF", bfloat16: "ON"}
36+
- {shared: "ON", build_type: "Release", name: "arm/omp/release/shared-16bit", mixed: "ON", half: "ON", bfloat16: "ON"}
37+
name: ${{ matrix.config.name }}
38+
runs-on: [ubuntu-24.04-arm]
39+
40+
steps:
41+
- name: Checkout the latest code (shallow clone)
42+
uses: actions/checkout@v4
43+
44+
- name: info
45+
run: |
46+
g++ -v
47+
cmake --version
48+
49+
- name: Debug over SSH (tmate)
50+
uses: mxschmitt/action-tmate@v3.5
51+
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled }}
52+
53+
- name: configure
54+
run: |
55+
mkdir build
56+
mkdir install
57+
export INSTALL_PREFIX=`pwd`/install
58+
cd build
59+
cmake .. -DCMAKE_CXX_FLAGS="-Wpedantic -ffp-contract=off" -DBUILD_SHARED_LIBS=${{ matrix.config.shared }} -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }} -DGINKGO_ENABLE_HALF=${{ matrix.config.half }} -DGINKGO_ENABLE_BFLOAT16=${{ matrix.config.bfloat16 }}
60+
make -j4
61+
ctest -j4 --output-on-failure
62+
63+
- name: install
64+
run: |
65+
cd build
66+
make install
67+
make test_install
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Windows-MSVC-CUDA (compile-only)
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
- 'develop'
8+
- 'release/**'
9+
tags:
10+
- '**'
11+
pull_request:
12+
types: [opened,synchronize]
13+
paths-ignore:
14+
- 'doc/**'
15+
workflow_dispatch:
16+
inputs:
17+
debug_enabled:
18+
description: 'Run the build with tmate debugging enabled by `debug_enabled` keyword (https://github.com/marketplace/actions/debugging-with-tmate)'
19+
required: false
20+
default: false
21+
22+
concurrency:
23+
group: ${{ github.workflow }}-${{ (github.head_ref && github.ref) || github.run_id }}
24+
cancel-in-progress: true
25+
26+
jobs:
27+
windows_cuda:
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
config:
32+
- {version: "latest", name: "cuda-latest/release/shared", "mixed": "ON"}
33+
name: msvc/${{ matrix.config.name }} (only compile)
34+
runs-on: [windows-2022]
35+
36+
steps:
37+
- name: Checkout the latest code (shallow clone)
38+
uses: actions/checkout@v4
39+
- name: setup (versioned)
40+
if: matrix.config.version != 'latest'
41+
run: |
42+
choco install cuda --version=${{ matrix.config.version }} -y
43+
44+
- name: setup (latest)
45+
if: matrix.config.version == 'latest'
46+
run: |
47+
choco install cuda -y
48+
49+
- name: Debug over SSH (tmate)
50+
uses: mxschmitt/action-tmate@v3.5
51+
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled }}
52+
with:
53+
limit-access-to-actor: true
54+
55+
- name: configure
56+
run: |
57+
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).Path)\..\.."
58+
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
59+
refreshenv
60+
mkdir build
61+
cd build
62+
cmake -DGINKGO_BUILD_CUDA=ON -DGINKGO_BUILD_OMP=OFF -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }} -DCMAKE_CUDA_ARCHITECTURES=75 -DGINKGO_ENABLE_HALF=OFF -DGINKGO_ENABLE_BFLOAT16=OFF ..
63+
cmake --build . -j4 --config Release
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Windows-MSVC-MPI (compile-only)
2+
3+
on:
4+
push:
5+
branches:
6+
- 'main'
7+
- 'develop'
8+
- 'release/**'
9+
tags:
10+
- '**'
11+
pull_request:
12+
types: [opened,synchronize]
13+
paths-ignore:
14+
- 'doc/**'
15+
workflow_dispatch:
16+
inputs:
17+
debug_enabled:
18+
description: 'Run the build with tmate debugging enabled by `debug_enabled` keyword (https://github.com/marketplace/actions/debugging-with-tmate)'
19+
required: false
20+
default: false
21+
22+
concurrency:
23+
group: ${{ github.workflow }}-${{ (github.head_ref && github.ref) || github.run_id }}
24+
cancel-in-progress: true
25+
26+
jobs:
27+
windows_mpi:
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
config:
32+
- {version: "latest", name: "mpi-latest/release/shared", "mixed": "OFF"}
33+
name: msvc/${{ matrix.config.name }} (only compile)
34+
runs-on: [windows-2022]
35+
36+
steps:
37+
- name: Checkout the latest code (shallow clone)
38+
uses: actions/checkout@v4
39+
- name: Setup MPI
40+
uses: mpi4py/setup-mpi@v1
41+
with:
42+
mpi: intelmpi
43+
- name: setup (versioned)
44+
if: matrix.config.version != 'latest'
45+
run: |
46+
choco install cuda --version=${{ matrix.config.version }} -y
47+
- name: setup (latest)
48+
if: matrix.config.version == 'latest'
49+
run: |
50+
choco install cuda -y
51+
- name: Debug over SSH (tmate)
52+
uses: mxschmitt/action-tmate@v3.5
53+
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled }}
54+
with:
55+
limit-access-to-actor: true
56+
57+
- name: configure
58+
run: |
59+
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).Path)\..\.."
60+
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
61+
refreshenv
62+
mkdir build
63+
cd build
64+
cmake -DGINKGO_BUILD_MPI=ON -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=75 -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }} -DGINKGO_ENABLE_HALF=OFF -DGINKGO_ENABLE_BFLOAT16=OFF ..
65+
cmake --build . -j4 --config Release

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ __pycache__
2626
# Visual studio code
2727
.vscode
2828

29+
# Other
30+
.cache
31+
2932
### Generated header file
3033
include/ginkgo/config.hpp
3134
include/ginkgo/ginkgo.hpp

0 commit comments

Comments
 (0)