From cd119f6e685faf07d32b80cbbd62a1c0bff82898 Mon Sep 17 00:00:00 2001 From: Growl Date: Sun, 7 Jun 2026 03:56:06 +0800 Subject: [PATCH 1/2] Fix Fedora RPM-build error --- examples/dbcsr_tensor_example_2.cpp | 62 +++++++++++++---------------- tests/dbcsr_tensor_test.cpp | 62 +++++++++++++---------------- tools/fedora/dbcsr.spec | 18 +++++++-- 3 files changed, 71 insertions(+), 71 deletions(-) diff --git a/examples/dbcsr_tensor_example_2.cpp b/examples/dbcsr_tensor_example_2.cpp index 5346c5ae4d2..a96caf81dc5 100644 --- a/examples/dbcsr_tensor_example_2.cpp +++ b/examples/dbcsr_tensor_example_2.cpp @@ -148,28 +148,25 @@ int main(int argc, char* argv[]) { } // block sizes - std::vector blk1, blk2, blk3, blk4, blk5; - // blk indices of non-zero blocks - std::vector nz11, nz12, nz13, nz21, nz22, nz24, nz25, nz33, nz34, nz35; - - blk1 = {3, 9, 12, 1}; - blk2 = {4, 2, 3, 1, 9, 2, 32, 10, 5, 8, 7}; - blk3 = {7, 3, 8, 7, 9, 5, 10, 23, 2}; - blk4 = {8, 1, 4, 13, 6}; - blk5 = {4, 2, 22}; + std::vector blk1 = {3, 9, 12, 1}; + std::vector blk2 = {4, 2, 3, 1, 9, 2, 32, 10, 5, 8, 7}; + std::vector blk3 = {7, 3, 8, 7, 9, 5, 10, 23, 2}; + std::vector blk4 = {8, 1, 4, 13, 6}; + std::vector blk5 = {4, 2, 22}; - nz11 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3}; - nz12 = {2, 4, 4, 4, 5, 5, 6, 7, 9, 10, 10, 0, 0, 3, 6, 6, 8, 9, 1, 1, 4, 5, 7, 7, 8, 10, 10, 1, 3, 4, 4, 7}; - nz13 = {6, 2, 4, 8, 5, 7, 1, 7, 2, 1, 2, 0, 3, 5, 1, 6, 4, 7, 2, 6, 0, 3, 2, 6, 7, 4, 7, 8, 5, 0, 1, 6}; + // blk indices of non-zero blocks + std::vector nz11 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3}; + std::vector nz12 = {2, 4, 4, 4, 5, 5, 6, 7, 9, 10, 10, 0, 0, 3, 6, 6, 8, 9, 1, 1, 4, 5, 7, 7, 8, 10, 10, 1, 3, 4, 4, 7}; + std::vector nz13 = {6, 2, 4, 8, 5, 7, 1, 7, 2, 1, 2, 0, 3, 5, 1, 6, 4, 7, 2, 6, 0, 3, 2, 6, 7, 4, 7, 8, 5, 0, 1, 6}; - nz21 = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3}; - nz22 = {0, 2, 3, 5, 9, 1, 1, 3, 4, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 10, 0, 2, 2, 3, 4, 5, 7, 8, 10, 10, 0, 2, 3, 5, 9, 10}; - nz24 = {2, 4, 1, 2, 1, 2, 4, 0, 0, 3, 1, 2, 3, 0, 3, 2, 3, 3, 1, 0, 2, 0, 0, 2, 3, 2, 3, 1, 1, 2, 0, 0, 2, 1, 4, 4}; - nz25 = {0, 2, 1, 0, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 2, 1, 2, 1, 0, 1, 2, 0, 1, 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 1}; + std::vector nz21 = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3}; + std::vector nz22 = {0, 2, 3, 5, 9, 1, 1, 3, 4, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 10, 0, 2, 2, 3, 4, 5, 7, 8, 10, 10, 0, 2, 3, 5, 9, 10}; + std::vector nz24 = {2, 4, 1, 2, 1, 2, 4, 0, 0, 3, 1, 2, 3, 0, 3, 2, 3, 3, 1, 0, 2, 0, 0, 2, 3, 2, 3, 1, 1, 2, 0, 0, 2, 1, 4, 4}; + std::vector nz25 = {0, 2, 1, 0, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 2, 1, 2, 1, 0, 1, 2, 0, 1, 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 1}; - nz33 = {1, 3, 4, 4, 4, 5, 5, 7}; - nz34 = {2, 1, 0, 0, 2, 1, 3, 4}; - nz35 = {2, 1, 0, 1, 2, 1, 0, 0}; + std::vector nz33 = {1, 3, 4, 4, 4, 5, 5, 7}; + std::vector nz34 = {2, 1, 0, 0, 2, 1, 3, 4}; + std::vector nz35 = {2, 1, 0, 1, 2, 1, 0, 0}; // (13|2)x(54|21)=(3|45) // distribute blocks @@ -223,14 +220,12 @@ int main(int argc, char* argv[]) { dbcsr_t_distribution dist3 = nullptr; // (13|2)x(54|21)=(3|45) - std::vector map11, map12, map21, map22, map31, map32; - - map11 = {0, 2}; - map12 = {1}; - map21 = {3, 2}; - map22 = {1, 0}; - map31 = {0}; - map32 = {1, 2}; + std::vector map11 = {0, 2}; + std::vector map12 = {1}; + std::vector map21 = {3, 2}; + std::vector map22 = {1, 0}; + std::vector map31 = {0}; + std::vector map32 = {1, 2}; if (mpi_rank == 0) std::cout << "Creating dist objects..." << '\n' << std::endl; @@ -286,13 +281,12 @@ int main(int argc, char* argv[]) { // cn : indices to be contracted // noncn : indices not to be contracted // mapn : how nonc indices map to tensor 3 - std::vector c1, nonc1, c2, nonc2, map1, map2; - c1 = {0, 1}; - nonc1 = {2}; - c2 = {0, 1}; - nonc2 = {2, 3}; - map1 = {0}; - map2 = {1, 2}; + std::vector c1 = {0, 1}; + std::vector nonc1 = {2}; + std::vector c2 = {0, 1}; + std::vector nonc2 = {2, 3}; + std::vector map1 = {0}; + std::vector map2 = {1, 2}; int unit_nr = -1; if (mpi_rank == 0) unit_nr = 6; diff --git a/tests/dbcsr_tensor_test.cpp b/tests/dbcsr_tensor_test.cpp index 47f1897b795..bf89b871fac 100644 --- a/tests/dbcsr_tensor_test.cpp +++ b/tests/dbcsr_tensor_test.cpp @@ -155,28 +155,25 @@ int main(int argc, char* argv[]) { // block sizes - std::vector blk1, blk2, blk3, blk4, blk5; - // blk indices of non-zero blocks - std::vector nz11, nz12, nz13, nz21, nz22, nz24, nz25, nz33, nz34, nz35; - - blk1 = {3, 9, 12, 1}; - blk2 = {4, 2, 3, 1, 9, 2, 32, 10, 5, 8, 7}; - blk3 = {7, 3, 8, 7, 9, 5, 10, 23, 2}; - blk4 = {8, 1, 4, 13, 6}; - blk5 = {4, 2, 22}; + std::vector blk1 = {3, 9, 12, 1}; + std::vector blk2 = {4, 2, 3, 1, 9, 2, 32, 10, 5, 8, 7}; + std::vector blk3 = {7, 3, 8, 7, 9, 5, 10, 23, 2}; + std::vector blk4 = {8, 1, 4, 13, 6}; + std::vector blk5 = {4, 2, 22}; - nz11 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3}; - nz12 = {2, 4, 4, 4, 5, 5, 6, 7, 9, 10, 10, 0, 0, 3, 6, 6, 8, 9, 1, 1, 4, 5, 7, 7, 8, 10, 10, 1, 3, 4, 4, 7}; - nz13 = {6, 2, 4, 8, 5, 7, 1, 7, 2, 1, 2, 0, 3, 5, 1, 6, 4, 7, 2, 6, 0, 3, 2, 6, 7, 4, 7, 8, 5, 0, 1, 6}; + // blk indices of non-zero blocks + std::vector nz11 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3}; + std::vector nz12 = {2, 4, 4, 4, 5, 5, 6, 7, 9, 10, 10, 0, 0, 3, 6, 6, 8, 9, 1, 1, 4, 5, 7, 7, 8, 10, 10, 1, 3, 4, 4, 7}; + std::vector nz13 = {6, 2, 4, 8, 5, 7, 1, 7, 2, 1, 2, 0, 3, 5, 1, 6, 4, 7, 2, 6, 0, 3, 2, 6, 7, 4, 7, 8, 5, 0, 1, 6}; - nz21 = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3}; - nz22 = {0, 2, 3, 5, 9, 1, 1, 3, 4, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 10, 0, 2, 2, 3, 4, 5, 7, 8, 10, 10, 0, 2, 3, 5, 9, 10}; - nz24 = {2, 4, 1, 2, 1, 2, 4, 0, 0, 3, 1, 2, 3, 0, 3, 2, 3, 3, 1, 0, 2, 0, 0, 2, 3, 2, 3, 1, 1, 2, 0, 0, 2, 1, 4, 4}; - nz25 = {0, 2, 1, 0, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 2, 1, 2, 1, 0, 1, 2, 0, 1, 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 1}; + std::vector nz21 = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3}; + std::vector nz22 = {0, 2, 3, 5, 9, 1, 1, 3, 4, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 10, 0, 2, 2, 3, 4, 5, 7, 8, 10, 10, 0, 2, 3, 5, 9, 10}; + std::vector nz24 = {2, 4, 1, 2, 1, 2, 4, 0, 0, 3, 1, 2, 3, 0, 3, 2, 3, 3, 1, 0, 2, 0, 0, 2, 3, 2, 3, 1, 1, 2, 0, 0, 2, 1, 4, 4}; + std::vector nz25 = {0, 2, 1, 0, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 2, 1, 2, 1, 0, 1, 2, 0, 1, 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 1}; - nz33 = {1, 3, 4, 4, 4, 5, 5, 7}; - nz34 = {2, 1, 0, 0, 2, 1, 3, 4}; - nz35 = {2, 1, 0, 1, 2, 1, 0, 0}; + std::vector nz33 = {1, 3, 4, 4, 4, 5, 5, 7}; + std::vector nz34 = {2, 1, 0, 0, 2, 1, 3, 4}; + std::vector nz35 = {2, 1, 0, 1, 2, 1, 0, 0}; // (13|2)x(54|21)=(3|45) // distribute blocks @@ -231,14 +228,12 @@ int main(int argc, char* argv[]) { void* dist3 = nullptr; // (13|2)x(54|21)=(3|45) - std::vector map11, map12, map21, map22, map31, map32; - - map11 = {0, 2}; - map12 = {1}; - map21 = {3, 2}; - map22 = {1, 0}; - map31 = {0}; - map32 = {1, 2}; + std::vector map11 = {0, 2}; + std::vector map12 = {1}; + std::vector map21 = {3, 2}; + std::vector map22 = {1, 0}; + std::vector map31 = {0}; + std::vector map32 = {1, 2}; if (mpi_rank == 0) std::cout << "Creating dist objects..." << '\n' << std::endl; @@ -290,13 +285,12 @@ int main(int argc, char* argv[]) { // cn : indices to be contracted // noncn : indices not to be contracted // mapn : how nonc indices map to tensor 3 - std::vector c1, nonc1, c2, nonc2, map1, map2; - c1 = {0, 1}; - nonc1 = {2}; - c2 = {0, 1}; - nonc2 = {2, 3}; - map1 = {0}; - map2 = {1, 2}; + std::vector c1 = {0, 1}; + std::vector nonc1 = {2}; + std::vector c2 = {0, 1}; + std::vector nonc2 = {2, 3}; + std::vector map1 = {0}; + std::vector map2 = {1, 2}; int unit_nr = -1; diff --git a/tools/fedora/dbcsr.spec b/tools/fedora/dbcsr.spec index 50311314341..b8704749e52 100644 --- a/tools/fedora/dbcsr.spec +++ b/tools/fedora/dbcsr.spec @@ -1,4 +1,5 @@ -# Currently does not build with opencl/libxsmm +# OpenCL support requires packaged libxs/libxstream/libxsmm dependencies. +# Keep it disabled until those packages are available in Fedora. %bcond_with opencl # No openmpi on i668 with openmpi 5 in Fedora 40+ @@ -26,6 +27,8 @@ BuildRequires: gcc-gfortran BuildRequires: make BuildRequires: flexiblas-devel %if %{with opencl} +BuildRequires: libxs-devel +BuildRequires: libxstream-devel BuildRequires: libxsmm-devel %endif BuildRequires: python3-fypp @@ -109,15 +112,24 @@ export CXXFLAGS="%{optflags} -fPIC" export FFLAGS="%{optflags} -fPIC" %cmake \ -DCMAKE_INSTALL_Fortran_MODULES=%{_fmoddir} \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=ON \ -DUSE_MPI=OFF \ - %{?with_opencl:-DUSE_ACCEL=opencl -DUSE_SMM=libxsmm} + -DUSE_LIBXS=OFF \ + -DUSE_LIBXSMM=OFF \ + %{?with_opencl:-DUSE_ACCEL=opencl -DUSE_LIBXS=ON -DUSE_LIBXSMM=ON} %cmake_build for mpi in %{mpi_list} do module load mpi/$mpi-%{_arch} %cmake \ -DCMAKE_INSTALL_Fortran_MODULES=$MPI_FORTRAN_MOD_DIR \ - %{?with_opencl:-DUSE_ACCEL=opencl -DUSE_SMM=libxsmm} \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_TESTING=ON \ + -DUSE_MPI=ON \ + -DUSE_LIBXS=OFF \ + -DUSE_LIBXSMM=OFF \ + %{?with_opencl:-DUSE_ACCEL=opencl -DUSE_LIBXS=ON -DUSE_LIBXSMM=ON} \ -DCMAKE_INSTALL_PREFIX:PATH=$MPI_HOME \ -DCMAKE_INSTALL_LIBDIR:PATH=$MPI_LIB \ -DUSE_MPI_F08=ON \ From b22afc849d998aa8aa793f7cf353ce8000bdf7e1 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2026 19:59:46 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- examples/dbcsr_tensor_example_2.cpp | 12 ++++++++---- tests/dbcsr_tensor_test.cpp | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/examples/dbcsr_tensor_example_2.cpp b/examples/dbcsr_tensor_example_2.cpp index a96caf81dc5..f20a7e71295 100644 --- a/examples/dbcsr_tensor_example_2.cpp +++ b/examples/dbcsr_tensor_example_2.cpp @@ -159,10 +159,14 @@ int main(int argc, char* argv[]) { std::vector nz12 = {2, 4, 4, 4, 5, 5, 6, 7, 9, 10, 10, 0, 0, 3, 6, 6, 8, 9, 1, 1, 4, 5, 7, 7, 8, 10, 10, 1, 3, 4, 4, 7}; std::vector nz13 = {6, 2, 4, 8, 5, 7, 1, 7, 2, 1, 2, 0, 3, 5, 1, 6, 4, 7, 2, 6, 0, 3, 2, 6, 7, 4, 7, 8, 5, 0, 1, 6}; - std::vector nz21 = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3}; - std::vector nz22 = {0, 2, 3, 5, 9, 1, 1, 3, 4, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 10, 0, 2, 2, 3, 4, 5, 7, 8, 10, 10, 0, 2, 3, 5, 9, 10}; - std::vector nz24 = {2, 4, 1, 2, 1, 2, 4, 0, 0, 3, 1, 2, 3, 0, 3, 2, 3, 3, 1, 0, 2, 0, 0, 2, 3, 2, 3, 1, 1, 2, 0, 0, 2, 1, 4, 4}; - std::vector nz25 = {0, 2, 1, 0, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 2, 1, 2, 1, 0, 1, 2, 0, 1, 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 1}; + std::vector nz21 = { + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3}; + std::vector nz22 = { + 0, 2, 3, 5, 9, 1, 1, 3, 4, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 10, 0, 2, 2, 3, 4, 5, 7, 8, 10, 10, 0, 2, 3, 5, 9, 10}; + std::vector nz24 = { + 2, 4, 1, 2, 1, 2, 4, 0, 0, 3, 1, 2, 3, 0, 3, 2, 3, 3, 1, 0, 2, 0, 0, 2, 3, 2, 3, 1, 1, 2, 0, 0, 2, 1, 4, 4}; + std::vector nz25 = { + 0, 2, 1, 0, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 2, 1, 2, 1, 0, 1, 2, 0, 1, 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 1}; std::vector nz33 = {1, 3, 4, 4, 4, 5, 5, 7}; std::vector nz34 = {2, 1, 0, 0, 2, 1, 3, 4}; diff --git a/tests/dbcsr_tensor_test.cpp b/tests/dbcsr_tensor_test.cpp index bf89b871fac..522d061de32 100644 --- a/tests/dbcsr_tensor_test.cpp +++ b/tests/dbcsr_tensor_test.cpp @@ -166,10 +166,14 @@ int main(int argc, char* argv[]) { std::vector nz12 = {2, 4, 4, 4, 5, 5, 6, 7, 9, 10, 10, 0, 0, 3, 6, 6, 8, 9, 1, 1, 4, 5, 7, 7, 8, 10, 10, 1, 3, 4, 4, 7}; std::vector nz13 = {6, 2, 4, 8, 5, 7, 1, 7, 2, 1, 2, 0, 3, 5, 1, 6, 4, 7, 2, 6, 0, 3, 2, 6, 7, 4, 7, 8, 5, 0, 1, 6}; - std::vector nz21 = {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3}; - std::vector nz22 = {0, 2, 3, 5, 9, 1, 1, 3, 4, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 10, 0, 2, 2, 3, 4, 5, 7, 8, 10, 10, 0, 2, 3, 5, 9, 10}; - std::vector nz24 = {2, 4, 1, 2, 1, 2, 4, 0, 0, 3, 1, 2, 3, 0, 3, 2, 3, 3, 1, 0, 2, 0, 0, 2, 3, 2, 3, 1, 1, 2, 0, 0, 2, 1, 4, 4}; - std::vector nz25 = {0, 2, 1, 0, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 2, 1, 2, 1, 0, 1, 2, 0, 1, 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 1}; + std::vector nz21 = { + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3}; + std::vector nz22 = { + 0, 2, 3, 5, 9, 1, 1, 3, 4, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 10, 0, 2, 2, 3, 4, 5, 7, 8, 10, 10, 0, 2, 3, 5, 9, 10}; + std::vector nz24 = { + 2, 4, 1, 2, 1, 2, 4, 0, 0, 3, 1, 2, 3, 0, 3, 2, 3, 3, 1, 0, 2, 0, 0, 2, 3, 2, 3, 1, 1, 2, 0, 0, 2, 1, 4, 4}; + std::vector nz25 = { + 0, 2, 1, 0, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 2, 1, 2, 1, 0, 1, 2, 0, 1, 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 1}; std::vector nz33 = {1, 3, 4, 4, 4, 5, 5, 7}; std::vector nz34 = {2, 1, 0, 0, 2, 1, 3, 4};