diff --git a/source/Makefile.Objects b/source/Makefile.Objects index f6ed91aac4..8bad2ec8bf 100644 --- a/source/Makefile.Objects +++ b/source/Makefile.Objects @@ -121,6 +121,7 @@ OBJS_MAIN=main.o\ OBJS_BASE=abfs-vector3_order.o\ assoc_laguerre.o\ + blas_connector.o\ complexarray.o\ complexmatrix.o\ clebsch_gordan_coeff.o\ diff --git a/source/module_base/CMakeLists.txt b/source/module_base/CMakeLists.txt index dde98f915f..e11141208c 100644 --- a/source/module_base/CMakeLists.txt +++ b/source/module_base/CMakeLists.txt @@ -11,6 +11,7 @@ add_library( base OBJECT assoc_laguerre.cpp + blas_connector.cpp clebsch_gordan_coeff.cpp complexarray.cpp complexmatrix.cpp diff --git a/source/module_base/blas_connector.cpp b/source/module_base/blas_connector.cpp new file mode 100644 index 0000000000..8da2b802fa --- /dev/null +++ b/source/module_base/blas_connector.cpp @@ -0,0 +1,187 @@ +#include "blas_connector.h" + +void BlasConnector::axpy( const int n, const float alpha, const float *X, const int incX, float *Y, const int incY, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + saxpy_(&n, &alpha, X, &incX, Y, &incY); +} +} + +void BlasConnector::axpy( const int n, const double alpha, const double *X, const int incX, double *Y, const int incY, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + daxpy_(&n, &alpha, X, &incX, Y, &incY); +} +} + +void BlasConnector::axpy( const int n, const std::complex alpha, const std::complex *X, const int incX, std::complex *Y, const int incY, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + caxpy_(&n, &alpha, X, &incX, Y, &incY); +} +} + +void BlasConnector::axpy( const int n, const std::complex alpha, const std::complex *X, const int incX, std::complex *Y, const int incY, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + zaxpy_(&n, &alpha, X, &incX, Y, &incY); +} +} + + +// x=a*x +void BlasConnector::scal( const int n, const float alpha, float *X, const int incX, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + sscal_(&n, &alpha, X, &incX); +} +} + +void BlasConnector::scal( const int n, const double alpha, double *X, const int incX, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + dscal_(&n, &alpha, X, &incX); +} +} + +void BlasConnector::scal( const int n, const std::complex alpha, std::complex *X, const int incX, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + cscal_(&n, &alpha, X, &incX); +} +} + +void BlasConnector::scal( const int n, const std::complex alpha, std::complex *X, const int incX, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + zscal_(&n, &alpha, X, &incX); +} +} + + +// d=x*y +float BlasConnector::dot( const int n, const float *X, const int incX, const float *Y, const int incY, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + return sdot_(&n, X, &incX, Y, &incY); +} +} + +double BlasConnector::dot( const int n, const double *X, const int incX, const double *Y, const int incY, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + return ddot_(&n, X, &incX, Y, &incY); +} +} + +// C = a * A.? * B.? + b * C +void BlasConnector::gemm(const char transa, const char transb, const int m, const int n, const int k, + const float alpha, const float *a, const int lda, const float *b, const int ldb, + const float beta, float *c, const int ldc, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + sgemm_(&transb, &transa, &n, &m, &k, + &alpha, b, &ldb, a, &lda, + &beta, c, &ldc); +} +} + +void BlasConnector::gemm(const char transa, const char transb, const int m, const int n, const int k, + const double alpha, const double *a, const int lda, const double *b, const int ldb, + const double beta, double *c, const int ldc, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + dgemm_(&transb, &transa, &n, &m, &k, + &alpha, b, &ldb, a, &lda, + &beta, c, &ldc); +} +} + +void BlasConnector::gemm(const char transa, const char transb, const int m, const int n, const int k, + const std::complex alpha, const std::complex *a, const int lda, const std::complex *b, const int ldb, + const std::complex beta, std::complex *c, const int ldc, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + cgemm_(&transb, &transa, &n, &m, &k, + &alpha, b, &ldb, a, &lda, + &beta, c, &ldc); +} +} + +void BlasConnector::gemm(const char transa, const char transb, const int m, const int n, const int k, + const std::complex alpha, const std::complex *a, const int lda, const std::complex *b, const int ldb, + const std::complex beta, std::complex *c, const int ldc, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + zgemm_(&transb, &transa, &n, &m, &k, + &alpha, b, &ldb, a, &lda, + &beta, c, &ldc); +} +} + +void BlasConnector::gemv(const char trans, const int m, const int n, + const double alpha, const double* A, const int lda, const double* X, const int incx, + const double beta, double* Y, const int incy, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + dgemv_(&trans, &m, &n, &alpha, A, &lda, X, &incx, &beta, Y, &incy); +} +} + +void BlasConnector::gemv(const char trans, const int m, const int n, + const std::complex alpha, const std::complex *A, const int lda, const std::complex *X, const int incx, + const std::complex beta, std::complex *Y, const int incy, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + cgemv_(&trans, &m, &n, &alpha, A, &lda, X, &incx, &beta, Y, &incy); +} +} + +void BlasConnector::gemv(const char trans, const int m, const int n, + const std::complex alpha, const std::complex *A, const int lda, const std::complex *X, const int incx, + const std::complex beta, std::complex *Y, const int incy, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + zgemv_(&trans, &m, &n, &alpha, A, &lda, X, &incx, &beta, Y, &incy); +} +} + + +// out = ||x||_2 +float BlasConnector::nrm2( const int n, const float *X, const int incX, base_device::AbacusDevice_t device_type ) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + return snrm2_( &n, X, &incX ); +} +} + + +double BlasConnector::nrm2( const int n, const double *X, const int incX, base_device::AbacusDevice_t device_type ) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + return dnrm2_( &n, X, &incX ); +} +} + + +double BlasConnector::nrm2( const int n, const std::complex *X, const int incX, base_device::AbacusDevice_t device_type ) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + return dznrm2_( &n, X, &incX ); +} +} + +// copies a into b +void BlasConnector::copy(const long n, const double *a, const int incx, double *b, const int incy, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + dcopy_(&n, a, &incx, b, &incy); +} +} + +void BlasConnector::copy(const long n, const std::complex *a, const int incx, std::complex *b, const int incy, base_device::AbacusDevice_t device_type) +{ + if (device_type == base_device::AbacusDevice_t::CpuDevice) { + zcopy_(&n, a, &incx, b, &incy); +} +} \ No newline at end of file diff --git a/source/module_base/blas_connector.h b/source/module_base/blas_connector.h index 90f1efae53..b819b6852e 100644 --- a/source/module_base/blas_connector.h +++ b/source/module_base/blas_connector.h @@ -2,6 +2,10 @@ #define BLAS_CONNECTOR_H #include +#include "module_base/module_device/types.h" + +// These still need to be linked in the header file +// Because quite a lot of code will directly use the original cblas kernels. extern "C" { @@ -115,152 +119,99 @@ class BlasConnector // Peize Lin add 2016-08-04 // y=a*x+y - static inline - void axpy( const int n, const float alpha, const float *X, const int incX, float *Y, const int incY) - { - saxpy_(&n, &alpha, X, &incX, Y, &incY); - } - static inline - void axpy( const int n, const double alpha, const double *X, const int incX, double *Y, const int incY) - { - daxpy_(&n, &alpha, X, &incX, Y, &incY); - } - static inline - void axpy( const int n, const std::complex alpha, const std::complex *X, const int incX, std::complex *Y, const int incY) - { - caxpy_(&n, &alpha, X, &incX, Y, &incY); - } - static inline - void axpy( const int n, const std::complex alpha, const std::complex *X, const int incX, std::complex *Y, const int incY) - { - zaxpy_(&n, &alpha, X, &incX, Y, &incY); - } + static + void axpy( const int n, const float alpha, const float *X, const int incX, float *Y, const int incY, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + void axpy( const int n, const double alpha, const double *X, const int incX, double *Y, const int incY, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + void axpy( const int n, const std::complex alpha, const std::complex *X, const int incX, std::complex *Y, const int incY, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + void axpy( const int n, const std::complex alpha, const std::complex *X, const int incX, std::complex *Y, const int incY, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + // Peize Lin add 2016-08-04 // x=a*x - static inline - void scal( const int n, const float alpha, float *X, const int incX) - { - sscal_(&n, &alpha, X, &incX); - } - static inline - void scal( const int n, const double alpha, double *X, const int incX) - { - dscal_(&n, &alpha, X, &incX); - } - static inline - void scal( const int n, const std::complex alpha, std::complex *X, const int incX) - { - cscal_(&n, &alpha, X, &incX); - } - static inline - void scal( const int n, const std::complex alpha, std::complex *X, const int incX) - { - zscal_(&n, &alpha, X, &incX); - } + static + void scal( const int n, const float alpha, float *X, const int incX, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + void scal( const int n, const double alpha, double *X, const int incX, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + void scal( const int n, const std::complex alpha, std::complex *X, const int incX, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + void scal( const int n, const std::complex alpha, std::complex *X, const int incX, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + // Peize Lin add 2017-10-27 // d=x*y - static inline - float dot( const int n, const float *X, const int incX, const float *Y, const int incY) - { - return sdot_(&n, X, &incX, Y, &incY); - } - static inline - double dot( const int n, const double *X, const int incX, const double *Y, const int incY) - { - return ddot_(&n, X, &incX, Y, &incY); - } + static + float dot( const int n, const float *X, const int incX, const float *Y, const int incY, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + double dot( const int n, const double *X, const int incX, const double *Y, const int incY, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + // Peize Lin add 2017-10-27, fix bug trans 2019-01-17 // C = a * A.? * B.? + b * C - static inline + static void gemm(const char transa, const char transb, const int m, const int n, const int k, const float alpha, const float *a, const int lda, const float *b, const int ldb, - const float beta, float *c, const int ldc) - { - sgemm_(&transb, &transa, &n, &m, &k, - &alpha, b, &ldb, a, &lda, - &beta, c, &ldc); - } - static inline + const float beta, float *c, const int ldc, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static void gemm(const char transa, const char transb, const int m, const int n, const int k, const double alpha, const double *a, const int lda, const double *b, const int ldb, - const double beta, double *c, const int ldc) - { - dgemm_(&transb, &transa, &n, &m, &k, - &alpha, b, &ldb, a, &lda, - &beta, c, &ldc); - } - static inline + const double beta, double *c, const int ldc, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static void gemm(const char transa, const char transb, const int m, const int n, const int k, const std::complex alpha, const std::complex *a, const int lda, const std::complex *b, const int ldb, - const std::complex beta, std::complex *c, const int ldc) - { - cgemm_(&transb, &transa, &n, &m, &k, - &alpha, b, &ldb, a, &lda, - &beta, c, &ldc); - } - static inline + const std::complex beta, std::complex *c, const int ldc, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static void gemm(const char transa, const char transb, const int m, const int n, const int k, const std::complex alpha, const std::complex *a, const int lda, const std::complex *b, const int ldb, - const std::complex beta, std::complex *c, const int ldc) - { - zgemm_(&transb, &transa, &n, &m, &k, - &alpha, b, &ldb, a, &lda, - &beta, c, &ldc); - } - static inline + const std::complex beta, std::complex *c, const int ldc, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static void gemv(const char trans, const int m, const int n, const double alpha, const double* A, const int lda, const double* X, const int incx, - const double beta, double* Y, const int incy) - { - dgemv_(&trans, &m, &n, &alpha, A, &lda, X, &incx, &beta, Y, &incy); - } - static inline - void gemv(const char trans, const int m, const int n, - const std::complex alpha, const std::complex *A, const int lda, const std::complex *X, const int incx, - const std::complex beta, std::complex *Y, const int incy) - { - cgemv_(&trans, &m, &n, &alpha, A, &lda, X, &incx, &beta, Y, &incy); - } - static inline + const double beta, double* Y, const int incy, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + void gemv(const char trans, const int m, const int n, + const std::complex alpha, const std::complex *A, const int lda, const std::complex *X, const int incx, + const std::complex beta, std::complex *Y, const int incy, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static void gemv(const char trans, const int m, const int n, const std::complex alpha, const std::complex *A, const int lda, const std::complex *X, const int incx, - const std::complex beta, std::complex *Y, const int incy) - { - zgemv_(&trans, &m, &n, &alpha, A, &lda, X, &incx, &beta, Y, &incy); - } + const std::complex beta, std::complex *Y, const int incy, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + // Peize Lin add 2018-06-12 // out = ||x||_2 - static inline - float nrm2( const int n, const float *X, const int incX ) - { - return snrm2_( &n, X, &incX ); - } - static inline - double nrm2( const int n, const double *X, const int incX ) - { - return dnrm2_( &n, X, &incX ); - } - static inline - double nrm2( const int n, const std::complex *X, const int incX ) - { - return dznrm2_( &n, X, &incX ); - } + static + float nrm2( const int n, const float *X, const int, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice ); + + static + double nrm2( const int n, const double *X, const int incX, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice ); + + static + double nrm2( const int n, const std::complex *X, const int incX, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice ); + // copies a into b - static inline - void copy(const long n, const double *a, const int incx, double *b, const int incy) - { - dcopy_(&n, a, &incx, b, &incy); - } - static inline - void copy(const long n, const std::complex *a, const int incx, std::complex *b, const int incy) - { - zcopy_(&n, a, &incx, b, &incy); - } + static + void copy(const long n, const double *a, const int incx, double *b, const int incy, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); + + static + void copy(const long n, const std::complex *a, const int incx, std::complex *b, const int incy, base_device::AbacusDevice_t device_type = base_device::AbacusDevice_t::CpuDevice); }; // If GATHER_INFO is defined, the original function is replaced with a "i" suffix, @@ -308,4 +259,4 @@ void zgemv_i(const char *trans, */ #endif // GATHER_INFO -#endif // BLAS_CONNECTOR_H +#endif // BLAS_CONNECTOR_H \ No newline at end of file diff --git a/source/module_base/test/CMakeLists.txt b/source/module_base/test/CMakeLists.txt index 6ada3dec29..86e05d9478 100644 --- a/source/module_base/test/CMakeLists.txt +++ b/source/module_base/test/CMakeLists.txt @@ -3,7 +3,7 @@ install(DIRECTORY data DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) AddTest( TARGET base_blas_connector LIBS parameter ${math_libs} - SOURCES blas_connector_test.cpp + SOURCES blas_connector_test.cpp ../blas_connector.cpp ) AddTest( TARGET base_atom_in @@ -18,7 +18,7 @@ AddTest( AddTest( TARGET base_tool_quit LIBS parameter - SOURCES tool_quit_test.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp + SOURCES tool_quit_test.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp ) AddTest( TARGET base_tool_check @@ -32,7 +32,7 @@ AddTest( ADDTest( TARGET base_global_function LIBS parameter ${math_libs} - SOURCES global_function_test.cpp ../global_function.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../memory.cpp ../timer.cpp + SOURCES global_function_test.cpp ../blas_connector.cpp ../global_function.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../memory.cpp ../timer.cpp ) AddTest( TARGET base_vector3 @@ -42,7 +42,7 @@ AddTest( AddTest( TARGET base_matrix3 LIBS parameter ${math_libs} - SOURCES matrix3_test.cpp ../matrix3.cpp ../matrix.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp + SOURCES matrix3_test.cpp ../matrix3.cpp ../matrix.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp ../blas_connector.cpp ) AddTest( TARGET base_intarray @@ -57,17 +57,17 @@ AddTest( AddTest( TARGET base_matrix LIBS parameter ${math_libs} - SOURCES matrix_test.cpp ../matrix.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp + SOURCES matrix_test.cpp ../blas_connector.cpp ../matrix.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp ) AddTest( TARGET base_complexarray LIBS parameter - SOURCES complexarray_test.cpp ../complexarray.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp + SOURCES complexarray_test.cpp ../complexarray.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp ) AddTest( TARGET base_complexmatrix LIBS parameter ${math_libs} - SOURCES complexmatrix_test.cpp ../complexmatrix.cpp ../matrix.cpp + SOURCES complexmatrix_test.cpp ../blas_connector.cpp ../complexmatrix.cpp ../matrix.cpp ) AddTest( TARGET base_integral @@ -82,34 +82,34 @@ AddTest( AddTest( TARGET base_ylmreal LIBS parameter ${math_libs} device - SOURCES math_ylmreal_test.cpp ../math_ylmreal.cpp ../complexmatrix.cpp ../global_variable.cpp ../ylm.cpp ../realarray.cpp ../timer.cpp ../matrix.cpp ../vector3.h + SOURCES math_ylmreal_test.cpp ../blas_connector.cpp ../math_ylmreal.cpp ../complexmatrix.cpp ../global_variable.cpp ../ylm.cpp ../realarray.cpp ../timer.cpp ../matrix.cpp ../vector3.h ../parallel_reduce.cpp ../parallel_global.cpp ../parallel_comm.cpp ../parallel_common.cpp ../memory.cpp ../libm/branred.cpp ../libm/sincos.cpp ) AddTest( TARGET base_math_sphbes LIBS parameter - SOURCES math_sphbes_test.cpp ../math_sphbes.cpp ../timer.cpp + SOURCES math_sphbes_test.cpp ../math_sphbes.cpp ../timer.cpp ) AddTest( TARGET base_mathzone LIBS parameter ${math_libs} - SOURCES mathzone_test.cpp ../matrix3.cpp ../matrix.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp + SOURCES mathzone_test.cpp ../matrix3.cpp ../matrix.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp ../blas_connector.cpp ) AddTest( TARGET base_mathzone_add1 LIBS parameter ${math_libs} - SOURCES mathzone_add1_test.cpp ../mathzone_add1.cpp ../math_sphbes.cpp ../matrix3.cpp ../matrix.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp + SOURCES mathzone_add1_test.cpp ../blas_connector.cpp ../mathzone_add1.cpp ../math_sphbes.cpp ../matrix3.cpp ../matrix.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp ) AddTest( TARGET base_math_polyint LIBS parameter - SOURCES math_polyint_test.cpp ../math_polyint.cpp ../realarray.cpp ../timer.cpp + SOURCES math_polyint_test.cpp ../math_polyint.cpp ../realarray.cpp ../timer.cpp ) AddTest( TARGET base_gram_schmidt_orth LIBS parameter ${math_libs} - SOURCES gram_schmidt_orth_test.cpp ../gram_schmidt_orth.h ../gram_schmidt_orth-inl.h ../global_function.h ../math_integral.cpp + SOURCES gram_schmidt_orth_test.cpp ../blas_connector.cpp ../gram_schmidt_orth.h ../gram_schmidt_orth-inl.h ../global_function.h ../math_integral.cpp ) AddTest( TARGET base_math_bspline @@ -119,12 +119,12 @@ AddTest( AddTest( TARGET base_inverse_matrix LIBS parameter ${math_libs} - SOURCES inverse_matrix_test.cpp ../inverse_matrix.cpp ../complexmatrix.cpp ../matrix.cpp ../timer.cpp + SOURCES inverse_matrix_test.cpp ../blas_connector.cpp ../inverse_matrix.cpp ../complexmatrix.cpp ../matrix.cpp ../timer.cpp ) AddTest( TARGET base_mymath LIBS parameter - SOURCES mymath_test.cpp ../mymath.cpp ../timer.cpp + SOURCES mymath_test.cpp ../mymath.cpp ../timer.cpp ) AddTest( TARGET base_container @@ -135,31 +135,31 @@ AddTest( AddTest( TARGET base_math_chebyshev LIBS parameter ${math_libs} - SOURCES math_chebyshev_test.cpp ../math_chebyshev.cpp ../tool_quit.cpp ../global_variable.cpp ../timer.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp + SOURCES math_chebyshev_test.cpp ../blas_connector.cpp ../math_chebyshev.cpp ../tool_quit.cpp ../global_variable.cpp ../timer.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ) AddTest( TARGET base_lapack_connector LIBS parameter ${math_libs} - SOURCES lapack_connector_test.cpp ../lapack_connector.h + SOURCES lapack_connector_test.cpp ../blas_connector.cpp ../lapack_connector.h ) AddTest( TARGET base_opt_CG LIBS parameter ${math_libs} - SOURCES opt_CG_test.cpp opt_test_tools.cpp ../opt_CG.cpp ../opt_DCsrch.cpp ../global_variable.cpp ../parallel_reduce.cpp + SOURCES opt_CG_test.cpp opt_test_tools.cpp ../blas_connector.cpp ../opt_CG.cpp ../opt_DCsrch.cpp ../global_variable.cpp ../parallel_reduce.cpp ) AddTest( TARGET base_opt_TN LIBS parameter ${math_libs} - SOURCES opt_TN_test.cpp opt_test_tools.cpp ../opt_CG.cpp ../opt_DCsrch.cpp ../global_variable.cpp ../parallel_reduce.cpp + SOURCES opt_TN_test.cpp opt_test_tools.cpp ../blas_connector.cpp ../opt_CG.cpp ../opt_DCsrch.cpp ../global_variable.cpp ../parallel_reduce.cpp ) AddTest( TARGET base_ylm LIBS parameter - SOURCES ylm_test.cpp ../ylm.cpp ../timer.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp + SOURCES ylm_test.cpp ../ylm.cpp ../timer.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ) AddTest( @@ -171,7 +171,7 @@ AddTest( AddTest( TARGET base_global_file LIBS parameter - SOURCES global_file_test.cpp ../global_file.cpp ../global_function.cpp ../tool_quit.cpp ../global_variable.cpp ../memory.cpp ../timer.cpp + SOURCES global_file_test.cpp ../global_file.cpp ../global_function.cpp ../tool_quit.cpp ../global_variable.cpp ../memory.cpp ../timer.cpp ) AddTest( @@ -194,19 +194,19 @@ AddTest( AddTest( TARGET spherical_bessel_transformer - SOURCES spherical_bessel_transformer_test.cpp ../spherical_bessel_transformer.cpp ../math_sphbes.cpp ../math_integral.cpp ../timer.cpp + SOURCES spherical_bessel_transformer_test.cpp ../blas_connector.cpp ../spherical_bessel_transformer.cpp ../math_sphbes.cpp ../math_integral.cpp ../timer.cpp LIBS parameter ${math_libs} ) AddTest( TARGET cubic_spline - SOURCES cubic_spline_test.cpp ../cubic_spline.cpp + SOURCES cubic_spline_test.cpp ../blas_connector.cpp ../cubic_spline.cpp LIBS parameter ${math_libs} ) AddTest( TARGET clebsch_gordan_coeff_test - SOURCES clebsch_gordan_coeff_test.cpp ../clebsch_gordan_coeff.cpp ../intarray.cpp ../realarray.cpp ../complexmatrix.cpp ../matrix.cpp ../timer.cpp + SOURCES clebsch_gordan_coeff_test.cpp ../blas_connector.cpp ../clebsch_gordan_coeff.cpp ../intarray.cpp ../realarray.cpp ../complexmatrix.cpp ../matrix.cpp ../timer.cpp ../math_ylmreal.cpp ../global_variable.cpp ../ylm.cpp ../timer.cpp ../vector3.h ../parallel_reduce.cpp ../parallel_global.cpp ../parallel_comm.cpp ../parallel_common.cpp ../memory.cpp ../libm/branred.cpp ../libm/sincos.cpp ../inverse_matrix.cpp ../lapack_connector.h LIBS parameter ${math_libs} device @@ -214,7 +214,7 @@ AddTest( AddTest( TARGET assoc_laguerre_test - SOURCES assoc_laguerre_test.cpp ../assoc_laguerre.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp + SOURCES assoc_laguerre_test.cpp ../blas_connector.cpp ../assoc_laguerre.cpp ../tool_quit.cpp ../global_variable.cpp ../global_file.cpp ../global_function.cpp ../memory.cpp ../timer.cpp LIBS parameter ${math_libs} ) @@ -234,6 +234,6 @@ if(ENABLE_GOOGLEBENCH) AddTest( TARGET perf_sphbes LIBS parameter - SOURCES perf_sphbes_test.cpp ../math_sphbes.cpp ../timer.cpp + SOURCES perf_sphbes_test.cpp ../math_sphbes.cpp ../timer.cpp ) endif() diff --git a/source/module_basis/module_ao/test/CMakeLists.txt b/source/module_basis/module_ao/test/CMakeLists.txt index db9c648b12..c1708eef85 100644 --- a/source/module_basis/module_ao/test/CMakeLists.txt +++ b/source/module_basis/module_ao/test/CMakeLists.txt @@ -7,6 +7,7 @@ list(APPEND depend_files ../../../module_base/math_ylmreal.cpp ../../../module_base/ylm.cpp ../../../module_base/memory.cpp + ../../../module_base/blas_connector.cpp ../../../module_base/complexarray.cpp ../../../module_base/complexmatrix.cpp ../../../module_base/matrix.cpp diff --git a/source/module_basis/module_pw/kernels/test/CMakeLists.txt b/source/module_basis/module_pw/kernels/test/CMakeLists.txt index 48188f269a..c190ded73d 100644 --- a/source/module_basis/module_pw/kernels/test/CMakeLists.txt +++ b/source/module_basis/module_pw/kernels/test/CMakeLists.txt @@ -8,5 +8,5 @@ AddTest( ../../../../module_base/parallel_global.cpp ../../../../module_base/parallel_reduce.cpp ../../../../module_base/parallel_comm.cpp ../../../../module_base/complexmatrix.cpp ../../../../module_base/matrix.cpp ../../../../module_base/memory.cpp - ../../../../module_base/libm/branred.cpp ../../../../module_base/libm/sincos.cpp + ../../../../module_base/libm/branred.cpp ../../../../module_base/libm/sincos.cpp ../../../../module_base/blas_connector.cpp ) \ No newline at end of file diff --git a/source/module_basis/module_pw/test/CMakeLists.txt b/source/module_basis/module_pw/test/CMakeLists.txt index 1306a5f7ba..e1ce122d07 100644 --- a/source/module_basis/module_pw/test/CMakeLists.txt +++ b/source/module_basis/module_pw/test/CMakeLists.txt @@ -3,7 +3,7 @@ AddTest( TARGET pw_test LIBS parameter ${math_libs} planewave device SOURCES ../../../module_base/matrix.cpp ../../../module_base/complexmatrix.cpp ../../../module_base/matrix3.cpp ../../../module_base/tool_quit.cpp - ../../../module_base/mymath.cpp ../../../module_base/timer.cpp ../../../module_base/memory.cpp + ../../../module_base/mymath.cpp ../../../module_base/timer.cpp ../../../module_base/memory.cpp ../../../module_base/blas_connector.cpp ../../../module_base/libm/branred.cpp ../../../module_base/libm/sincos.cpp # ../../../module_psi/kernels/psi_memory_op.cpp ../../../module_base/module_device/memory_op.cpp diff --git a/source/module_hamilt_general/module_xc/test/CMakeLists.txt b/source/module_hamilt_general/module_xc/test/CMakeLists.txt index 46ae57e9ef..7466f40a92 100644 --- a/source/module_hamilt_general/module_xc/test/CMakeLists.txt +++ b/source/module_hamilt_general/module_xc/test/CMakeLists.txt @@ -37,6 +37,7 @@ AddTest( ../../../module_base/memory.cpp ../../../module_base/libm/branred.cpp ../../../module_base/libm/sincos.cpp + ../../../module_base/blas_connector.cpp ) AddTest( @@ -66,6 +67,7 @@ AddTest( ../xc_functional_vxc.cpp ../xc_functional_libxc_vxc.cpp ../xc_functional_libxc_tools.cpp + ../../../module_base/blas_connector.cpp ../../../module_base/matrix.cpp ../../../module_base/memory.cpp ../../../module_base/timer.cpp diff --git a/source/module_hamilt_pw/hamilt_pwdft/test/CMakeLists.txt b/source/module_hamilt_pw/hamilt_pwdft/test/CMakeLists.txt index ed60c0ec81..c1b56517b7 100644 --- a/source/module_hamilt_pw/hamilt_pwdft/test/CMakeLists.txt +++ b/source/module_hamilt_pw/hamilt_pwdft/test/CMakeLists.txt @@ -15,6 +15,7 @@ AddTest( ../../../module_base/global_file.cpp ../../../module_base/memory.cpp ../../../module_base/timer.cpp + ../../../module_base/blas_connector.cpp ../../../module_base/parallel_global.cpp ../../../module_base/parallel_comm.cpp ../../../module_base/parallel_common.cpp diff --git a/source/module_hsolver/kernels/test/CMakeLists.txt b/source/module_hsolver/kernels/test/CMakeLists.txt index 74d73364ce..c8d1f2cdd9 100644 --- a/source/module_hsolver/kernels/test/CMakeLists.txt +++ b/source/module_hsolver/kernels/test/CMakeLists.txt @@ -11,7 +11,7 @@ elseif() AddTest( TARGET Hsolver_Kernels_UTs LIBS parameter ${math_libs} base device - SOURCES math_kernel_test.cpp + SOURCES math_kernel_test.cpp ../../../module_base/blas_connector.cpp ) endif() diff --git a/source/module_md/test/CMakeLists.txt b/source/module_md/test/CMakeLists.txt index 64e21fc6f6..e92f8cc369 100644 --- a/source/module_md/test/CMakeLists.txt +++ b/source/module_md/test/CMakeLists.txt @@ -19,6 +19,7 @@ list(APPEND depend_files ../../module_base/matrix3.cpp ../../module_base/matrix.cpp ../../module_base/timer.cpp + ../../module_base/blas_connector.cpp ../../module_base/memory.cpp ../../module_base/global_variable.cpp ../../module_base/global_function.cpp diff --git a/source/module_relax/relax_new/test/CMakeLists.txt b/source/module_relax/relax_new/test/CMakeLists.txt index 2416e195a7..1835f0eca3 100644 --- a/source/module_relax/relax_new/test/CMakeLists.txt +++ b/source/module_relax/relax_new/test/CMakeLists.txt @@ -17,6 +17,6 @@ AddTest( SOURCES relax_test.cpp ../relax.cpp ../line_search.cpp ../../../module_base/tool_quit.cpp ../../../module_base/global_variable.cpp ../../../module_base/global_file.cpp ../../../module_base/memory.cpp ../../../module_base/timer.cpp ../../../module_base/matrix3.cpp ../../../module_base/intarray.cpp ../../../module_base/tool_title.cpp ../../../module_base/global_function.cpp ../../../module_base/complexmatrix.cpp ../../../module_base/matrix.cpp - ../../../module_base/complexarray.cpp ../../../module_base/tool_quit.cpp ../../../module_base/realarray.cpp + ../../../module_base/complexarray.cpp ../../../module_base/tool_quit.cpp ../../../module_base/realarray.cpp ../../../module_base/blas_connector.cpp LIBS parameter ${math_libs} ) \ No newline at end of file