Skip to content

Commit

Permalink
Merge branch 'master' into alby/tfactor-optim/bulk
Browse files Browse the repository at this point in the history
  • Loading branch information
albestro authored Dec 20, 2024
2 parents ffd3135 + b82a100 commit 2f90f23
Show file tree
Hide file tree
Showing 110 changed files with 397 additions and 69 deletions.
1 change: 1 addition & 0 deletions .inshpect.toml
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ patterns = [
{ pattern = '\bstd::error_(code|condition|category)\b', include = 'system_error' },
{ pattern = '\bstd::system_error\b', include = 'system_error' },
{ pattern = '\bstd::chrono\b', include = 'chrono' },
{ pattern = '\bstd::complex\b', include = 'complex' },
]

[copyright]
Expand Down
11 changes: 8 additions & 3 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ You can then install the master version with:
spack install dla-future@master <variants>
```

## Build the good old way
## Manual build

### Dependencies

Expand All @@ -64,14 +64,18 @@ spack install dla-future@master <variants>
- [umpire](https://github.com/LLNL/Umpire)
- [blaspp](https://bitbucket.org/icl/blaspp/src/default/)
- [lapackpp](https://bitbucket.org/icl/lapackpp/src/default/)
- Intel MKL or other LAPACK implementation
- BLAS/LAPACK implementations (e.g. Intel MKL, OpenBLAS, NVPL)
- A ScaLAPACK implementation (optional, ScaLAPACK-like C API only)
- [whip](https://github.com/eth-cscs/whip) (optional, GPU only)
- [CUDA](https://developer.nvidia.com/cuda) (optional, NVidia GPUs only)
- [HIP/ROCm](https://github.com/RadeonOpenCompute/ROCm) (optional, AMD GPUs only)
- [GoogleTest](https://github.com/google/googletest) (optional; bundled) - unit testing
- Doxygen (optional) - documentation

### Version constraints

Please refer to the [Spack package](https://packages.spack.io/package.html?name=dla-future) for requirements and conflicts.

### Get DLA-Future

You can download the [releases](https://github.com/eth-cscs/DLA-Future/releases).
Expand All @@ -94,9 +98,10 @@ CMake option | Values | Note
`pika_DIR` | CMAKE:PATH | Location of the pika CMake-config file
`blaspp_DIR` | CMAKE:PATH | Location of the blaspp CMake-config file
`lapackpp_DIR` | CMAKE:PATH | Location of the lapackpp CMake-config file
`DLAF_LAPACK_LIBRARY` | CMAKE:STRING | Full link line for BLAS and LAPACK
`DLAF_SCALAPACK_LIBRARY` | CMAKE:STRING | Full link line for ScaLAPACK
`DLAF_WITH_MKL` | `{ON,OFF}` (default: `OFF`) | if blaspp/lapackpp is built with oneMKL
`DLAF_WITH_SCALAPACK` | `{ON,OFF}` (default: `OFF`) | Enable ScaLAPACK-like API.
`MKL_ROOT` | CMAKE:PATH | Location of the MKL library
`DLAF_ASSERT_ENABLE` | `{ON,OFF}` (default: `ON`) | enable/disable cheap assertions
`DLAF_ASSERT_MODERATE_ENABLE` | `{ON,OFF}` (default: `ON` in Debug, `OFF` otherwise) | enable/disable moderate assertions
`DLAF_ASSERT_HEAVY_ENABLE` | `{ON,OFF}` (default: `ON` in Debug, `OFF` otherwise) | enable/disable heavy assertions
Expand Down
37 changes: 37 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,42 @@
# Changelog

## DLA-Future 0.7.3

### Bug fixes

- Changed C ScaLAPACK API indexing convention to 1-based for partial eigenspectrum. (#1248)

## DLA-Future 0.7.2

Not released.

## DLA-Future 0.7.1

### Bug fixes

- Fixed a compilation issue with ROCm. (#1241)
- Fixed missing includes of `<complex>`. (#1243)

## DLA-Future 0.7.0

### Changes

- Added (generalized) eigensolver which computes only a part of the eigenspectrum. (#1194)
- `Norm` is now fully asynchronous. (#1221)

### Performance improvements

- Refactored communication to use pika's `transform_mpi` and polling support. (#1125)
- Use custom coalescing heuristic for memory pools. (#1183)
- Added configuration option for number of CUDA streams and cuBLAS/SOLVER handles. (#1222, #1182)
- Some algorithmic clean-ups and improvements. (#1213, #1219, #1232)

### Bug fixes

- Fixed builds with CUDA and stdexec enabled. (#1188)
- Work around buggy HIP complex operator overloads. (#1195)
- Namespace (SCA)LAPACK CMake modules with DLAF to avoid conflicts with other packages. (#1178)

## DLA-Future 0.6.0

### Changes
Expand Down
6 changes: 3 additions & 3 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cff-version: 1.2.0
title: DLA-Future 0.6.0
title: DLA-Future 0.7.3
repository-code: https://github.com/eth-cscs/DLA-Future
message: >-
If you use this software, please cite it using the
Expand Down Expand Up @@ -54,5 +54,5 @@ keywords:
- mpi
license: BSD-3-Clause
license-url: https://opensource.org/license/bsd-3-clause
version: 0.6.0
date-released: '2024-06-24'
version: 0.7.3
date-released: '2024-12-20'
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

cmake_minimum_required(VERSION 3.22)

project(DLAF VERSION 0.6.0)
project(DLAF VERSION 0.7.3)

# ---------------------------------------------------------------------------
# CMake configurations
Expand Down
3 changes: 3 additions & 0 deletions DOCUMENTATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
## API documentation

- [Documentation of `master` branch](https://eth-cscs.github.io/DLA-Future/master/)
- [Documentation of `v0.7.3`](https://eth-cscs.github.io/DLA-Future/v0.7.3/)
- [Documentation of `v0.7.1`](https://eth-cscs.github.io/DLA-Future/v0.7.1/)
- [Documentation of `v0.7.0`](https://eth-cscs.github.io/DLA-Future/v0.7.0/)
- [Documentation of `v0.6.0`](https://eth-cscs.github.io/DLA-Future/v0.6.0/)
- [Documentation of `v0.5.0`](https://eth-cscs.github.io/DLA-Future/v0.5.0/)
- [Documentation of `v0.4.1`](https://eth-cscs.github.io/DLA-Future/v0.4.1/)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ target_link_libraries(<your_target> PRIVATE DLAF::DLAF)
### Documentation

- [Documentation of `master` branch](https://eth-cscs.github.io/DLA-Future/master/)
- [Documentation of `v0.6.0`](https://eth-cscs.github.io/DLA-Future/v0.6.0/)
- [Documentation of `v0.7.3`](https://eth-cscs.github.io/DLA-Future/v0.7.3/)

See [DOCUMENTATION.md](DOCUMENTATION.md) for the documentation of older versions, or for the instructions to build it.

Expand Down
1 change: 1 addition & 0 deletions ci/.gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ include:
- local: 'ci/cuda/gcc13_release_stdexec.yml'
- local: 'ci/rocm/clang14_release.yml'
- local: 'ci/rocm/clang14_release_stdexec.yml'
- local: 'ci/rocm/clang15_release_stdexec.yml'
2 changes: 1 addition & 1 deletion ci/cpu/asan_ubsan_lsan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cpu asan ubsan lsan deps:
cpu asan ubsan lsan build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu asan ubsan lsan deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang15_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cpu clang15 release deps:
cpu clang15 release build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu clang15 release deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang15_release_cxx20.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu clang15 cxx20 release deps:
cpu clang15 cxx20 release build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu clang15 cxx20 release deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang15_release_stdexec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu clang15 stdexec release deps:
cpu clang15 stdexec release build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu clang15 stdexec release deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang16_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cpu clang16 release deps:
cpu clang16 release build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu clang16 release deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/clang18_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cpu clang18 release deps:
cpu clang18 release build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu clang18 release deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/gcc11_debug_stdexec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu gcc11 stdexec debug deps:
cpu gcc11 stdexec debug build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu gcc11 stdexec debug deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/gcc11_release_stdexec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu gcc11 stdexec release deps:
cpu gcc11 stdexec release build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu gcc11 stdexec release deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/gcc12_release_cxx20.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ cpu gcc12 cxx20 release deps:
cpu gcc12 cxx20 release build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu gcc12 cxx20 release deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/gcc13_codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ cpu gcc13 codecov deps:
cpu gcc13 codecov build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu gcc13 codecov deps
variables:
Expand Down
2 changes: 1 addition & 1 deletion ci/cpu/gcc13_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ cpu gcc13 release deps:
cpu gcc13 release build:
extends:
- .build_common
- .build_for_eiger
- .build_for_daint-mc
needs:
- cpu gcc13 release deps
variables:
Expand Down
70 changes: 70 additions & 0 deletions ci/docker/release-rocm602-stdexec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#
# Distributed Linear Algebra with Future (DLAF)
#
# Copyright (c) 2018-2024, ETH Zurich
# All rights reserved.
#
# Please, refer to the LICENSE file in the root directory.
# SPDX-License-Identifier: BSD-3-Clause
#

spack:
include:
- /spack_environment/common.yaml

view: false
concretizer:
unify:
true

specs:
- dla-future@master +rocm amdgpu_target=gfx90a:xnack- +miniapps +ci-test

packages:
all:
variants:
- build_type=Release
- cxxstd=20
- amdgpu_target=gfx90a:xnack-
pika:
require:
- '+stdexec'
blas:
require:: openblas
lapack:
require:: openblas
mpich:
require:
- '~rocm'
- 'device=ch3'
- 'netmod=tcp'
llvm-amdgpu:
externals:
- spec: llvm-amdgpu@6.0.2 ~rocm-device-libs
prefix: /opt/rocm-6.0.2/llvm
buildable: false
rocm-device-libs:
externals:
- spec: rocm-device-libs@6.0.2
prefix: /opt/rocm-6.0.2
buildable: false
hip:
externals:
- spec: hip@6.0.2
prefix: /opt/rocm-6.0.2
buildable: false
rocblas:
externals:
- spec: rocblas@6.0.2
prefix: /opt/rocm-6.0.2
buildable: false
rocsolver:
externals:
- spec: rocsolver@6.0.2
prefix: /opt/rocm-6.0.2
buildable: false
hsa-rocr-dev:
externals:
- spec: hsa-rocr-dev@6.0.2
prefix: /opt/rocm-6.0.2
buildable: false
21 changes: 21 additions & 0 deletions ci/rocm/clang15_release_stdexec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
include:
- local: 'ci/common-ci.yml'

rocm clang15 stdexec release deps:
extends: .build_deps_common
variables:
BASE_IMAGE: docker.io/rocm/dev-ubuntu-22.04:6.0.2
EXTRA_APTGET: "clang-15 libomp-15-dev rocblas rocblas-dev rocsolver rocsolver-dev llvm-amdgpu rocm-device-libs"
COMPILER: clang@15
USE_ROCBLAS: "ON"
SPACK_ENVIRONMENT: ci/docker/release-rocm602-stdexec.yaml
DEPS_IMAGE: $CSCS_REGISTRY_PATH/rocm-clang15-stdexec-release/deps

rocm clang15 stdexec release build:
extends:
- .build_common
after_script: null
needs:
- rocm clang15 stdexec release deps
variables:
DLAF_IMAGE: $CSCS_REGISTRY_PATH/rocm-clang15-stdexec-release/dlaf:$CI_COMMIT_SHA
2 changes: 2 additions & 0 deletions include/dlaf/auxiliary/norm/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
//
#pragma once

#include <complex>

#include <pika/execution.hpp>

#include <dlaf/communication/communicator_grid.h>
Expand Down
2 changes: 2 additions & 0 deletions include/dlaf/eigensolver/band_to_tridiag/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

#pragma once

#include <complex>

#include <dlaf/matrix/matrix.h>
#include <dlaf/types.h>

Expand Down
2 changes: 2 additions & 0 deletions include/dlaf/eigensolver/bt_band_to_tridiag/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

#pragma once

#include <complex>

#include <dlaf/communication/communicator_grid.h>
#include <dlaf/matrix/matrix.h>
#include <dlaf/matrix/matrix_ref.h>
Expand Down
2 changes: 2 additions & 0 deletions include/dlaf/eigensolver/bt_reduction_to_band/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
//
#pragma once

#include <complex>

#include <dlaf/matrix/matrix.h>
#include <dlaf/matrix/matrix_ref.h>
#include <dlaf/types.h>
Expand Down
2 changes: 2 additions & 0 deletions include/dlaf/eigensolver/eigensolver/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

#pragma once

#include <complex>

#include <dlaf/blas/tile.h>
#include <dlaf/common/vector.h>
#include <dlaf/communication/communicator_grid.h>
Expand Down
2 changes: 2 additions & 0 deletions include/dlaf/eigensolver/gen_eigensolver/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
//
#pragma once

#include <complex>

#include <dlaf/communication/communicator_grid.h>
#include <dlaf/eigensolver/eigensolver/api.h>
#include <dlaf/matrix/matrix.h>
Expand Down
2 changes: 2 additions & 0 deletions include/dlaf/eigensolver/gen_to_std/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
//
#pragma once

#include <complex>

#include <dlaf/matrix/matrix.h>
#include <dlaf/types.h>

Expand Down
Loading

0 comments on commit 2f90f23

Please sign in to comment.