Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
773534c
CMake: fix LIBXS and LIBXSTREAM discovery and revise default option
Growl1234 Jun 6, 2026
d21268a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 6, 2026
172bb2e
Default MPI_F08 OFF
Growl1234 Jun 6, 2026
ef3018e
Adjust GitHub Actions workflow
Growl1234 Jun 6, 2026
dcf7993
Adjust Fedora RPM-build
Growl1234 Jun 6, 2026
3cea686
Switch to FetchContent if no OpenCL helper found in libxstream
Growl1234 Jun 6, 2026
dca5e44
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 6, 2026
c57fccd
Fix regression
Growl1234 Jun 6, 2026
a8863a6
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 6, 2026
4c3d1d6
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 6, 2026
9d5553f
Fix Fedora RPM-build error
Growl1234 Jun 6, 2026
f7b99f5
Move dependency finding into Find*.cmake
Growl1234 Jun 7, 2026
4b4a45c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 7, 2026
31a7feb
Test CMake-built libxs* library
Growl1234 Jun 8, 2026
a639417
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 8, 2026
bdc7c25
Update dependency
Growl1234 Jun 8, 2026
7f4d1ff
Remove FindLIBXS*.cmake and adjust workflow
Growl1234 Jun 8, 2026
7482c06
Update dependency in CI
Growl1234 Jun 8, 2026
644d008
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 8, 2026
ccaf1b1
Incorporated hfp's changes
hfp Jun 8, 2026
54312eb
CMake build system cleanup
Jun 8, 2026
3c51eb1
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 8, 2026
e259728
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 8, 2026
c42aeab
Update dependencies in CI
Growl1234 Jun 9, 2026
f09962d
Avoid sending empty states to acc
Growl1234 Jun 9, 2026
c0d8959
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 9, 2026
1b1770e
Fix typo
Growl1234 Jun 9, 2026
129b27c
Update libxstream (executable tool_opencl.sh)
Growl1234 Jun 9, 2026
bb6b7d9
Define __LIBXS for accelerator tests
Growl1234 Jun 9, 2026
47d1488
Coverage: Skip libxs* files combined into DBCSR build
Growl1234 Jun 9, 2026
98792fa
Update dependencies
Growl1234 Jun 9, 2026
8e02f0e
Decide which target for libxsmm to use after find_package
Growl1234 Jun 9, 2026
bd13625
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 9, 2026
e8afae7
Deal with libxsmm config package target
Growl1234 Jun 9, 2026
9843487
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 9, 2026
a82e032
Fix libxsmm taget
Growl1234 Jun 9, 2026
d2e69e6
Follow-up clean-ups
Growl1234 Jun 9, 2026
eaff2e1
Update dependencies
Growl1234 Jun 9, 2026
0ffb4f5
Accommodate LIBXSMM's improved CMake
hfp Jun 10, 2026
41fb72e
Remove FindLIBXSMM.cmake
Growl1234 Jun 10, 2026
fc22bbc
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 10, 2026
6cf08a8
Let LIBXSMM fallback to PkgConfig
hfp Jun 10, 2026
c1cb7e6
Revise LIBXS-JIT and warning message
hfp Jun 10, 2026
f3e65a3
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 10, 2026
3ae3cfb
Update LIBXS option handling for OpenCL support
hfp Jun 11, 2026
8849763
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 116 additions & 10 deletions .github/workflows/testing-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ on:
- 'develop'
pull_request:

env:
LIBXS_GIT_REPOSITORY: https://github.com/hfp/libxs.git
LIBXS_GIT_TAG: 166f48e0172475f4db59950d1447525994bbf293
LIBXSTREAM_GIT_REPOSITORY: https://github.com/hfp/libxstream.git
LIBXSTREAM_GIT_TAG: f307d372dfe1eaba672dab5b0d9692d8a0f5c57f
LIBXSMM_GIT_REPOSITORY: https://github.com/libxsmm/libxsmm.git
LIBXSMM_GIT_TAG: cdeedf76ddd30e0dfb2527f6e1537d2c35a07596

jobs:
##################################################################################
# Run pre-commit
Expand Down Expand Up @@ -33,7 +41,7 @@ jobs:
matrix:
use_mpi: [MPI=ON, MPI=OFF]
use_openmp: [OPENMP=ON, OPENMP=OFF]
use_smm: [LIBXSMM=ON, LIBXSMM=OFF]
smm_backend: [BLAS, LIBXS, LIBXSMM]
mpi_suffix: [openmpi, mpich]
exclude:
- use_mpi: MPI=OFF
Expand All @@ -45,19 +53,69 @@ jobs:
fetch-depth: 0
submodules: true

- name: Install libxs packages
if: matrix.smm_backend != 'BLAS'
run: |
set -eu
prefix="${GITHUB_WORKSPACE}/deps/install"
mkdir -p "${prefix}" deps

fetch_and_install() {
name="$1"
repo="$2"
tag="$3"
shift 3
git clone "${repo}" "deps/${name}-src"
git -C "deps/${name}-src" checkout "${tag}"
cmake -G Ninja \
-S "deps/${name}-src" \
-B "deps/${name}-build" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${prefix}" \
-DCMAKE_PREFIX_PATH="${prefix}" \
"$@"
cmake --build "deps/${name}-build" --target install
}

fetch_and_install libxs \
"${LIBXS_GIT_REPOSITORY}" \
"${LIBXS_GIT_TAG}" \
-DLIBXS_FORTRAN=ON

if [ "${{ matrix.smm_backend }}" = "LIBXSMM" ]; then
fetch_and_install libxsmm \
"${LIBXSMM_GIT_REPOSITORY}" \
"${LIBXSMM_GIT_TAG}" \
-DXSMM_STATIC=ON
fi

echo "CMAKE_PREFIX_PATH=${prefix}${CMAKE_PREFIX_PATH:+:${CMAKE_PREFIX_PATH}}" >> "${GITHUB_ENV}"
echo "PKG_CONFIG_PATH=${prefix}/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}" >> "${GITHUB_ENV}"

- name: Configure
run: |
mkdir -p build
cd build
case "${{ matrix.smm_backend }}" in
BLAS)
smm_flags="-DUSE_LIBXS=OFF -DUSE_LIBXSMM=OFF"
;;
LIBXS)
smm_flags="-DUSE_LIBXS=ON -DUSE_LIBXSMM=OFF"
;;
LIBXSMM)
smm_flags="-DUSE_LIBXS=ON -DUSE_LIBXSMM=ON"
;;
esac
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Coverage \
-DBUILD_TESTING=ON \
-DUSE_${{ matrix.use_mpi }} \
-DUSE_${{ matrix.use_openmp }} \
-DUSE_${{ matrix.use_smm }} \
${smm_flags} \
-DMPI_EXECUTABLE_SUFFIX=.${{ matrix.mpi_suffix }} \
-DMPIEXEC_PREFLAGS="$([ "${{ matrix.mpi_suffix }}" = "openmpi" ] && echo "-mca btl ^openib --allow-run-as-root --oversubscribe")" \
-DLCOV_ARGS="--test-name;${{ matrix.use_mpi }}-${{ matrix.use_openmp }}-${{ matrix.use_smm }}-cpu" \
-DLCOV_ARGS="--test-name;${{ matrix.use_mpi }}-${{ matrix.use_openmp }}-${{ matrix.smm_backend }}-cpu" \
-DTEST_MPI_RANKS=auto \
..

Expand All @@ -72,19 +130,19 @@ jobs:
- name: Generate coverage info
run: |
cmake --build build -- cov-info
mv build/coverage.info build/coverage-Linux-${{ matrix.use_mpi }}-${{ matrix.use_openmp }}-${{ matrix.use_smm }}-cpu.info
mv build/coverage.info build/coverage-Linux-${{ matrix.use_mpi }}-${{ matrix.use_openmp }}-${{ matrix.smm_backend }}-cpu.info

- name: Upload coverage data
uses: actions/upload-artifact@v4
with:
name: coverage-data-${{ matrix.use_mpi }}-${{ matrix.use_openmp }}-${{ matrix.use_smm }}-${{ matrix.mpi_suffix }}
name: coverage-data-${{ matrix.use_mpi }}-${{ matrix.use_openmp }}-${{ matrix.smm_backend }}-${{ matrix.mpi_suffix }}
path: build/coverage-*.info

- name: Upload coverage data (generated files)
uses: actions/upload-artifact@v4
if: matrix.use_mpi == 'MPI=ON' && matrix.use_openmp == 'OPENMP=ON' && matrix.use_smm == 'LIBXSMM=OFF' && matrix.mpi_suffix == 'openmpi'
if: matrix.use_mpi == 'MPI=ON' && matrix.use_openmp == 'OPENMP=ON' && matrix.smm_backend == 'BLAS' && matrix.mpi_suffix == 'openmpi'
with:
name: coverage-data-${{ matrix.use_mpi }}-${{ matrix.use_openmp }}-${{ matrix.use_smm }}-${{ matrix.mpi_suffix }}-generated-files
name: coverage-data-${{ matrix.use_mpi }}-${{ matrix.use_openmp }}-${{ matrix.smm_backend }}-${{ matrix.mpi_suffix }}-generated-files
path: |
build/src/dbcsr.h
build/src/tensors/dbcsr_tensor.h
Expand Down Expand Up @@ -137,14 +195,53 @@ jobs:
strategy:
matrix:
use_openmp: [OPENMP=ON]
use_smm: [LIBXSMM=ON]
use_libxsmm: [LIBXSMM=ON]

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true

- name: Install libxs packages
run: |
set -eu
prefix="${GITHUB_WORKSPACE}/deps/install"
mkdir -p "${prefix}" deps

fetch_and_install() {
name="$1"
repo="$2"
tag="$3"
shift 3
git clone "${repo}" "deps/${name}-src"
git -C "deps/${name}-src" checkout "${tag}"
cmake -G Ninja \
-S "deps/${name}-src" \
-B "deps/${name}-build" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${prefix}" \
-DCMAKE_PREFIX_PATH="${prefix}" \
"$@"
cmake --build "deps/${name}-build" --target install
}

fetch_and_install libxs \
"${LIBXS_GIT_REPOSITORY}" \
"${LIBXS_GIT_TAG}" \
-DLIBXS_FORTRAN=ON
fetch_and_install libxsmm \
"${LIBXSMM_GIT_REPOSITORY}" \
"${LIBXSMM_GIT_TAG}" \
-DXSMM_STATIC=ON
fetch_and_install libxstream \
"${LIBXSTREAM_GIT_REPOSITORY}" \
"${LIBXSTREAM_GIT_TAG}" \
-DLIBXSTREAM_SHARED=OFF

echo "CMAKE_PREFIX_PATH=${prefix}${CMAKE_PREFIX_PATH:+:${CMAKE_PREFIX_PATH}}" >> "${GITHUB_ENV}"
echo "PKG_CONFIG_PATH=${prefix}/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}" >> "${GITHUB_ENV}"

- name: Configure
run: |
mkdir -p build
Expand All @@ -153,7 +250,8 @@ jobs:
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_TESTING=ON \
-DUSE_${{ matrix.use_openmp }} \
-DUSE_${{ matrix.use_smm }} \
-DUSE_LIBXS=ON \
-DUSE_${{ matrix.use_libxsmm }} \
-DUSE_ACCEL=opencl \
-DWITH_EXAMPLES=ON \
..
Expand Down Expand Up @@ -217,7 +315,15 @@ jobs:
run: |
mkdir -p build/src
mv dbcsr.h tensors build/src/
echo *.info | xargs printf -- '-a %s\n' | xargs lcov -o merged.info
echo *.info | xargs printf -- '-a %s\n' | xargs lcov -o merged.raw.info

lcov --remove merged.raw.info \
'*/libxs_procs.fi' \
'*/libxs_jit.F' \
'*/deps/install/*' \
'*/_deps/*' \
-o merged.info

genhtml merged.info -o htmlcov
lcov --summary merged.info

Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/testing-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ jobs:
matrix:
use_mpi: [MPI=ON]
use_openmp: [OPENMP=ON]
use_smm: [SMM=blas]
blas_impl: [accelerate,openblas]
mpi_suffix: [mpich] # Brew openmpi doesn't provide mpi.mod

Expand Down Expand Up @@ -44,7 +43,6 @@ jobs:
-DBUILD_TESTING=ON \
-DUSE_${{ matrix.use_mpi }} \
-DUSE_${{ matrix.use_openmp }} \
-DUSE_${{ matrix.use_smm }} \
$([ "${{ matrix.blas_impl }}" = "openblas" ] && echo '-DCMAKE_PREFIX_PATH=/usr/local/opt/openblas') \
-DMPIEXEC_PREFLAGS="$([ "${{ matrix.mpi_suffix }}" = "openmpi" ] && echo "-mca btl ^openib --allow-run-as-root")" \
-DTEST_MPI_RANKS=auto \
Expand Down
Loading
Loading