Commit 9407142d authored by Andreas Marek's avatar Andreas Marek
Browse files

Rename test programs and CI tests

parent 1aa7170a
This diff is collapsed.
...@@ -784,6 +784,7 @@ CLEANFILES = \ ...@@ -784,6 +784,7 @@ CLEANFILES = \
clean-local: clean-local:
-rm -rf modules/* private_modules/* test_modules/* .fortran_dependencies/* -rm -rf modules/* private_modules/* test_modules/* .fortran_dependencies/*
-rm -rf validate_*.sh -rm -rf validate_*.sh
-rm -rf test_*.sh
-rm -rf real_2stage*.sh -rm -rf real_2stage*.sh
-rm -rf complex_2stage*.sh -rm -rf complex_2stage*.sh
-rm -rf single_complex_2stage*.sh -rm -rf single_complex_2stage*.sh
......
...@@ -346,7 +346,7 @@ ilp64_no_omp_tests = [ ...@@ -346,7 +346,7 @@ ilp64_no_omp_tests = [
'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_NOMPI_NOOMP_ILP64 \\" ' 'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_NOMPI_NOOMP_ILP64 \\" '
'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_NOMPI_NOOMP_ILP64 \\" ' 'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_NOMPI_NOOMP_ILP64 \\" '
'--enable-option-checking=fatal --with-mpi=no --disable-openmp ' '--enable-option-checking=fatal --with-mpi=no --disable-openmp '
'--disable-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-64bit-integer-math-support || { cat config.log; exit 1; }' '--disable-nvidia-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-64bit-integer-math-support || { cat config.log; exit 1; }'
'" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE ' '" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE '
'-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM', '-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM',
"\n", "\n",
...@@ -364,7 +364,7 @@ ilp64_no_omp_tests = [ ...@@ -364,7 +364,7 @@ ilp64_no_omp_tests = [
'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_NOMPI_OMP_ILP64 \\" ' 'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_NOMPI_OMP_ILP64 \\" '
'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_NOMPI_OMP_ILP64 \\" ' 'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_NOMPI_OMP_ILP64 \\" '
'--enable-option-checking=fatal --with-mpi=no --enable-openmp ' '--enable-option-checking=fatal --with-mpi=no --enable-openmp '
'--disable-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-64bit-integer-math-support || { cat config.log; exit 1; }' '--disable-nvidia-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-64bit-integer-math-support || { cat config.log; exit 1; }'
'" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE ' '" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE '
'-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM', '-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM',
"\n", "\n",
...@@ -388,7 +388,7 @@ ilp64_no_omp_mpi_tests = [ ...@@ -388,7 +388,7 @@ ilp64_no_omp_mpi_tests = [
'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NOOMP_ILP64 \\" ' 'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NOOMP_ILP64 \\" '
'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_NOOMP_ILP64 \\" ' 'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_NOOMP_ILP64 \\" '
'--enable-option-checking=fatal --with-mpi=yes --disable-openmp ' '--enable-option-checking=fatal --with-mpi=yes --disable-openmp '
'--disable-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-64bit-integer-math-support || { cat config.log; exit 1; }' '--disable-nvidia-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-64bit-integer-math-support || { cat config.log; exit 1; }'
'" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE ' '" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE '
'-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM', '-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM',
"\n", "\n",
...@@ -406,7 +406,7 @@ ilp64_no_omp_mpi_tests = [ ...@@ -406,7 +406,7 @@ ilp64_no_omp_mpi_tests = [
'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_OMP_ILP64 \\" ' 'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_OMP_ILP64 \\" '
'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_OMP_ILP64 \\" ' 'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_OMP_ILP64 \\" '
'--enable-option-checking=fatal --with-mpi=yes --enable-openmp ' '--enable-option-checking=fatal --with-mpi=yes --enable-openmp '
'--disable-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-64bit-integer-math-support || { cat config.log; exit 1; }' '--disable-nvidia-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-64bit-integer-math-support || { cat config.log; exit 1; }'
'" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE ' '" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE '
'-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM', '-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM',
"\n", "\n",
...@@ -430,7 +430,7 @@ matrix_redistribute_mpi_tests = [ ...@@ -430,7 +430,7 @@ matrix_redistribute_mpi_tests = [
'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NO_OMP \\" ' 'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NO_OMP \\" '
'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NO_OMP \\" ' 'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NO_OMP \\" '
'--enable-option-checking=fatal --with-mpi=yes --disable-openmp ' '--enable-option-checking=fatal --with-mpi=yes --disable-openmp '
'--disable-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-scalapack-tests --enable-autotune-redistribute-matrix || { cat config.log; exit 1; }' '--disable-nvidia-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-scalapack-tests --enable-autotune-redistribute-matrix || { cat config.log; exit 1; }'
'" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE ' '" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE '
'-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM', '-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM',
"\n", "\n",
...@@ -448,7 +448,7 @@ matrix_redistribute_mpi_tests = [ ...@@ -448,7 +448,7 @@ matrix_redistribute_mpi_tests = [
'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_OMP \\" ' 'SCALAPACK_LDFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_OMP \\" '
'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_OMP \\" ' 'SCALAPACK_FCFLAGS=\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_OMP \\" '
'--enable-option-checking=fatal --with-mpi=yes --enable-openmp ' '--enable-option-checking=fatal --with-mpi=yes --enable-openmp '
'--disable-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-scalapack-tests --enable-autotune-redistribute-matrix || { cat config.log; exit 1; }' '--disable-nvidia-gpu --enable-avx --disable-avx2 --disable-avx512 --enable-scalapack-tests --enable-autotune-redistribute-matrix || { cat config.log; exit 1; }'
'" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE ' '" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE '
'-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM', '-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM',
"\n", "\n",
...@@ -472,7 +472,7 @@ python_ci_tests = [ ...@@ -472,7 +472,7 @@ python_ci_tests = [
'SCALAPACK_LDFLAGS=\\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP \\" ' 'SCALAPACK_LDFLAGS=\\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP \\" '
'SCALAPACK_FCFLAGS=\\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP \\" ' 'SCALAPACK_FCFLAGS=\\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP \\" '
'--enable-option-checking=fatal --with-mpi=yes --enable-openmp ' '--enable-option-checking=fatal --with-mpi=yes --enable-openmp '
'--disable-gpu --enable-avx --enable-python --enable-python-tests || { cat config.log; exit 1; }' '--disable-nvidia-gpu --enable-avx --enable-python --enable-python-tests || { cat config.log; exit 1; }'
'" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE ' '" -j 8 -t $MPI_TASKS -m $MATRIX_SIZE -n $NUMBER_OF_EIGENVECTORS -b $BLOCK_SIZE '
'-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM', '-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM',
"\n", "\n",
...@@ -486,7 +486,7 @@ python_ci_tests = [ ...@@ -486,7 +486,7 @@ python_ci_tests = [
'SCALAPACK_LDFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP\\\" ' 'SCALAPACK_LDFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP\\\" '
'SCALAPACK_FCFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP\\\" ' 'SCALAPACK_FCFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP\\\" '
'--enable-option-checking=fatal --with-mpi=yes --enable-openmp ' '--enable-option-checking=fatal --with-mpi=yes --enable-openmp '
'--disable-gpu --enable-avx --enable-python --enable-python-tests || { cat config.log; exit 1; }' '--disable-nvidia-gpu --enable-avx --enable-python --enable-python-tests || { cat config.log; exit 1; }'
'" -j 8 -t $MPI_TASKS -m 150 -n 50 -b 16 ' '" -j 8 -t $MPI_TASKS -m 150 -n 50 -b 16 '
'-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM', '-s $SKIP_STEP -i $INTERACTIVE_RUN -S $SLURM',
"\n", "\n",
...@@ -496,13 +496,13 @@ python_ci_tests = [ ...@@ -496,13 +496,13 @@ python_ci_tests = [
'SCALAPACK_LDFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP \\\" ' 'SCALAPACK_LDFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP \\\" '
'SCALAPACK_FCFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP \\\" ' 'SCALAPACK_FCFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP \\\" '
'--enable-option-checking=fatal --with-mpi=yes --enable-openmp ' '--enable-option-checking=fatal --with-mpi=yes --enable-openmp '
'--disable-gpu --enable-avx --enable-python --enable-python-tests "' '--disable-nvidia-gpu --enable-avx --enable-python --enable-python-tests "'
'-d " CC=\\\\\\\"mpiicc\\\\\\\" CFLAGS=\\\\\\\"-O3 -xAVX\\\\\\\" ' '-d " CC=\\\\\\\"mpiicc\\\\\\\" CFLAGS=\\\\\\\"-O3 -xAVX\\\\\\\" '
'FC=\\\\\\\"mpiifort\\\\\\\" FCFLAGS=\\\\\\\"-O3 -xAVX\\\\\\\" ' 'FC=\\\\\\\"mpiifort\\\\\\\" FCFLAGS=\\\\\\\"-O3 -xAVX\\\\\\\" '
'SCALAPACK_LDFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP \\\" ' 'SCALAPACK_LDFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP \\\" '
'SCALAPACK_FCFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP \\\" ' 'SCALAPACK_FCFLAGS=\\\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP \\\" '
'--enable-option-checking=fatal --with-mpi=yes --enable-openmp ' '--enable-option-checking=fatal --with-mpi=yes --enable-openmp '
'--disable-gpu --enable-avx --enable-python --enable-python-tests' '--disable-nvidia-gpu --enable-avx --enable-python --enable-python-tests'
'" -t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM || { chmod u+rwX -R . ; exit 1 ; }', '" -t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM || { chmod u+rwX -R . ; exit 1 ; }',
"\n", "\n",
] ]
...@@ -597,8 +597,8 @@ band_to_full_blocking = { ...@@ -597,8 +597,8 @@ band_to_full_blocking = {
} }
gpu = { gpu = {
"no-gpu" : "--disable-gpu", "no-gpu" : "--disable-nvidia-gpu",
"with-gpu" : "--enable-gpu --with-cuda-path=\\$CUDA_HOME/", "with-gpu" : "--enable-nvidia-gpu --with-cuda-path=\\$CUDA_HOME/",
} }
......
...@@ -21,8 +21,9 @@ solver_flag = { ...@@ -21,8 +21,9 @@ solver_flag = {
"scalapack_part": "-DTEST_SCALAPACK_PART", "scalapack_part": "-DTEST_SCALAPACK_PART",
} }
gpu_flag = { gpu_flag = {
0: "-DTEST_GPU=0", "GPU_OFF": "-DTEST_NVIDIA_GPU=0 -DTEST_AMD_GPU=0",
1: "-DTEST_GPU=1", "NVIDIA_GPU_ON": "-DTEST_NVIDIA_GPU=1",
"AMD_GPU_ON": "-DTEST_AMD_GPU=1",
} }
gpu_id_flag = { gpu_id_flag = {
0: "-DTEST_GPU_SET_ID=0", 0: "-DTEST_GPU_SET_ID=0",
...@@ -86,14 +87,14 @@ for lang, m, g, gid, q, t, p, d, s, lay, spl in product(sorted(language_flag.key ...@@ -86,14 +87,14 @@ for lang, m, g, gid, q, t, p, d, s, lay, spl in product(sorted(language_flag.key
# exclude some test combinations # exclude some test combinations
# analytic tests only for "eigenvectors" and not on GPU # analytic tests only for "eigenvectors" and not on GPU
if(m == "analytic" and (g == 1 or t != "eigenvectors")): if(m == "analytic" and ( g == "NVIDIA_GPU_ON" or g == "AMD_GPU_ON" or t != "eigenvectors")):
continue continue
# Frank tests only for "eigenvectors" and eigenvalues and real double precision case # Frank tests only for "eigenvectors" and eigenvalues and real double precision case
if(m == "frank" and ((t != "eigenvectors" or t != "eigenvalues") and (d != "real" or p != "double"))): if(m == "frank" and ((t != "eigenvectors" or t != "eigenvalues") and (d != "real" or p != "double"))):
continue continue
if(s in ["scalapack_all", "scalapack_part"] and (g == 1 or t != "eigenvectors" or m != "analytic")): if(s in ["scalapack_all", "scalapack_part"] and (g == "NVIDIA_GPU_ON" or g == "AMD_GPU_ON" or t != "eigenvectors" or m != "analytic")):
continue continue
# do not test single-precision scalapack # do not test single-precision scalapack
...@@ -127,7 +128,7 @@ for lang, m, g, gid, q, t, p, d, s, lay, spl in product(sorted(language_flag.key ...@@ -127,7 +128,7 @@ for lang, m, g, gid, q, t, p, d, s, lay, spl in product(sorted(language_flag.key
continue continue
# qr only for 2stage real # qr only for 2stage real
if (q == 1 and (s != "2stage" or d != "real" or t != "eigenvectors" or g == 1 or m != "random")): if (q == 1 and (s != "2stage" or d != "real" or t != "eigenvectors" or g == "NVIDIA_GPU_ON" or "AMD_GPU_ON" or m != "random")):
continue continue
if(spl == "myself" and (d != "real" or p != "double" or q != 0 or m != "random" or (t != "eigenvectors" and t != "cholesky") or lang != "Fortran" or lay != "square")): if(spl == "myself" and (d != "real" or p != "double" or q != 0 or m != "random" or (t != "eigenvectors" and t != "cholesky") or lang != "Fortran" or lay != "square")):
...@@ -154,10 +155,14 @@ for lang, m, g, gid, q, t, p, d, s, lay, spl in product(sorted(language_flag.key ...@@ -154,10 +155,14 @@ for lang, m, g, gid, q, t, p, d, s, lay, spl in product(sorted(language_flag.key
print("if ENABLE_C_TESTS") print("if ENABLE_C_TESTS")
endifs += 1 endifs += 1
if (g == 1): if (g == "NVIDIA_GPU_ON"):
print("if WITH_NVIDIA_GPU_VERSION") print("if WITH_NVIDIA_GPU_VERSION")
endifs += 1 endifs += 1
if (g == "AMD_GPU_ON"):
print("if WITH_AMD_GPU_VERSION")
endifs += 1
if (lay == "all_layouts"): if (lay == "all_layouts"):
print("if WITH_MPI") print("if WITH_MPI")
endifs += 1 endifs += 1
...@@ -190,7 +195,7 @@ for lang, m, g, gid, q, t, p, d, s, lay, spl in product(sorted(language_flag.key ...@@ -190,7 +195,7 @@ for lang, m, g, gid, q, t, p, d, s, lay, spl in product(sorted(language_flag.key
langsuffix=language_flag[lang], langsuffix=language_flag[lang],
d=d, p=p, t=t, s=s, d=d, p=p, t=t, s=s,
kernelsuffix="" if kernel == "nokernel" else "_" + kernel, kernelsuffix="" if kernel == "nokernel" else "_" + kernel,
gpusuffix="gpu_" if g else "", gpusuffix="gpu_" if (g == "NVIDIA_GPU_ON" or g == "AMD_GPU_ON") else "",
gpuidsuffix="set_gpu_id_" if gid else "", gpuidsuffix="set_gpu_id_" if gid else "",
qrsuffix="qr_" if q else "", qrsuffix="qr_" if q else "",
m=m, m=m,
......
...@@ -127,6 +127,14 @@ ...@@ -127,6 +127,14 @@
#define TEST_C_INT_MPI_TYPE int #define TEST_C_INT_MPI_TYPE int
#define C_INT_MPI_TYPE int #define C_INT_MPI_TYPE int
#endif #endif
#define TEST_GPU 0
#if (TEST_NVIDIA_GPU == 1) || (TEST_AMD_GPU == 1)
#undef TEST_GPU
#define TEST_GPU 1
#endif
#include "test/shared/generated.h" #include "test/shared/generated.h"
int main(int argc, char** argv) { int main(int argc, char** argv) {
...@@ -273,8 +281,17 @@ int main(int argc, char** argv) { ...@@ -273,8 +281,17 @@ int main(int argc, char** argv) {
#endif #endif
assert_elpa_ok(error_elpa); assert_elpa_ok(error_elpa);
#if TEST_NVIDIA_GPU == 1 || (TEST_NVIDIA_GPU == 0) && (TEST_AMD_GPU == 0)
elpa_set(handle, "nvidia-gpu", TEST_GPU, &error_elpa); elpa_set(handle, "nvidia-gpu", TEST_GPU, &error_elpa);
assert_elpa_ok(error_elpa); assert_elpa_ok(error_elpa);
#endif
#if TEST_AMD_GPU == 1
elpa_set(handle, "amd-gpu", TEST_GPU, &error_elpa);
assert_elpa_ok(error_elpa);
#endif
#if defined(TEST_SOLVE_2STAGE) && defined(TEST_KERNEL) #if defined(TEST_SOLVE_2STAGE) && defined(TEST_KERNEL)
# ifdef TEST_COMPLEX # ifdef TEST_COMPLEX
......
...@@ -45,7 +45,8 @@ ...@@ -45,7 +45,8 @@
! Define one of TEST_REAL or TEST_COMPLEX ! Define one of TEST_REAL or TEST_COMPLEX
! Define one of TEST_SINGLE or TEST_DOUBLE ! Define one of TEST_SINGLE or TEST_DOUBLE
! Define one of TEST_SOLVER_1STAGE or TEST_SOLVER_2STAGE ! Define one of TEST_SOLVER_1STAGE or TEST_SOLVER_2STAGE
! Define TEST_GPU \in [0, 1] ! Define TEST_NVIDIA_GPU \in [0, 1]
! Define TEST_AMD_GPU \in [0, 1]
! Define either TEST_ALL_KERNELS or a TEST_KERNEL \in [any valid kernel] ! Define either TEST_ALL_KERNELS or a TEST_KERNEL \in [any valid kernel]
#if !(defined(TEST_REAL) ^ defined(TEST_COMPLEX)) #if !(defined(TEST_REAL) ^ defined(TEST_COMPLEX))
...@@ -116,6 +117,13 @@ error: define either TEST_ALL_KERNELS or a valid TEST_KERNEL ...@@ -116,6 +117,13 @@ error: define either TEST_ALL_KERNELS or a valid TEST_KERNEL
#define TEST_INT_MPI_TYPE integer(kind=c_int32_t) #define TEST_INT_MPI_TYPE integer(kind=c_int32_t)
#define INT_MPI_TYPE c_int32_t #define INT_MPI_TYPE c_int32_t
#endif #endif
#define TEST_GPU 0
#if (TEST_NVIDIA_GPU == 1) || (TEST_AMD_GPU == 1)
#undef TEST_GPU
#define TEST_GPU 1
#endif
#include "assert.h" #include "assert.h"
program test program test
...@@ -640,8 +648,15 @@ program test ...@@ -640,8 +648,15 @@ program test
#endif #endif
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
#if TEST_NVIDIA_GPU == 1 || (TEST_NVIDIA_GPU == 0) && (TEST_AMD_GPU == 0)
call e%set("nvidia-gpu", TEST_GPU, error_elpa) call e%set("nvidia-gpu", TEST_GPU, error_elpa)
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
#endif
#if TEST_AMD_GPU == 1
call e%set("amd-gpu", TEST_GPU, error_elpa)
assert_elpa_ok(error_elpa)
#endif
#if TEST_GPU_SET_ID == 1 #if TEST_GPU_SET_ID == 1
! simple test ! simple test
...@@ -681,12 +696,24 @@ program test ...@@ -681,12 +696,24 @@ program test
#ifdef TEST_SOLVER_2STAGE #ifdef TEST_SOLVER_2STAGE
#if TEST_GPU == 1 #if TEST_GPU == 1
#if defined TEST_REAL #if defined TEST_REAL
#if (TEST_NVIDIA_GPU == 1)
kernel = ELPA_2STAGE_REAL_NVIDIA_GPU kernel = ELPA_2STAGE_REAL_NVIDIA_GPU
#endif #endif
#if (TEST_AMD_GPU == 1)
kernel = ELPA_2STAGE_REAL_AND_GPU
#endif
#endif /* TEST_REAL */
#if defined TEST_COMPLEX #if defined TEST_COMPLEX
#if (TEST_NVIDIA_GPU == 1)
kernel = ELPA_2STAGE_COMPLEX_NVIDIA_GPU kernel = ELPA_2STAGE_COMPLEX_NVIDIA_GPU
#endif #endif
#if (TEST_AMD_GPU == 1)
kernel = ELPA_2STAGE_COMPLEX_AMD_GPU
#endif #endif
#endif /* TEST_COMPLEX */
#endif /* TEST_GPU == 1 */
call e%set(KERNEL_KEY, kernel, error_elpa) call e%set(KERNEL_KEY, kernel, error_elpa)
#ifdef TEST_KERNEL #ifdef TEST_KERNEL
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
......
...@@ -45,7 +45,8 @@ ...@@ -45,7 +45,8 @@
! Define one of TEST_REAL or TEST_COMPLEX ! Define one of TEST_REAL or TEST_COMPLEX
! Define one of TEST_SINGLE or TEST_DOUBLE ! Define one of TEST_SINGLE or TEST_DOUBLE
! Define one of TEST_SOLVER_1STAGE or TEST_SOLVER_2STAGE ! Define one of TEST_SOLVER_1STAGE or TEST_SOLVER_2STAGE
! Define TEST_GPU \in [0, 1] ! Define TEST_NVIDIA_GPU \in [0, 1]
! Define TEST_AMD_GPU \in [0, 1]
! Define either TEST_ALL_KERNELS or a TEST_KERNEL \in [any valid kernel] ! Define either TEST_ALL_KERNELS or a TEST_KERNEL \in [any valid kernel]
#if !(defined(TEST_REAL) ^ defined(TEST_COMPLEX)) #if !(defined(TEST_REAL) ^ defined(TEST_COMPLEX))
...@@ -94,6 +95,16 @@ error: define exactly one of TEST_SINGLE or TEST_DOUBLE ...@@ -94,6 +95,16 @@ error: define exactly one of TEST_SINGLE or TEST_DOUBLE
#define TEST_INT_MPI_TYPE integer(kind=c_int32_t) #define TEST_INT_MPI_TYPE integer(kind=c_int32_t)
#define INT_MPI_TYPE c_int32_t #define INT_MPI_TYPE c_int32_t
#endif #endif
#define TEST_GPU 0
#if (TEST_NVIDIA_GPU == 1) || (TEST_AMD_GPU == 1)
#undef TEST_GPU
#define TEST_GPU 1
#endif
#include "assert.h" #include "assert.h"
program test program test
...@@ -228,8 +239,15 @@ program test ...@@ -228,8 +239,15 @@ program test
call e%set("debug",1, error_elpa) call e%set("debug",1, error_elpa)
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
#if TEST_NVIDIA_GPU == 1 || (TEST_NVIDIA_GPU == 0) && (TEST_AMD_GPU == 0)
call e%set("nvidia-gpu", 0, error_elpa) call e%set("nvidia-gpu", 0, error_elpa)
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
#endif
#if TEST_AMD_GPU == 1
call e%set("amd-gpu", 0, error_elpa)
assert_elpa_ok(error_elpa)
#endif
!call e%set("max_stored_rows", 15, error_elpa) !call e%set("max_stored_rows", 15, error_elpa)
assert_elpa_ok(e%setup()) assert_elpa_ok(e%setup())
......
...@@ -45,7 +45,8 @@ ...@@ -45,7 +45,8 @@
! Define one of TEST_REAL or TEST_COMPLEX ! Define one of TEST_REAL or TEST_COMPLEX
! Define one of TEST_SINGLE or TEST_DOUBLE ! Define one of TEST_SINGLE or TEST_DOUBLE
! Define one of TEST_SOLVER_1STAGE or TEST_SOLVER_2STAGE ! Define one of TEST_SOLVER_1STAGE or TEST_SOLVER_2STAGE
! Define TEST_GPU \in [0, 1] ! Define TEST_NVIDIA_GPU \in [0, 1]
! Define TEST_AMD_GPU \in [0, 1]
! Define either TEST_ALL_KERNELS or a TEST_KERNEL \in [any valid kernel] ! Define either TEST_ALL_KERNELS or a TEST_KERNEL \in [any valid kernel]
#if !(defined(TEST_REAL) ^ defined(TEST_COMPLEX)) #if !(defined(TEST_REAL) ^ defined(TEST_COMPLEX))
...@@ -95,6 +96,11 @@ error: define exactly one of TEST_SINGLE or TEST_DOUBLE ...@@ -95,6 +96,11 @@ error: define exactly one of TEST_SINGLE or TEST_DOUBLE
#define INT_MPI_TYPE c_int32_t #define INT_MPI_TYPE c_int32_t
#endif #endif
#define TEST_GPU 0
#if (TEST_NVIDIA_GPU == 1) || (TEST_AMD_GPU == 1)
#undef TEST_GPU
#define TEST_GPU 1
#endif
#include "assert.h" #include "assert.h"
...@@ -209,8 +215,15 @@ program test ...@@ -209,8 +215,15 @@ program test
call e1%set("debug",1, error_elpa) call e1%set("debug",1, error_elpa)
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
call e1%set("nvidia-gpu", 0, error_elpa) #if TEST_NVIDIA_GPU == 1 || (TEST_NVIDIA_GPU == 0) && (TEST_AMD_GPU == 0)
call e1%set("nvidia-gpu", TEST_GPU, error_elpa)
assert_elpa_ok(error_elpa)
#endif
#if TEST_AMD_GPU == 1
call e1%set("amd-gpu", TEST_GPU, error_elpa)
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
#endif
!call e1%set("max_stored_rows", 15, error_elpa) !call e1%set("max_stored_rows", 15, error_elpa)
assert_elpa_ok(e1%setup()) assert_elpa_ok(e1%setup())
...@@ -238,8 +251,14 @@ program test ...@@ -238,8 +251,14 @@ program test
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
call e2%get("debug", int(debug,kind=c_int), error_elpa) call e2%get("debug", int(debug,kind=c_int), error_elpa)
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
#if TEST_NVIDIA_GPU == 1 || (TEST_NVIDIA_GPU == 0) && (TEST_AMD_GPU == 0)
call e2%get("nvidia-gpu", int(gpu,kind=c_int), error_elpa) call e2%get("nvidia-gpu", int(gpu,kind=c_int), error_elpa)
assert_elpa_ok(error_elpa) assert_elpa_ok(error_elpa)
#endif
#if TEST_NVIDIA_AMD == 1
call e2%get("amd-gpu", int(gpu,kind=c_int), error_elpa)
assert_elpa_ok(error_elpa)
#endif
if ((timings .ne. 1) .or. (debug .ne. 1) .or. (gpu .ne. 0)) then if ((timings .ne. 1) .or. (debug .ne. 1) .or. (gpu .ne. 0)) then
print *, "Parameters not stored or loaded correctly. Aborting...", timings, debug, gpu print *, "Parameters not stored or loaded correctly. Aborting...", timings, debug, gpu
......
...@@ -45,7 +45,8 @@ ...@@ -45,7 +45,8 @@
! Define one of TEST_REAL or TEST_COMPLEX ! Define one of TEST_REAL or TEST_COMPLEX
! Define one of TEST_SINGLE or TEST_DOUBLE ! Define one of TEST_SINGLE or TEST_DOUBLE
! Define one of TEST_SOLVER_1STAGE or TEST_SOLVER_2STAGE ! Define one of TEST_SOLVER_1STAGE or TEST_SOLVER_2STAGE
! Define TEST_GPU \in [0, 1] ! Define TEST_NVIDIA_GPU \in [0, 1]
! Define TEST_AMD_GPU \in [0, 1]
! Define either TEST_ALL_KERNELS or a TEST_KERNEL \in [any valid kernel] ! Define either TEST_ALL_KERNELS or a TEST_KERNEL \in [any valid kernel]
#if !(defined(TEST_REAL) ^ defined(TEST_COMPLEX)) #if !(defined(TEST_REAL) ^ defined(TEST_COMPLEX))
...@@ -95,6 +96,13 @@ error: define exactly one of TEST_SINGLE or TEST_DOUBLE ...@@ -95,6 +96,13 @@ error: define exactly one of TEST_SINGLE or TEST_DOUBLE
#define TEST_INT_MPI_TYPE integer(kind=c_int32_t) #define TEST_INT_MPI_TYPE integer(kind=c_int32_t)
#define INT_MPI_TYPE c_int32_t #define INT_MPI_TYPE c_int32_t
#endif #endif
#define TEST_GPU 0
#if (TEST_NVIDIA_GPU == 1) || (TEST_AMD_GPU == 1)
#undef TEST_GPU
#define TEST_GPU 1
#endif
#include "assert.h" #include "assert.h"
program test program test
...@@ -233,7 +241,13 @@ program test ...@@ -233,7 +241,13 @@ program test
call e_complex%set("timings",1, error_elpa) call e_complex%set("timings",1, error_elpa)
call e_complex%set("debug",1,error_elpa) call e_complex%set("debug",1,error_elpa)
call e_complex%set("nvidia-gpu", 0,error_elpa) #if TEST_NVIDIA_GPU == 1 || (TEST_NVIDIA_GPU == 0) && (TEST_AMD_GPU == 0)
call e_complex%set("nvidia-gpu", TEST_GPU,error_elpa)
#endif
#if TEST_AMD_GPU == 1
call e_complex%set("amd-gpu", TEST_GPU,error_elpa)
#endif
call e_complex%set("omp_threads", 8, error_elpa) call e_complex%set("omp_threads", 8, error_elpa)
assert_elpa_ok(e_complex%setup()) assert_elpa_ok(e_complex%setup())
...@@ -271,7 +285,13 @@ program test ...@@ -271,7 +285,13 @@ program test
call e_skewsymmetric%set("timings",1, error_elpa) call e_skewsymmetric%set("timings",1, error_elpa)
call e_skewsymmetric%set("debug",1,error_elpa) call e_skewsymmetric%set("debug",1,error_elpa)
call e_skewsymmetric%set("nvidia-gpu", 0,error_elpa)
#if TEST_NVIDIA_GPU == 1 || (TEST_NVIDIA_GPU == 0) && (TEST_AMD_GPU == 0)
call e_skewsymmetric%set("nvidia-gpu", TEST_GPU,error_elpa)
#endif
#if TEST_AMD_GPU == 1
call e_skewsymmetric%set("amd-gpu", TEST_GPU,error_elpa)
#endif
call e_skewsymmetric%set("omp_threads",8, error_elpa) call e_skewsymmetric%set("omp_threads",8, error_elpa)
assert_elpa_ok(e_skewsymmetric%setup()) assert_elpa_ok(e_skewsymmetric%setup())
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment