diff --git a/cuda_tools/libcusmm/generate.py b/cuda_tools/libcusmm/generate.py index 0b8ba69270..bae5dbd7e7 100755 --- a/cuda_tools/libcusmm/generate.py +++ b/cuda_tools/libcusmm/generate.py @@ -18,7 +18,9 @@ def main(): triples = combinations(5,13) # amorph spiro-MeOTAD triples += combinations(13,26) # TiO2 triples += combinations(23) # blocked H2O - triples += combinations(13,24,54) # blocked acetonitrile + triples += combinations(13,24,5) # non-blocked acetonitrile +TiO2-v2 + triples += combinations(13,24,54) # blocked-v1 acetonitrile +TiO2-v2 + triples += combinations(13,24,15) # blocked-v2 acetonitrile +TiO2-v2 usage = "Generator of LibCuSMM. The Library for Cuda Small Matrix Multiplications." parser = OptionParser(usage) diff --git a/cuda_tools/libcusmm/parameters.txt b/cuda_tools/libcusmm/parameters.txt index fa9abf2dd0..5693600eff 100644 --- a/cuda_tools/libcusmm/parameters.txt +++ b/cuda_tools/libcusmm/parameters.txt @@ -52,5 +52,40 @@ Kernel_dnt_medium(m=13, n=24, k=24, threads=160, tile_m=1, tile_n=2, panel_in=160, panel_out=0 ,grouping=16), Kernel_dnt_medium(m=13, n=24, k=13, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), Kernel_dnt_medium(m=13, n=13, k=24, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + + Kernel_dnt_medium(m=24, n=24, k=15, threads=128, tile_m=2, tile_n=3, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=24, n=13, k=15, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=24, n=15, k=24, threads=160, tile_m=2, tile_n=2, panel_in=160, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=24, n=15, k=13, threads=96, tile_m=2, tile_n=2, panel_in=96, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=24, n=15, k=15, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=13, n=24, k=15, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=13, n=13, k=15, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=13, n=15, k=24, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=13, n=15, k=13, threads=96, tile_m=2, tile_n=2, panel_in=96, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=13, n=15, k=15, threads=96, tile_m=2, tile_n=2, panel_in=96, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=24, k=24, threads=160, tile_m=2, tile_n=2, panel_in=160, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=24, k=13, threads=96, tile_m=2, tile_n=2, panel_in=96, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=24, k=15, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=13, k=24, threads=128, tile_m=2, tile_n=1, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=13, k=13, threads=96, tile_m=4, tile_n=1, panel_in=96, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=13, k=15, threads=96, tile_m=2, tile_n=2, panel_in=96, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=15, k=24, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=15, k=13, threads=128, tile_m=2, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=15, n=15, k=15, threads=128, tile_m=1, tile_n=2, panel_in=128, panel_out=0 ,grouping=16), + + Kernel_dnt_medium(m=24, n=24, k=5, threads=128, tile_m=2, tile_n=3, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=24, n=13, k=5, threads=160, tile_m=3, tile_n=1, panel_in=160, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=24, n=5, k=24, threads=128, tile_m=1, tile_n=1, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=24, n=5, k=13, threads=128, tile_m=1, tile_n=1, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=24, n=5, k=5, threads=160, tile_m=1, tile_n=2, panel_in=160, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=13, n=24, k=5, threads=192, tile_m=1, tile_n=2, panel_in=192, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=13, n=5, k=24, threads=128, tile_m=1, tile_n=1, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=5, n=24, k=24, threads=160, tile_m=1, tile_n=1, panel_in=160, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=5, n=24, k=13, threads=128, tile_m=1, tile_n=1, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=5, n=24, k=5, threads=192, tile_m=1, tile_n=2, panel_in=192, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=5, n=13, k=24, threads=128, tile_m=1, tile_n=1, panel_in=128, panel_out=0 ,grouping=16), + Kernel_dnt_medium(m=5, n=5, k=24, threads=192, tile_m=1, tile_n=1, panel_in=192, panel_out=0 ,grouping=16), + + ] #EOF diff --git a/tests/LIBTEST/TEST_FILES b/tests/LIBTEST/TEST_FILES index 9dc1b17efd..10b55101cc 100644 --- a/tests/LIBTEST/TEST_FILES +++ b/tests/LIBTEST/TEST_FILES @@ -15,3 +15,8 @@ dbcsr_mm_blas.inp 0 dbcsr_subcomm.inp 0 dbcsr_multistack.inp 0 dbcsr_types.inp 0 +dbcsr_blocks_01.inp 58 +dbcsr_blocks_02.inp 58 +dbcsr_blocks_03.inp 58 +dbcsr_blocks_04.inp 58 +dbcsr_blocks_05.inp 58 diff --git a/tests/LIBTEST/dbcsr_blocks_01.inp b/tests/LIBTEST/dbcsr_blocks_01.inp new file mode 100644 index 0000000000..c3b378e75c --- /dev/null +++ b/tests/LIBTEST/dbcsr_blocks_01.inp @@ -0,0 +1,24 @@ +&GLOBAL + PRINT_LEVEL MEDIUM + PROGRAM_NAME TEST + RUN_TYPE NONE + &TIMINGS + THRESHOLD 0.00000000001 + &END +&END GLOBAL +&TEST + &CP_DBCSR + K 800 + M 800 + N 800 + TRANSA FALSE + TRANSB TRUE + N_LOOP 2 + ASPARSITY 0.05 + BSPARSITY 0.05 + CSPARSITY 0.05 + bs_m 1 13 1 5 1 24 + bs_k 1 13 1 5 1 24 + bs_n 1 13 1 5 1 24 + &END +&END TEST diff --git a/tests/LIBTEST/dbcsr_blocks_02.inp b/tests/LIBTEST/dbcsr_blocks_02.inp new file mode 100644 index 0000000000..86ad0441a4 --- /dev/null +++ b/tests/LIBTEST/dbcsr_blocks_02.inp @@ -0,0 +1,24 @@ +&GLOBAL + PRINT_LEVEL MEDIUM + PROGRAM_NAME TEST + RUN_TYPE NONE + &TIMINGS + THRESHOLD 0.00000000001 + &END +&END GLOBAL +&TEST + &CP_DBCSR + K 800 + M 800 + N 800 + TRANSA FALSE + TRANSB TRUE + N_LOOP 2 + ASPARSITY 0.05 + BSPARSITY 0.05 + CSPARSITY 0.05 + bs_m 1 13 1 24 1 15 + bs_k 1 13 1 24 1 15 + bs_n 1 13 1 24 1 15 + &END +&END TEST diff --git a/tests/LIBTEST/dbcsr_blocks_03.inp b/tests/LIBTEST/dbcsr_blocks_03.inp new file mode 100644 index 0000000000..4d0eec4712 --- /dev/null +++ b/tests/LIBTEST/dbcsr_blocks_03.inp @@ -0,0 +1,24 @@ +&GLOBAL + PRINT_LEVEL MEDIUM + PROGRAM_NAME TEST + RUN_TYPE NONE + &TIMINGS + THRESHOLD 0.00000000001 + &END +&END GLOBAL +&TEST + &CP_DBCSR + K 800 + M 800 + N 800 + TRANSA FALSE + TRANSB TRUE + N_LOOP 2 + ASPARSITY 0.05 + BSPARSITY 0.05 + CSPARSITY 0.05 + bs_m 1 13 1 24 1 54 + bs_k 1 13 1 24 1 54 + bs_n 1 13 1 24 1 54 + &END +&END TEST diff --git a/tests/LIBTEST/dbcsr_blocks_04.inp b/tests/LIBTEST/dbcsr_blocks_04.inp new file mode 100644 index 0000000000..4d377f8e31 --- /dev/null +++ b/tests/LIBTEST/dbcsr_blocks_04.inp @@ -0,0 +1,24 @@ +&GLOBAL + PRINT_LEVEL MEDIUM + PROGRAM_NAME TEST + RUN_TYPE NONE + &TIMINGS + THRESHOLD 0.00000000001 + &END +&END GLOBAL +&TEST + &CP_DBCSR + K 800 + M 800 + N 800 + TRANSA FALSE + TRANSB TRUE + N_LOOP 2 + ASPARSITY 0.05 + BSPARSITY 0.05 + CSPARSITY 0.05 + bs_m 1 23 + bs_k 1 23 + bs_n 1 23 + &END +&END TEST diff --git a/tests/LIBTEST/dbcsr_blocks_05.inp b/tests/LIBTEST/dbcsr_blocks_05.inp new file mode 100644 index 0000000000..c5e3f917d6 --- /dev/null +++ b/tests/LIBTEST/dbcsr_blocks_05.inp @@ -0,0 +1,24 @@ +&GLOBAL + PRINT_LEVEL MEDIUM + PROGRAM_NAME TEST + RUN_TYPE NONE + &TIMINGS + THRESHOLD 0.00000000001 + &END +&END GLOBAL +&TEST + &CP_DBCSR + K 800 + M 800 + N 800 + TRANSA FALSE + TRANSB TRUE + N_LOOP 2 + ASPARSITY 0.05 + BSPARSITY 0.05 + CSPARSITY 0.05 + bs_m 1 26 1 13 1 54 + bs_k 1 26 1 13 1 54 + bs_n 1 26 1 13 1 54 + &END +&END TEST diff --git a/tests/LIBTEST/dbcsr_ctype.inp b/tests/LIBTEST/dbcsr_ctype.inp index 1a5905eb63..35fecd2be6 100644 --- a/tests/LIBTEST/dbcsr_ctype.inp +++ b/tests/LIBTEST/dbcsr_ctype.inp @@ -11,12 +11,12 @@ &END GLOBAL &TEST &CP_DBCSR - K 512 - M 5120 - N 512 + K 500 + M 200 + N 500 TRANSA FALSE TRANSB TRUE - N_LOOP 10 + N_LOOP 3 ASPARSITY 0.05 BSPARSITY 0.05 CSPARSITY 0.05 diff --git a/tests/LIBTEST/dbcsr_mm_blas.inp b/tests/LIBTEST/dbcsr_mm_blas.inp index 303ec38098..62b2579958 100644 --- a/tests/LIBTEST/dbcsr_mm_blas.inp +++ b/tests/LIBTEST/dbcsr_mm_blas.inp @@ -11,12 +11,12 @@ &END GLOBAL &TEST &CP_DBCSR - K 512 - M 5120 - N 512 + K 300 + M 170 + N 200 TRANSA FALSE TRANSB TRUE - N_LOOP 10 + N_LOOP 3 ASPARSITY 0.05 BSPARSITY 0.05 CSPARSITY 0.05 diff --git a/tests/LIBTEST/dbcsr_subcomm.inp b/tests/LIBTEST/dbcsr_subcomm.inp index 0f9459a57d..176f0e887a 100644 --- a/tests/LIBTEST/dbcsr_subcomm.inp +++ b/tests/LIBTEST/dbcsr_subcomm.inp @@ -11,12 +11,12 @@ &END GLOBAL &TEST &CP_DBCSR - K 512 - M 5120 - N 512 + K 50 + M 165 + N 300 TRANSA FALSE TRANSB TRUE - N_LOOP 10 + N_LOOP 2 ASPARSITY 0.05 BSPARSITY 0.05 CSPARSITY 0.05 diff --git a/tests/TEST_TYPES b/tests/TEST_TYPES index 2e5157866e..86fbe35daa 100644 --- a/tests/TEST_TYPES +++ b/tests/TEST_TYPES @@ -1,4 +1,4 @@ -57 +58 Total energy:!3 POTENTIAL ENERGY!4 Total energy \[eV\]:!4 @@ -56,6 +56,7 @@ GRAND TOTAL FORCE !7 BASOPT| Total residuum value: !5 Final value of function !6 Emp2-RI = !3 +Final checksums !3 # # these are the tests the can be selected for regtesting. # do regtest will grep for test_grep (first column) and look if the numeric value