From aacccca480ebca6384fe120ee4d1966c4045c70b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Sch=C3=BCtt?= Date: Fri, 15 Sep 2023 23:21:00 +0200 Subject: [PATCH] DBM: Fix support for zero sized blocks --- src/dbm/dbm_multiply.c | 2 +- tests/LIBTEST/TEST_FILES | 2 ++ tests/LIBTEST/dbcsr_blocks_06.inp | 25 +++++++++++++++++++++++++ tests/LIBTEST/dbm_blocks_06.inp | 25 +++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 tests/LIBTEST/dbcsr_blocks_06.inp create mode 100644 tests/LIBTEST/dbm_blocks_06.inp diff --git a/src/dbm/dbm_multiply.c b/src/dbm/dbm_multiply.c index c89b7b28fb..877912b03d 100644 --- a/src/dbm/dbm_multiply.c +++ b/src/dbm/dbm_multiply.c @@ -260,7 +260,7 @@ static void multiply_packs(const bool transa, const bool transb, } // Count flops. - assert(m * n * k > 0); + assert(m * n * k >= 0); flop_sum += 2 * m * n * k; dbm_library_counter_increment(m, n, k); diff --git a/tests/LIBTEST/TEST_FILES b/tests/LIBTEST/TEST_FILES index 507bc8cf86..dea3fca353 100644 --- a/tests/LIBTEST/TEST_FILES +++ b/tests/LIBTEST/TEST_FILES @@ -20,6 +20,7 @@ dbcsr_blocks_02.inp 58 1.0E-14 dbcsr_blocks_03.inp 58 1.0E-14 21561533688.640675 dbcsr_blocks_04.inp 58 1.0E-14 21304439095.77774 dbcsr_blocks_05.inp 58 1.0E-14 21455488291.450737 +dbcsr_blocks_06.inp 58 1.0E-14 165599.60719889530 dbcsr_types_01.inp 58 1.0E-14 272584373.29241335 dbcsr_types_02.inp 58 1.0E-14 272584373.29241335 dbcsr_types_03.inp 58 1.0E-14 272584373.29241335 @@ -33,6 +34,7 @@ dbm_blocks_02.inp 58 5.0E-14 dbm_blocks_03.inp 58 5.0E-14 21561533688.640675 dbm_blocks_04.inp 58 5.0E-14 21304439095.77774 dbm_blocks_05.inp 58 5.0E-14 21455488291.450737 +dbm_blocks_06.inp 58 5.0E-14 165599.60719889530 dbm_order_N.inp 58 5.0E-14 1910924.8949438382 test_eri_mme_accuracy.inp 0 diff --git a/tests/LIBTEST/dbcsr_blocks_06.inp b/tests/LIBTEST/dbcsr_blocks_06.inp new file mode 100644 index 0000000000..a667461f52 --- /dev/null +++ b/tests/LIBTEST/dbcsr_blocks_06.inp @@ -0,0 +1,25 @@ +&GLOBAL + PRINT_LEVEL MEDIUM + PROGRAM_NAME TEST + RUN_TYPE NONE + &TIMINGS + THRESHOLD 0.00000000001 + &END +&END GLOBAL +&TEST + &CP_DBCSR + K 80 + M 80 + N 80 + TRANSA FALSE + TRANSB TRUE + N_LOOP 2 + ASPARSITY 0.5 + BSPARSITY 0.5 + CSPARSITY 0.5 + FILTER_EPS 0.0 + bs_m 1 0 1 1 1 2 1 3 + bs_k 1 0 1 1 1 2 1 3 + bs_n 1 0 1 1 1 2 1 3 + &END +&END TEST diff --git a/tests/LIBTEST/dbm_blocks_06.inp b/tests/LIBTEST/dbm_blocks_06.inp new file mode 100644 index 0000000000..f0bc6da3a4 --- /dev/null +++ b/tests/LIBTEST/dbm_blocks_06.inp @@ -0,0 +1,25 @@ +&GLOBAL + PRINT_LEVEL MEDIUM + PROGRAM_NAME TEST + RUN_TYPE NONE + &TIMINGS + THRESHOLD 0.00000000001 + &END +&END GLOBAL +&TEST + &DBM + K 80 + M 80 + N 80 + TRANSA FALSE + TRANSB TRUE + N_LOOP 2 + ASPARSITY 0.5 + BSPARSITY 0.5 + CSPARSITY 0.5 + FILTER_EPS 0.0 + bs_m 1 0 1 1 1 2 1 3 + bs_k 1 0 1 1 1 2 1 3 + bs_n 1 0 1 1 1 2 1 3 + &END +&END TEST