13void*
malloc_ht(
size_t bytes,
int cluster_id);
53 const std::complex<double>* alpha,
54 const std::complex<double>* a,
56 const std::complex<double>* b,
58 const std::complex<double>* beta,
59 std::complex<double>* c,
68 const std::complex<float>* alpha,
69 const std::complex<float>* a,
71 const std::complex<float>* b,
73 const std::complex<float>* beta,
74 std::complex<float>* c,
109 const std::complex<double>* alpha,
110 const std::complex<double>* a,
112 const std::complex<double>* x,
114 const std::complex<double>* beta,
115 std::complex<double>* y,
122 const std::complex<float>* alpha,
123 const std::complex<float>* a,
125 const std::complex<float>* x,
127 const std::complex<float>* beta,
128 std::complex<float>* y,
167 const std::complex<double>* alpha,
168 const std::complex<double>* a,
170 const std::complex<double>* b,
172 const std::complex<double>* beta,
173 std::complex<double>* c,
182 const std::complex<double>* alpha,
183 const std::complex<double>* a,
185 const std::complex<double>* b,
187 const std::complex<double>* beta,
188 std::complex<double>* c,
197 const std::complex<float>* alpha,
198 const std::complex<float>* a,
200 const std::complex<float>* b,
202 const std::complex<float>* beta,
203 std::complex<float>* c,
212 const std::complex<float>* alpha,
213 const std::complex<float>* a,
215 const std::complex<float>* b,
217 const std::complex<float>* beta,
218 std::complex<float>* c,
251 const std::complex<double>* alpha,
252 const std::complex<double>* a,
254 const std::complex<double>* x,
256 const std::complex<double>* beta,
257 std::complex<double>* y,
264 const std::complex<float>* alpha,
265 const std::complex<float>* a,
267 const std::complex<float>* x,
269 const std::complex<float>* beta,
270 std::complex<float>* y,
279void dsp_dav_subspace_reduce(
T* hcc,
T* scc,
int nbase,
int nbase_x,
int notconv, MPI_Comm diag_comm)
282 using syncmem_complex_op
285 auto* swap =
new T[notconv * nbase_x];
286 auto* target =
new T[notconv * nbase_x];
287 syncmem_complex_op()(swap, hcc + nbase * nbase_x, notconv * nbase_x);
290 MPI_Reduce(swap, target, notconv * nbase_x, MPI_COMPLEX, MPI_SUM, 0, diag_comm);
294 MPI_Reduce(swap, target, notconv * nbase_x, MPI_DOUBLE_COMPLEX, MPI_SUM, 0, diag_comm);
297 syncmem_complex_op()(hcc + nbase * nbase_x, target, notconv * nbase_x);
298 syncmem_complex_op()(swap, scc + nbase * nbase_x, notconv * nbase_x);
302 MPI_Reduce(swap, target, notconv * nbase_x, MPI_COMPLEX, MPI_SUM, 0, diag_comm);
306 MPI_Reduce(swap, target, notconv * nbase_x, MPI_DOUBLE_COMPLEX, MPI_SUM, 0, diag_comm);
309 syncmem_complex_op()(scc + nbase * nbase_x, target, notconv * nbase_x);
#define T
Definition exp.cpp:237
std::string get_current_precision(const T *var)
Get the precision string for a given numeric type.
Definition dsp_connector.cpp:14
void cgemm_mt_(const char *transa, const char *transb, const int *m, const int *n, const int *k, const std::complex< float > *alpha, const std::complex< float > *a, const int *lda, const std::complex< float > *b, const int *ldb, const std::complex< float > *beta, std::complex< float > *c, const int *ldc, int cluster_id)
Definition dsp_connector.cpp:158
void zgemm_pack_mth_(const char *transa, const char *transb, const int *m, const int *n, const int *k, const std::complex< double > *alpha, const std::complex< double > *a, const int *lda, const std::complex< double > *b, const int *ldb, const std::complex< double > *beta, std::complex< double > *c, const int *ldc, int cluster_id)
Definition dsp_connector.cpp:406
void sgemm_mth_(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, int cluster_id)
Definition dsp_connector.cpp:304
void sgemv_mt_(const char *transa, const int *m, const int *n, const float *alpha, const float *a, const int *lda, const float *x, const int *incx, const float *beta, float *y, const int *incy, int cluster_id)
Definition dsp_connector.cpp:190
void dgemm_mth_(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, int cluster_id)
Definition dsp_connector.cpp:336
void dgemv_mth_(const char *transa, 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, int cluster_id)
Definition dsp_connector.cpp:592
void dgemv_mt_(const char *transa, 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, int cluster_id)
Definition dsp_connector.cpp:218
void zgemm_mt_(const char *transa, const char *transb, const int *m, const int *n, const int *k, const std::complex< double > *alpha, const std::complex< double > *a, const int *lda, const std::complex< double > *b, const int *ldb, const std::complex< double > *beta, std::complex< double > *c, const int *ldc, int cluster_id)
Definition dsp_connector.cpp:126
void cgemm_mth_(const char *transa, const char *transb, const int *m, const int *n, const int *k, const std::complex< float > *alpha, const std::complex< float > *a, const int *lda, const std::complex< float > *b, const int *ldb, const std::complex< float > *beta, std::complex< float > *c, const int *ldc, int cluster_id)
Definition dsp_connector.cpp:466
void sgemv_mth_(const char *transa, const int *m, const int *n, const float *alpha, const float *a, const int *lda, const float *x, const int *incx, const float *beta, float *y, const int *incy, int cluster_id)
Definition dsp_connector.cpp:564
void dspDestoryHandle(int id)
Definition dsp_connector.cpp:21
void dspInitHandle(int id)
Definition dsp_connector.cpp:15
void zgemv_mt_(const char *transa, const int *m, const int *n, const std::complex< double > *alpha, const std::complex< double > *a, const int *lda, const std::complex< double > *x, const int *incx, const std::complex< double > *beta, std::complex< double > *y, const int *incy, int cluster_id)
Definition dsp_connector.cpp:246
void sgemm_mt_(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, int cluster_id)
Definition dsp_connector.cpp:62
void free_ht(void *ptr)
Definition dsp_connector.cpp:56
void cgemv_mt_(const char *transa, const int *m, const int *n, const std::complex< float > *alpha, const std::complex< float > *a, const int *lda, const std::complex< float > *x, const int *incx, const std::complex< float > *beta, std::complex< float > *y, const int *incy, int cluster_id)
Definition dsp_connector.cpp:274
void zgemv_mth_(const char *transa, const int *m, const int *n, const std::complex< double > *alpha, const std::complex< double > *a, const int *lda, const std::complex< double > *x, const int *incx, const std::complex< double > *beta, std::complex< double > *y, const int *incy, int cluster_id)
Definition dsp_connector.cpp:620
void cgemm_pack_mth_(const char *transa, const char *transb, const int *m, const int *n, const int *k, const std::complex< float > *alpha, const std::complex< float > *a, const int *lda, const std::complex< float > *b, const int *ldb, const std::complex< float > *beta, std::complex< float > *c, const int *ldc, int cluster_id)
Definition dsp_connector.cpp:506
void dgemm_mt_(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, int cluster_id)
Definition dsp_connector.cpp:94
void * malloc_ht(size_t bytes, int cluster_id)
Definition dsp_connector.cpp:48
void cgemv_mth_(const char *transa, const int *m, const int *n, const std::complex< float > *alpha, const std::complex< float > *a, const int *lda, const std::complex< float > *x, const int *incx, const std::complex< float > *beta, std::complex< float > *y, const int *incy, int cluster_id)
Definition dsp_connector.cpp:656
void zgemm_mth_(const char *transa, const char *transb, const int *m, const int *n, const int *k, const std::complex< double > *alpha, const std::complex< double > *a, const int *lda, const std::complex< double > *b, const int *ldb, const std::complex< double > *beta, std::complex< double > *c, const int *ldc, int cluster_id)
Definition dsp_connector.cpp:368
Definition memory_op.h:61