MAGMA  magma-1.4.0
Matrix Algebra on GPU and Multicore Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
magmablas_z.h
Go to the documentation of this file.
1 /*
2  -- MAGMA (version 1.4.0) --
3  Univ. of Tennessee, Knoxville
4  Univ. of California, Berkeley
5  Univ. of Colorado, Denver
6  August 2013
7 
8  @precisions normal z -> s d c
9 */
10 
11 #ifndef MAGMABLAS_Z_H
12 #define MAGMABLAS_Z_H
13 
14 #include "magma_types.h"
15 
16 #define COMPLEX
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22  /*
23  * Interface to clean
24  */
25 double cpu_gpu_zdiff(
27  const magmaDoubleComplex *hA, magma_int_t lda,
29 
30 // see also zlaset
33 
35  magma_int_t nb,
37 
38 // see also zlaswp
39 // ipiv gets updated
41  magma_int_t n,
43  magma_int_t *ipiv, magma_int_t nb, magma_int_t ind );
44 
45 // ipiv is not updated (unlike zpermute_long2)
47  /*magma_int_t n,*/
49  const magma_int_t *ipiv, magma_int_t nb, magma_int_t ind );
50 
51  /*
52  * Transpose functions
53  */
55  magma_int_t n,
57 
61  magma_int_t m, magma_int_t n );
62 
66  magma_int_t m, magma_int_t n );
67 
72  magma_queue_t stream );
73 
77  magmaDoubleComplex *hA, magma_int_t lda,
79 
82  const magmaDoubleComplex *hA, magma_int_t lda,
84  magmaDoubleComplex_ptr dwork, magma_int_t lddwork, magma_int_t nb );
85 
86  /*
87  * Multi-GPU functions
88  */
90  magma_int_t ngpu, magma_queue_t stream[][2],
92  magmaDoubleComplex *hA, magma_int_t lda,
95 
97  magma_int_t ngpu, magma_queue_t stream[][2],
98  const magmaDoubleComplex *hA, magma_int_t lda,
102 
106  magmaDoubleComplex *hA, magma_int_t lda,
107  magma_int_t ngpu, magma_int_t nb );
108 
111  const magmaDoubleComplex *hA, magma_int_t lda,
113  magma_int_t ngpu, magma_int_t nb );
114 
118  magmaDoubleComplex *hA, magma_int_t lda,
119  magma_int_t ngpu, magma_int_t nb );
120 
123  const magmaDoubleComplex *hA, magma_int_t lda,
125  magma_int_t ngpu, magma_int_t nb );
126 
127 // in src/zhetrd_mgpu.cpp
129  magma_int_t num_gpus, char *uplo, magma_int_t n, magma_int_t nb,
130  magmaDoubleComplex *a, magma_int_t lda,
131  magmaDoubleComplex **dwork, magma_int_t ldda,
132  magma_queue_t stream[][10], magma_int_t *info );
133 
134 // in src/zpotrf3_mgpu.cpp
136  magma_int_t num_gpus, char *uplo, magma_int_t m, magma_int_t n,
137  magma_int_t off_i, magma_int_t off_j, magma_int_t nb,
138  magmaDoubleComplex *h_A, magma_int_t lda,
139  magmaDoubleComplex *d_lA[], magma_int_t ldda,
140  magma_queue_t stream[][3], magma_int_t *info );
141 
142 // in src/zpotrf3_mgpu.cpp
144  magma_int_t num_gpus, char *uplo, magma_int_t m, magma_int_t n,
145  magma_int_t off_i, magma_int_t off_j, magma_int_t nb, magma_int_t NB,
146  magmaDoubleComplex *a, magma_int_t lda,
147  magmaDoubleComplex *work[], magma_int_t ldda,
148  magma_queue_t stream[][3], magma_int_t *info );
149 
151  char uplo, magma_int_t n,
152  magmaDoubleComplex alpha,
153  magmaDoubleComplex **A, magma_int_t lda,
154  magmaDoubleComplex **X, magma_int_t incx,
155  magmaDoubleComplex beta,
156  magmaDoubleComplex **Y, magma_int_t incy,
157  magmaDoubleComplex **work, magma_int_t lwork,
158  magma_int_t num_gpus,
159  magma_int_t nb,
160  magma_int_t offset,
161  magma_queue_t stream[][10] );
162 
164  char uplo, magma_int_t n,
165  magmaDoubleComplex alpha,
166  magmaDoubleComplex **A, magma_int_t lda,
167  magmaDoubleComplex **X, magma_int_t incx,
168  magmaDoubleComplex beta,
169  magmaDoubleComplex **Y, magma_int_t incy,
170  magmaDoubleComplex **work, magma_int_t lwork,
171  magma_int_t num_gpus,
172  magma_int_t nb,
173  magma_int_t offset,
174  magma_queue_t stream[][10] );
175 
177  magma_int_t num_gpus, magma_int_t k, char uplo,
178  magma_int_t n, magma_int_t nb,
179  magmaDoubleComplex alpha,
180  magmaDoubleComplex **da, magma_int_t ldda, magma_int_t offset,
181  magmaDoubleComplex **dx, magma_int_t incx,
182  magmaDoubleComplex beta,
183  magmaDoubleComplex **dy, magma_int_t incy,
184  magmaDoubleComplex **dwork, magma_int_t ldwork,
185  magmaDoubleComplex *work, magmaDoubleComplex *w,
186  magma_queue_t stream[][10] );
187 
189  magma_int_t num_gpus, magma_int_t k,
190  magma_int_t n, magmaDoubleComplex *work, magmaDoubleComplex *w,
191  magma_queue_t stream[][10] );
192 
195  magmaDoubleComplex alpha,
198  magmaDoubleComplex beta,
200  magmaDoubleComplex* C, magma_int_t ldc,
201  magma_int_t ngpu, magma_int_t nb,
202  magma_queue_t streams[][20], magma_int_t nstream );
203 
206  magmaDoubleComplex alpha,
209  magmaDoubleComplex beta,
211  magmaDoubleComplex* C, magma_int_t ldc,
212  magma_int_t ngpu, magma_int_t nb,
213  magma_queue_t streams[][20], magma_int_t nstream );
214 
217  magmaDoubleComplex alpha,
220  magmaDoubleComplex beta,
222  magmaDoubleComplex_ptr dwork[], magma_int_t lddwork,
223  magmaDoubleComplex* C, magma_int_t ldc,
224  magmaDoubleComplex* work[], magma_int_t ldwork,
225  magma_int_t ngpu, magma_int_t nb,
226  magma_queue_t streams[][20], magma_int_t nstream,
227  magma_event_t redevents[][20], magma_int_t nbevents );
228 
231  magmaDoubleComplex alpha,
234  magmaDoubleComplex beta,
236  magmaDoubleComplex_ptr dwork[], magma_int_t lddwork,
237  magmaDoubleComplex* C, magma_int_t ldc,
238  magmaDoubleComplex* work[], magma_int_t ldwork,
239  magma_int_t ngpu, magma_int_t nb,
240  magma_queue_t streams[][20], magma_int_t nstream,
241  magma_event_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs+10], magma_int_t nbevents,
242  magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx );
243 
246  magmaDoubleComplex alpha,
249  magmaDoubleComplex beta,
251  magmaDoubleComplex_ptr dwork[], magma_int_t lddwork,
252  magmaDoubleComplex* C, magma_int_t ldc,
253  magmaDoubleComplex* work[], magma_int_t ldwork,
254  magma_int_t ngpu, magma_int_t nb,
255  magma_queue_t streams[][20], magma_int_t nstream,
256  magma_event_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs+10], magma_int_t nbevents,
257  magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx );
258 
261  magmaDoubleComplex alpha,
264  magmaDoubleComplex beta,
266  magmaDoubleComplex_ptr dVIN[], magma_int_t lddv, magma_int_t voffst,
267  magmaDoubleComplex_ptr dwork[], magma_int_t lddwork,
268  magmaDoubleComplex *C, magma_int_t ldc,
269  magmaDoubleComplex *work[], magma_int_t ldwork,
270  magma_int_t ngpu, magma_int_t nb,
271  magma_queue_t streams[][20], magma_int_t nstream,
272  magma_event_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs+10], magma_int_t nbevents,
273  magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx );
274 
275 // Ichi's version, in src/zhetrd_mgpu.cpp
276 void magma_zher2k_mgpu(
277  magma_int_t num_gpus, char uplo, char trans, magma_int_t nb, magma_int_t n, magma_int_t k,
278  magmaDoubleComplex alpha,
279  magmaDoubleComplex **db, magma_int_t lddb, magma_int_t boffset,
280  double beta,
281  magmaDoubleComplex **dc, magma_int_t lddc, magma_int_t offset,
282  magma_int_t num_streams, magma_queue_t streams[][10] );
283 
286  magmaDoubleComplex alpha,
289  double beta,
291  magma_int_t ngpu, magma_int_t nb,
292  magma_queue_t streams[][20], magma_int_t nstream );
293 
296  magmaDoubleComplex alpha,
299  double beta,
301  magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream );
302 
305  magmaDoubleComplex alpha,
308  double beta,
310  magmaDoubleComplex_ptr dwork[], magma_int_t lndwork,
311  magma_int_t ngpu, magma_int_t nb,
312  magma_queue_t streams[][20], magma_int_t nstream,
313  magma_event_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs+10], magma_int_t nbevents );
314 
317  magmaDoubleComplex alpha,
320  double beta,
322  magmaDoubleComplex_ptr dwork[], magma_int_t lndwork,
323  magma_int_t ngpu, magma_int_t nb,
324  magmaDoubleComplex **harray[],
325  magmaDoubleComplex_ptr *darray[],
326  magma_queue_t streams[][20], magma_int_t nstream,
327  magma_event_t redevents[][MagmaMaxGPUs*MagmaMaxGPUs+10], magma_int_t nbevents );
328 
329  /*
330  * LAPACK auxiliary functions
331  */
332 void magmablas_zgeadd(
334  magmaDoubleComplex alpha,
337 
340  magmaDoubleComplex alpha,
341  magmaDoubleComplex_const_ptr const *dAarray, magma_int_t ldda,
342  magmaDoubleComplex_ptr *dBarray, magma_int_t lddb,
343  magma_int_t batchCount );
344 
345 void magmablas_zlacpy(
346  magma_uplo_t uplo,
350 
353  magmaDoubleComplex_const_ptr const *dAarray, magma_int_t ldda,
354  magmaDoubleComplex_ptr *dBarray, magma_int_t lddb,
355  magma_int_t batchCount );
356 
357 double magmablas_zlange(
358  magma_norm_t norm,
361  magmaDouble_ptr dwork );
362 
363 double magmablas_zlanhe(
364  magma_norm_t norm, magma_uplo_t uplo,
365  magma_int_t n,
367  magmaDouble_ptr dwork );
368 
369 double magmablas_zlansy(
370  magma_norm_t norm, magma_uplo_t uplo,
371  magma_int_t n,
373  magmaDouble_ptr dwork );
374 
375 void magmablas_zlascl(
376  char type, magma_int_t kl, magma_int_t ku,
377  double cfrom, double cto,
380 
381 void magmablas_zlaset(
384 
388 
389 void magmablas_zlaswp(
390  magma_int_t n,
392  magma_int_t i1, magma_int_t i2,
393  const magma_int_t *ipiv, magma_int_t inci );
394 
395 void magmablas_zlaswpx(
396  magma_int_t n,
398  magma_int_t i1, magma_int_t i2,
399  const magma_int_t *ipiv, magma_int_t inci );
400 
401 void magmablas_zlaswp2(
402  magma_int_t n,
404  magma_int_t i1, magma_int_t i2,
405  const magma_int_t *d_ipiv );
406 
408  magma_uplo_t uplo, magma_int_t m,
410 
412  magma_uplo_t uplo, magma_int_t m,
414  magma_int_t ntile, magma_int_t mstride, magma_int_t nstride );
415 
416 void magma_zlarfgx_gpu(
417  magma_int_t n, magmaDoubleComplex *dx0, magmaDoubleComplex *dx,
418  magmaDoubleComplex *dtau, double *dxnorm,
419  magmaDoubleComplex *ddx0, magma_int_t iter);
420 
421 void magma_zlarfx_gpu(
422  magma_int_t m, magma_int_t n, magmaDoubleComplex *v, magmaDoubleComplex *tau,
423  magmaDoubleComplex *c, magma_int_t ldc, double *xnorm,
424  magmaDoubleComplex *dT, magma_int_t iter, magmaDoubleComplex *work);
425 
426 void magma_zlarfbx_gpu(
427  magma_int_t m, magma_int_t k, magmaDoubleComplex *V, magma_int_t ldv,
428  magmaDoubleComplex *dT, magma_int_t ldt, magmaDoubleComplex *c,
429  magmaDoubleComplex *dwork);
430 
431 void magma_zlarfgtx_gpu(
432  magma_int_t n, magmaDoubleComplex *dx0, magmaDoubleComplex *dx,
433  magmaDoubleComplex *dtau, double *dxnorm,
434  magmaDoubleComplex *dA, magma_int_t it,
435  magmaDoubleComplex *V, magma_int_t ldv, magmaDoubleComplex *T, magma_int_t ldt,
436  magmaDoubleComplex *dwork);
437 
439  magma_int_t k, double *xnorm, magmaDoubleComplex *c);
440 
444  magmaDouble_ptr dxnorm);
445 
447  magma_int_t k, double tol, double *xnorm, double *xnorm2,
448  magmaDoubleComplex *c, magma_int_t ldc, double *lsticc);
449 
451  magma_int_t m, magma_int_t num, magmaDoubleComplex *da, magma_int_t ldda,
452  double *dxnorm, double *lsticc);
453 
454  /*
455  * Level 1 BLAS
456  */
457 void magmablas_zswap(
458  magma_int_t n,
461 
462 void magmablas_zswapblk(
463  magma_storev_t storev,
464  magma_int_t n,
467  magma_int_t i1, magma_int_t i2,
468  const magma_int_t *ipiv, magma_int_t inci,
469  magma_int_t offset );
470 
472  magma_int_t n, magma_int_t nb,
475 
476  /*
477  * Level 2 BLAS
478  */
479 void magmablas_zgemv(
481  magmaDoubleComplex alpha,
484  magmaDoubleComplex beta,
486 
487 #ifdef COMPLEX
489  magma_uplo_t uplo, magma_int_t n,
490  magmaDoubleComplex alpha,
493  magmaDoubleComplex beta,
495 #endif
496 
498  magma_uplo_t uplo, magma_int_t n,
499  magmaDoubleComplex alpha,
502  magmaDoubleComplex beta,
504  magmaDoubleComplex_ptr dwork, magma_int_t lwork );
505 
507  magma_uplo_t uplo, magma_int_t n,
508  magmaDoubleComplex alpha,
511  magmaDoubleComplex beta,
513 
514  /*
515  * Level 3 BLAS
516  */
517 void magmablas_zgemm(
518  magma_trans_t transA, magma_trans_t transB,
520  magmaDoubleComplex alpha,
523  magmaDoubleComplex beta,
525 
528  magmaDoubleComplex alpha,
529  const magmaDoubleComplex *dA, magma_int_t lda,
530  const magmaDoubleComplex *dB, magma_int_t ldb,
531  magmaDoubleComplex beta,
532  magmaDoubleComplex *dC, magma_int_t ldc );
533 
535  magma_trans_t transA, magma_trans_t transB,
537  magmaDoubleComplex alpha,
540  magmaDoubleComplex beta,
542 
544  magma_trans_t transA, magma_trans_t transB,
546  magmaDoubleComplex alpha,
549  magmaDoubleComplex beta,
551 
552 void magmablas_zhemm(
553  magma_side_t side, magma_uplo_t uplo,
555  magmaDoubleComplex alpha,
558  magmaDoubleComplex beta,
560 
561 void magmablas_zsymm(
562  magma_side_t side, magma_uplo_t uplo,
564  magmaDoubleComplex alpha,
567  magmaDoubleComplex beta,
569 
570 void magmablas_zsyrk(
571  magma_uplo_t uplo, magma_trans_t trans,
573  magmaDoubleComplex alpha,
575  magmaDoubleComplex beta,
577 
578 void magmablas_zherk(
579  magma_uplo_t uplo, magma_trans_t trans,
581  double alpha,
583  double beta,
585 
586 void magmablas_zsyr2k(
587  magma_uplo_t uplo, magma_trans_t trans,
589  magmaDoubleComplex alpha,
592  magmaDoubleComplex beta,
594 
595 void magmablas_zher2k(
596  magma_uplo_t uplo, magma_trans_t trans,
598  magmaDoubleComplex alpha,
601  double beta,
603 
604 #ifndef COMPLEX
605 void magmablas_ztrsm(
606  magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
608  magmaDoubleComplex alpha,
611 
612 void magmablas_ztrsm_work(
613  magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
615  magmaDoubleComplex alpha,
618  int flag, magmaDoubleComplex_ptr d_dinvA, magmaDoubleComplex_ptr dx );
619 #endif
620 
621  /*
622  * Wrappers for platform independence.
623  * These wrap CUBLAS or AMD OpenCL BLAS functions.
624  */
625 
626 // ========================================
627 // copying vectors
628 // set copies host to device
629 // get copies device to host
630 // copy copies device to device
631 // (with CUDA unified addressing, copy can be between same or different devices)
632 // Add the function, file, and line for error-reporting purposes.
633 
634 #define magma_zsetvector( n, hx_src, incx, dy_dst, incy ) \
635  magma_zsetvector_internal( n, hx_src, incx, dy_dst, incy, __func__, __FILE__, __LINE__ )
636 
637 #define magma_zgetvector( n, dx_src, incx, hy_dst, incy ) \
638  magma_zgetvector_internal( n, dx_src, incx, hy_dst, incy, __func__, __FILE__, __LINE__ )
639 
640 #define magma_zsetvector_async( n, hx_src, incx, dy_dst, incy, queue ) \
641  magma_zsetvector_async_internal( n, hx_src, incx, dy_dst, incy, queue, __func__, __FILE__, __LINE__ )
642 
643 #define magma_zgetvector_async( n, dx_src, incx, hy_dst, incy, queue ) \
644  magma_zgetvector_async_internal( n, dx_src, incx, hy_dst, incy, queue, __func__, __FILE__, __LINE__ )
645 
646 #define magma_zcopyvector_async( n, dx_src, incx, dy_dst, incy, queue ) \
647  magma_zcopyvector_async_internal( n, dx_src, incx, dy_dst, incy, queue, __func__, __FILE__, __LINE__ )
648 
649 #define magma_zcopyvector_async( n, dx_src, incx, dy_dst, incy, queue ) \
650  magma_zcopyvector_async_internal( n, dx_src, incx, dy_dst, incy, queue, __func__, __FILE__, __LINE__ )
651 
653  magma_int_t n,
654  magmaDoubleComplex const* hx_src, magma_int_t incx,
655  magmaDoubleComplex_ptr dy_dst, magma_int_t incy,
656  const char* func, const char* file, int line );
657 
659  magma_int_t n,
661  magmaDoubleComplex* hy_dst, magma_int_t incy,
662  const char* func, const char* file, int line );
663 
668  magmaDoubleComplex_ptr dy_dst, magma_int_t incy,
669  const char* func, const char* file, int line );
670 
672  magma_int_t n,
673  magmaDoubleComplex const* hx_src, magma_int_t incx,
674  magmaDoubleComplex_ptr dy_dst, magma_int_t incy,
675  magma_queue_t queue,
676  const char* func, const char* file, int line );
677 
679  magma_int_t n,
681  magmaDoubleComplex* hy_dst, magma_int_t incy,
682  magma_queue_t queue,
683  const char* func, const char* file, int line );
684 
689  magmaDoubleComplex_ptr dy_dst, magma_int_t incy,
690  magma_queue_t queue,
691  const char* func, const char* file, int line );
692 
693 
694 // ========================================
695 // copying sub-matrices (contiguous columns)
696 // set copies host to device
697 // get copies device to host
698 // copy copies device to device
699 // (with CUDA unified addressing, copy can be between same or different devices)
700 // Add the function, file, and line for error-reporting purposes.
701 
702 #define magma_zsetmatrix( m, n, hA_src, lda, dB_dst, lddb ) \
703  magma_zsetmatrix_internal( m, n, hA_src, lda, dB_dst, lddb, __func__, __FILE__, __LINE__ )
704 
705 #define magma_zgetmatrix( m, n, dA_src, ldda, hB_dst, ldb ) \
706  magma_zgetmatrix_internal( m, n, dA_src, ldda, hB_dst, ldb, __func__, __FILE__, __LINE__ )
707 
708 #define magma_zcopymatrix( m, n, dA_src, ldda, dB_dst, lddb ) \
709  magma_zcopymatrix_internal( m, n, dA_src, ldda, dB_dst, lddb, __func__, __FILE__, __LINE__ )
710 
711 #define magma_zsetmatrix_async( m, n, hA_src, lda, dB_dst, lddb, queue ) \
712  magma_zsetmatrix_async_internal( m, n, hA_src, lda, dB_dst, lddb, queue, __func__, __FILE__, __LINE__ )
713 
714 #define magma_zgetmatrix_async( m, n, dA_src, ldda, hB_dst, ldb, queue ) \
715  magma_zgetmatrix_async_internal( m, n, dA_src, ldda, hB_dst, ldb, queue, __func__, __FILE__, __LINE__ )
716 
717 #define magma_zcopymatrix_async( m, n, dA_src, ldda, dB_dst, lddb, queue ) \
718  magma_zcopymatrix_async_internal( m, n, dA_src, ldda, dB_dst, lddb, queue, __func__, __FILE__, __LINE__ )
719 
722  magmaDoubleComplex const* hA_src, magma_int_t ldha,
723  magmaDoubleComplex_ptr dB_dst, magma_int_t lddb,
724  const char* func, const char* file, int line );
725 
729  magmaDoubleComplex* hB_dst, magma_int_t ldhb,
730  const char* func, const char* file, int line );
731 
735  magmaDoubleComplex_ptr dB_dst, magma_int_t lddb,
736  const char* func, const char* file, int line );
737 
740  magmaDoubleComplex const* hA_src, magma_int_t ldha,
741  magmaDoubleComplex_ptr dB_dst, magma_int_t lddb,
742  magma_queue_t queue,
743  const char* func, const char* file, int line );
744 
748  magmaDoubleComplex* hB_dst, magma_int_t ldhb,
749  magma_queue_t queue,
750  const char* func, const char* file, int line );
751 
755  magmaDoubleComplex_ptr dB_dst, magma_int_t lddb,
756  magma_queue_t queue,
757  const char* func, const char* file, int line );
758 
759 
760 // ========================================
761 // Level 1 BLAS
762 
763 // in cublas_v2, result returned through output argument
765  magma_int_t n,
767 
768 // in cublas_v2, result returned through output argument
770  magma_int_t n,
772 
773 // in cublas_v2, result returned through output argument
774 double magma_dzasum(
775  magma_int_t n,
777 
778 void magma_zaxpy(
779  magma_int_t n,
780  magmaDoubleComplex alpha,
783 
784 void magma_zcopy(
785  magma_int_t n,
788 
789 // in cublas_v2, result returned through output argument
790 magmaDoubleComplex
792  magma_int_t n,
795 
796 // in cublas_v2, result returned through output argument
797 #ifdef COMPLEX
798 magmaDoubleComplex
800  magma_int_t n,
803 #endif
804 
805 // in cublas_v2, result returned through output argument
806 double magma_dznrm2(
807  magma_int_t n,
809 
810 void magma_zrot(
811  magma_int_t n,
814  double dc, magmaDoubleComplex ds );
815 
816 #ifdef COMPLEX
817 void magma_zdrot(
818  magma_int_t n,
821  double dc, double ds );
822 #endif
823 
824 #ifdef REAL
825 void magma_zrotm(
826  magma_int_t n,
827  magmaDouble_ptr dx, magma_int_t incx,
828  magmaDouble_ptr dy, magma_int_t incy,
829  magmaDouble_const_ptr param );
830 
831 void magma_zrotmg(
834  magmaDouble_ptr param );
835 #endif
836 
837 void magma_zscal(
838  magma_int_t n,
839  magmaDoubleComplex alpha,
841 
842 void magma_zdscal(
843  magma_int_t n,
844  double alpha,
846 
847 void magma_zswap(
848  magma_int_t n,
851 
852 // ========================================
853 // Level 2 BLAS
854 
855 void magma_zgemv(
856  magma_trans_t transA,
858  magmaDoubleComplex alpha,
861  magmaDoubleComplex beta,
863 
864 void magma_zgerc(
866  magmaDoubleComplex alpha,
870 
871 #ifdef COMPLEX
872 void magma_zgeru(
874  magmaDoubleComplex alpha,
878 #endif
879 
880 void magma_zhemv(
881  magma_uplo_t uplo,
882  magma_int_t n,
883  magmaDoubleComplex alpha,
886  magmaDoubleComplex beta,
888 
889 void magma_zher(
890  magma_uplo_t uplo,
891  magma_int_t n,
892  double alpha,
895 
896 void magma_zher2(
897  magma_uplo_t uplo,
898  magma_int_t n,
899  magmaDoubleComplex alpha,
903 
904 void magma_ztrmv(
905  magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
906  magma_int_t n,
909 
910 void magma_ztrsv(
911  magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
912  magma_int_t n,
915 
916 // ========================================
917 // Level 3 BLAS
918 
919 void magma_zgemm(
920  magma_trans_t transA, magma_trans_t transB,
922  magmaDoubleComplex alpha,
925  magmaDoubleComplex beta,
927 
928 void magma_zsymm(
929  magma_side_t side, magma_uplo_t uplo,
931  magmaDoubleComplex alpha,
934  magmaDoubleComplex beta,
936 
937 void magma_zsyrk(
938  magma_uplo_t uplo, magma_trans_t trans,
940  magmaDoubleComplex alpha,
942  magmaDoubleComplex beta,
944 
945 void magma_zsyr2k(
946  magma_uplo_t uplo, magma_trans_t trans,
948  magmaDoubleComplex alpha,
951  magmaDoubleComplex beta,
953 
954 #ifdef COMPLEX
955 void magma_zhemm(
956  magma_side_t side, magma_uplo_t uplo,
958  magmaDoubleComplex alpha,
961  magmaDoubleComplex beta,
963 
964 void magma_zherk(
965  magma_uplo_t uplo, magma_trans_t trans,
967  double alpha,
969  double beta,
971 
972 void magma_zher2k(
973  magma_uplo_t uplo, magma_trans_t trans,
975  magmaDoubleComplex alpha,
978  double beta,
980 #endif
981 
982 void magma_ztrmm(
983  magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
985  magmaDoubleComplex alpha,
988 
989 void magma_ztrsm(
990  magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
992  magmaDoubleComplex alpha,
995 
996 #ifdef __cplusplus
997 }
998 #endif
999 
1000 #undef COMPLEX
1001 
1002 #endif /* MAGMABLAS_Z_H */
void magmablas_zgemm_fermi64(char tA, char tB, magma_int_t m, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
void magmablas_ztrsm(char s, char u, char t, char d, magma_int_t m, magma_int_t n, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *B, magma_int_t ldb)
void magma_ztrmm(magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_ptr dB, magma_int_t lddb)
void magmablas_zher2k_mgpu_spec(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dA[], magma_int_t lda, magma_int_t aoff, magmaDoubleComplex_ptr dB[], magma_int_t ldb, magma_int_t boff, double beta, magmaDoubleComplex_ptr dC[], magma_int_t ldc, magma_int_t offset, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream)
void magma_zlarfgtx_gpu(magma_int_t n, magmaDoubleComplex *dx0, magmaDoubleComplex *dx, magmaDoubleComplex *dtau, double *dxnorm, magmaDoubleComplex *dA, magma_int_t it, magmaDoubleComplex *V, magma_int_t ldv, magmaDoubleComplex *T, magma_int_t ldt, magmaDoubleComplex *dwork)
void magma_zlarfx_gpu(magma_int_t m, magma_int_t n, magmaDoubleComplex *v, magmaDoubleComplex *tau, magmaDoubleComplex *c, magma_int_t ldc, double *xnorm, magmaDoubleComplex *dT, magma_int_t iter, magmaDoubleComplex *work)
void magmablas_zsyr2k(char u, char t, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
void magmablas_zgeadd_batched(magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr const *dAarray, magma_int_t ldda, magmaDoubleComplex_ptr *dBarray, magma_int_t lddb, magma_int_t batchCount)
magma_int_t magmablas_zhemv(char u, magma_int_t N, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *X, magma_int_t incX, cuDoubleComplex beta, cuDoubleComplex *Y, magma_int_t incY)
void magma_zdscal(magma_int_t n, double alpha, magmaDoubleComplex_ptr dx, magma_int_t incx)
magma_int_t magma_zhtodpo(magma_int_t num_gpus, char *uplo, magma_int_t m, magma_int_t n, magma_int_t off_i, magma_int_t off_j, magma_int_t nb, magmaDoubleComplex *h_A, magma_int_t lda, magmaDoubleComplex *d_lA[], magma_int_t ldda, magma_queue_t stream[][3], magma_int_t *info)
void magmablas_dznrm2_check(magma_int_t m, magma_int_t num, magmaDoubleComplex *da, magma_int_t ldda, double *dxnorm, double *lsticc)
void magma_zgetmatrix_internal(magma_int_t m, magma_int_t n, magmaDoubleComplex_const_ptr dA_src, magma_int_t ldda, magmaDoubleComplex *hB_dst, magma_int_t ldhb, const char *func, const char *file, int line)
void magmablas_dznrm2_row_check_adjust(magma_int_t k, double tol, double *xnorm, double *xnorm2, magmaDoubleComplex *c, magma_int_t ldc, double *lsticc)
magma_int_t magmablas_zhemv_mgpu_32_offset(char uplo, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex **A, magma_int_t lda, magmaDoubleComplex **X, magma_int_t incx, magmaDoubleComplex beta, magmaDoubleComplex **Y, magma_int_t incy, magmaDoubleComplex **work, magma_int_t lwork, magma_int_t num_gpus, magma_int_t nb, magma_int_t offset, magma_queue_t stream[][10])
void magmablas_zgeadd(magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_ptr dB, magma_int_t lddb)
void magma_ztrmv(magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_ptr dx, magma_int_t incx)
void magmablas_zpermute_long2(cuDoubleComplex *, magma_int_t, magma_int_t *, magma_int_t, magma_int_t)
magmaDoubleComplex magma_zdotc(magma_int_t n, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex_const_ptr dy, magma_int_t incy)
void magma_zgetvector_async_internal(magma_int_t n, magmaDoubleComplex_const_ptr dx_src, magma_int_t incx, magmaDoubleComplex *hy_dst, magma_int_t incy, magma_queue_t queue, const char *func, const char *file, int line)
void magmablas_zsymmetrize_tiles(magma_uplo_t uplo, magma_int_t m, magmaDoubleComplex_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride)
char magma_diag_t
Definition: magma_types.h:379
void magmablas_zsetmatrix_transpose_mgpu(magma_int_t ngpu, magma_queue_t stream[][2], const magmaDoubleComplex *hA, magma_int_t lda, magmaDoubleComplex_ptr dAT[], magma_int_t ldda, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magma_int_t m, magma_int_t n, magma_int_t nb)
void magmablas_zhemm_mgpu_spec33(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magmaDoubleComplex_ptr dVIN[], magma_int_t lddv, magma_int_t voffst, magmaDoubleComplex_ptr dwork[], magma_int_t lddwork, magmaDoubleComplex *C, magma_int_t ldc, magmaDoubleComplex *work[], magma_int_t ldwork, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream, magma_event_t redevents[][MagmaMaxGPUs *MagmaMaxGPUs+10], magma_int_t nbevents, magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx)
void magma_zsetmatrix_1D_col_bcyclic(magma_int_t m, magma_int_t n, const magmaDoubleComplex *hA, magma_int_t lda, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t ngpu, magma_int_t nb)
magma_err_t magma_zcopyvector_internal(magma_int_t m, magma_int_t n, magmaDoubleComplex_const_ptr dx_src, magma_int_t incx, magmaDoubleComplex_ptr dy_dst, magma_int_t incy, const char *func, const char *file, int line)
void magma_zsyrk(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC, magma_int_t lddc)
void magma_zgetmatrix_async_internal(magma_int_t m, magma_int_t n, magmaDoubleComplex_const_ptr dA_src, magma_int_t ldda, magmaDoubleComplex *hB_dst, magma_int_t ldhb, magma_queue_t queue, const char *func, const char *file, int line)
void magmablas_zgemv(char t, magma_int_t M, magma_int_t N, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *X, magma_int_t incX, cuDoubleComplex beta, cuDoubleComplex *Y, magma_int_t incY)
void magmablas_ztranspose2s(magmaDoubleComplex_ptr odata, magma_int_t ldo, magmaDoubleComplex_const_ptr idata, magma_int_t ldi, magma_int_t m, magma_int_t n, magma_queue_t stream)
void magma_zaxpy(magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex_ptr dy, magma_int_t incy)
void magmablas_zlaset(magma_int_t m, magma_int_t n, cuDoubleComplex *A, magma_int_t lda)
#define T(m)
Definition: zgeqrf_mc.cpp:14
double magmablas_zlange(char norm, magma_int_t m, magma_int_t n, cuDoubleComplex *A, magma_int_t lda, double *WORK)
magma_int_t magmablas_zhemv_sync(magma_int_t num_gpus, magma_int_t k, magma_int_t n, magmaDoubleComplex *work, magmaDoubleComplex *w, magma_queue_t stream[][10])
int magma_int_t
Definition: magmablas.h:12
#define C(i, j)
void magmablas_zlaset_identity(magma_int_t m, magma_int_t n, magmaDoubleComplex_ptr dA, magma_int_t ldda)
#define h_A(i, j)
#define dB(dev, i, j)
void magmablas_zherk(char u, char t, magma_int_t n, magma_int_t k, double alpha, const cuDoubleComplex *A, magma_int_t lda, double beta, cuDoubleComplex *C, magma_int_t ldc)
char magma_storev_t
Definition: magma_types.h:386
double magmablas_zlansy(char norm, char uplo, magma_int_t n, cuDoubleComplex *A, magma_int_t lda, double *WORK)
void magmablas_zher2k_mgpu_spec325(magma_uplo_t uplo, magma_trans_t trans, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dVIN[], magma_int_t lddv, magma_int_t voff, magmaDoubleComplex_ptr dWIN[], magma_int_t lddw, magma_int_t woff, double beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magma_int_t offset, magmaDoubleComplex_ptr dwork[], magma_int_t lndwork, magma_int_t ngpu, magma_int_t nb, magmaDoubleComplex **harray[], magmaDoubleComplex_ptr *darray[], magma_queue_t streams[][20], magma_int_t nstream, magma_event_t redevents[][MagmaMaxGPUs *MagmaMaxGPUs+10], magma_int_t nbevents)
char magma_trans_t
Definition: magma_types.h:377
void magma_zscal(magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dx, magma_int_t incx)
void magmablas_dznrm2_adjust(magma_int_t k, double *xnorm, magmaDoubleComplex *c)
double * magmaDouble_ptr
Definition: magma_types.h:231
void magmablas_zswap(magma_int_t N, cuDoubleComplex *dA1, magma_int_t lda1, cuDoubleComplex *dA2, magma_int_t lda2)
void magma_zher2k(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dB, magma_int_t lddb, double beta, magmaDoubleComplex_ptr dC, magma_int_t lddc)
void zzero_nbxnb_block(magma_int_t, cuDoubleComplex *, magma_int_t)
void magma_zsetmatrix_async_internal(magma_int_t m, magma_int_t n, magmaDoubleComplex const *hA_src, magma_int_t ldha, magmaDoubleComplex_ptr dB_dst, magma_int_t lddb, magma_queue_t queue, const char *func, const char *file, int line)
void magma_zcopymatrix_async_internal(magma_int_t m, magma_int_t n, magmaDoubleComplex_const_ptr dA_src, magma_int_t ldda, magmaDoubleComplex_ptr dB_dst, magma_int_t lddb, magma_queue_t queue, const char *func, const char *file, int line)
void magmablas_zhemm(char s, char u, magma_int_t m, magma_int_t n, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
void magma_zgetvector_internal(magma_int_t n, magmaDoubleComplex_const_ptr dx_src, magma_int_t incx, magmaDoubleComplex *hy_dst, magma_int_t incy, const char *func, const char *file, int line)
void magma_zgemm(magma_trans_t transA, magma_trans_t transB, magma_int_t m, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dB, magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC, magma_int_t lddc)
magma_err_t magma_zcopyvector_async_internal(magma_int_t m, magma_int_t n, magmaDoubleComplex_const_ptr dx_src, magma_int_t incx, magmaDoubleComplex_ptr dy_dst, magma_int_t incy, magma_queue_t queue, const char *func, const char *file, int line)
double const * magmaDouble_const_ptr
Definition: magma_types.h:238
char magma_norm_t
Definition: magma_types.h:381
void magmablas_zlaswp2(magma_int_t n, magmaDoubleComplex_ptr dAT, magma_int_t ldda, magma_int_t i1, magma_int_t i2, const magma_int_t *d_ipiv)
void magmablas_zlacpy(char uplo, magma_int_t m, magma_int_t n, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *B, magma_int_t ldb)
magma_int_t magmablas_zhemv2(magma_uplo_t uplo, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dX, magma_int_t incx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dY, magma_int_t incy, magmaDoubleComplex_ptr dwork, magma_int_t lwork)
#define dX(i, j)
void magma_zher2k_mgpu(magma_int_t num_gpus, char uplo, char trans, magma_int_t nb, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, magmaDoubleComplex **db, magma_int_t lddb, magma_int_t boffset, double beta, magmaDoubleComplex **dc, magma_int_t lddc, magma_int_t offset, magma_int_t num_streams, magma_queue_t streams[][10])
#define dwork(dev, i, j)
void magmablas_zher2k_mgpu2(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t aoff, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magma_int_t boff, double beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magma_int_t offset, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream)
void magma_ztrsm(magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_ptr dB, magma_int_t lddb)
void magma_zgetmatrix_1D_row_bcyclic(magma_int_t m, magma_int_t n, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magmaDoubleComplex *hA, magma_int_t lda, magma_int_t ngpu, magma_int_t nb)
char magma_side_t
Definition: magma_types.h:380
magmaDoubleComplex magma_zdotu(magma_int_t n, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex_const_ptr dy, magma_int_t incy)
void magmablas_zhemm_mgpu(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magmaDoubleComplex_ptr dwork[], magma_int_t lddwork, magmaDoubleComplex *C, magma_int_t ldc, magmaDoubleComplex *work[], magma_int_t ldwork, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream, magma_event_t redevents[][20], magma_int_t nbevents)
void magmablas_zhemm_mgpu_spec(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magmaDoubleComplex_ptr dwork[], magma_int_t lddwork, magmaDoubleComplex *C, magma_int_t ldc, magmaDoubleComplex *work[], magma_int_t ldwork, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream, magma_event_t redevents[][MagmaMaxGPUs *MagmaMaxGPUs+10], magma_int_t nbevents, magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx)
magmaDoubleComplex const * magmaDoubleComplex_const_ptr
Definition: magma_types.h:240
#define dAT(i, j)
void magmablas_dznrm2_cols(magma_int_t m, magma_int_t n, magmaDoubleComplex_ptr dA, magma_int_t ldda, magmaDouble_ptr dxnorm)
void magmablas_zsymm(char s, char u, magma_int_t m, magma_int_t n, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
void magma_zsetvector_async_internal(magma_int_t n, magmaDoubleComplex const *hx_src, magma_int_t incx, magmaDoubleComplex_ptr dy_dst, magma_int_t incy, magma_queue_t queue, const char *func, const char *file, int line)
void magma_zher(magma_uplo_t uplo, magma_int_t n, double alpha, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex_ptr dA, magma_int_t ldda)
#define magmablas_zgemm
Definition: magmablas.h:25
#define dY(d, i, j)
void magmablas_zgemm_fermi80(char tA, char tB, magma_int_t m, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
#define MagmaMaxGPUs
Definition: magma_types.h:255
void magmablas_zhemm_mgpu_com(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magmaDoubleComplex_ptr dwork[], magma_int_t lddwork, magmaDoubleComplex *C, magma_int_t ldc, magmaDoubleComplex *work[], magma_int_t ldwork, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream, magma_event_t redevents[][MagmaMaxGPUs *MagmaMaxGPUs+10], magma_int_t nbevents, magma_int_t gnode[MagmaMaxGPUs][MagmaMaxGPUs+2], magma_int_t nbcmplx)
Definition: zhemm_mgpu.cpp:20
void magma_ztrsv(magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_ptr dx, magma_int_t incx)
void magma_zsetmatrix_internal(magma_int_t m, magma_int_t n, magmaDoubleComplex const *hA_src, magma_int_t ldha, magmaDoubleComplex_ptr dB_dst, magma_int_t lddb, const char *func, const char *file, int line)
void magma_zdrot(magma_int_t n, magmaDoubleComplex_ptr dx, magma_int_t incx, magmaDoubleComplex_ptr dy, magma_int_t incy, double dc, double ds)
void magmablas_zswapdblk(magma_int_t n, magma_int_t nb, cuDoubleComplex *dA1, magma_int_t ldda1, magma_int_t inca1, cuDoubleComplex *dA2, magma_int_t ldda2, magma_int_t inca2)
magma_int_t magma_zdtohpo(magma_int_t num_gpus, char *uplo, magma_int_t m, magma_int_t n, magma_int_t off_i, magma_int_t off_j, magma_int_t nb, magma_int_t NB, magmaDoubleComplex *a, magma_int_t lda, magmaDoubleComplex *work[], magma_int_t ldda, magma_queue_t stream[][3], magma_int_t *info)
void magmablas_ztranspose_inplace(magma_int_t n, magmaDoubleComplex_ptr dA, magma_int_t ldda)
void magma_zswap(magma_int_t n, magmaDoubleComplex_ptr dx, magma_int_t incx, magmaDoubleComplex_ptr dy, magma_int_t incy)
void magmablas_zhemm_1gpu_old(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magmaDoubleComplex *C, magma_int_t ldc, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream)
double magma_dzasum(magma_int_t n, magmaDoubleComplex_const_ptr dx, magma_int_t incx)
void magma_zlarfgx_gpu(magma_int_t n, magmaDoubleComplex *dx0, magmaDoubleComplex *dx, magmaDoubleComplex *dtau, double *dxnorm, magmaDoubleComplex *ddx0, magma_int_t iter)
void magmablas_zher2k(char u, char t, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, const cuDoubleComplex *B, magma_int_t ldb, double beta, cuDoubleComplex *C, magma_int_t ldc)
magma_int_t magma_izamax(magma_int_t n, magmaDoubleComplex_const_ptr dx, magma_int_t incx)
void magma_zgerc(magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex_const_ptr dy, magma_int_t incy, magmaDoubleComplex_ptr dA, magma_int_t ldda)
void magmablas_zsyrk(char u, char t, magma_int_t n, magma_int_t k, cuDoubleComplex alpha, const cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex beta, cuDoubleComplex *C, magma_int_t ldc)
void magma_zsetmatrix_1D_row_bcyclic(magma_int_t m, magma_int_t n, const magmaDoubleComplex *hA, magma_int_t lda, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t ngpu, magma_int_t nb)
void magmablas_zsetmatrix_transpose(magma_int_t m, magma_int_t n, const magmaDoubleComplex *hA, magma_int_t lda, magmaDoubleComplex_ptr dAT, magma_int_t ldda, magmaDoubleComplex_ptr dwork, magma_int_t lddwork, magma_int_t nb)
void magma_zhemm(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dB, magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC, magma_int_t lddc)
double magmablas_zlanhe(char norm, char uplo, magma_int_t n, cuDoubleComplex *A, magma_int_t lda, double *WORK)
void magma_zhemv(magma_uplo_t uplo, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_int_t incy)
void magma_zsetvector_internal(magma_int_t n, magmaDoubleComplex const *hx_src, magma_int_t incx, magmaDoubleComplex_ptr dy_dst, magma_int_t incy, const char *func, const char *file, int line)
void magmablas_zgetmatrix_transpose_mgpu(magma_int_t ngpu, magma_queue_t stream[][2], magmaDoubleComplex_ptr dAT[], magma_int_t ldda, magmaDoubleComplex *hA, magma_int_t lda, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magma_int_t m, magma_int_t n, magma_int_t nb)
#define Y(i, j)
#define A(i, j)
Definition: cprint.cpp:16
double magma_dznrm2(magma_int_t n, magmaDoubleComplex_const_ptr dx, magma_int_t incx)
void magmablas_zhemm_1gpu(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDoubleComplex_ptr dB[], magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magmaDoubleComplex *C, magma_int_t ldc, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream)
magma_int_t magma_zhtodhe(magma_int_t num_gpus, char *uplo, magma_int_t n, magma_int_t nb, magmaDoubleComplex *a, magma_int_t lda, magmaDoubleComplex **dwork, magma_int_t ldda, magma_queue_t stream[][10], magma_int_t *info)
void magma_zher2(magma_uplo_t uplo, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex_const_ptr dy, magma_int_t incy, magmaDoubleComplex_ptr dA, magma_int_t ldda)
void magmablas_zlaswpx(magma_int_t N, cuDoubleComplex *dAT, magma_int_t ldx, magma_int_t ldy, magma_int_t i1, magma_int_t i2, magma_int_t *ipiv, magma_int_t inci)
void magmablas_zlacpy_batched(magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex_const_ptr const *dAarray, magma_int_t ldda, magmaDoubleComplex_ptr *dBarray, magma_int_t lddb, magma_int_t batchCount)
void magma_zgemv(magma_trans_t transA, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex beta, magmaDoubleComplex_ptr dy, magma_int_t incy)
magma_int_t magmablas_zhemv_mgpu_offset(char uplo, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex **A, magma_int_t lda, magmaDoubleComplex **X, magma_int_t incx, magmaDoubleComplex beta, magmaDoubleComplex **Y, magma_int_t incy, magmaDoubleComplex **work, magma_int_t lwork, magma_int_t num_gpus, magma_int_t nb, magma_int_t offset, magma_queue_t stream[][10])
char magma_uplo_t
Definition: magma_types.h:378
void magma_zcopymatrix_internal(magma_int_t m, magma_int_t n, magmaDoubleComplex_const_ptr dA_src, magma_int_t ldda, magmaDoubleComplex_ptr dB_dst, magma_int_t lddb, const char *func, const char *file, int line)
void magmablas_zswapblk(char storev, magma_int_t N, cuDoubleComplex *dA1, magma_int_t lda1, cuDoubleComplex *dA2, magma_int_t lda2, magma_int_t i1, magma_int_t i2, magma_int_t *ipiv, magma_int_t inci, magma_int_t offset)
#define dC(dev, i, j)
void magma_zrot(magma_int_t n, magmaDoubleComplex_ptr dx, magma_int_t incx, magmaDoubleComplex_ptr dy, magma_int_t incy, double dc, magmaDoubleComplex ds)
void magma_zgetmatrix_1D_col_bcyclic(magma_int_t m, magma_int_t n, magmaDoubleComplex_ptr dA[], magma_int_t ldda, magmaDoubleComplex *hA, magma_int_t lda, magma_int_t ngpu, magma_int_t nb)
magmaDoubleComplex * magmaDoubleComplex_ptr
Definition: magma_types.h:233
void magma_zcopy(magma_int_t n, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex_ptr dy, magma_int_t incy)
void magmablas_zlascl(char type, int kl, int ku, double cfrom, double cto, int m, int n, cuDoubleComplex *A, int lda, int *info)
int magma_err_t
Definition: magma_types.h:23
void magma_zsymm(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dB, magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC, magma_int_t lddc)
magma_int_t magma_izamin(magma_int_t n, magmaDoubleComplex_const_ptr dx, magma_int_t incx)
#define dx(d, j)
void magma_zgeru(magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dx, magma_int_t incx, magmaDoubleComplex_const_ptr dy, magma_int_t incy, magmaDoubleComplex_ptr dA, magma_int_t ldda)
void magma_zherk(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, double alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, double beta, magmaDoubleComplex_ptr dC, magma_int_t lddc)
#define dT(m)
void magmablas_zgemm_reduce(magma_int_t m, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, const magmaDoubleComplex *dA, magma_int_t lda, const magmaDoubleComplex *dB, magma_int_t ldb, magmaDoubleComplex beta, magmaDoubleComplex *dC, magma_int_t ldc)
void magmablas_zgetmatrix_transpose(magma_int_t m, magma_int_t n, magmaDoubleComplex_const_ptr dAT, magma_int_t ldda, magmaDoubleComplex *hA, magma_int_t lda, magmaDoubleComplex_ptr dwork, magma_int_t lddwork, magma_int_t nb)
void magma_zsyr2k(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, magmaDoubleComplex alpha, magmaDoubleComplex_const_ptr dA, magma_int_t ldda, magmaDoubleComplex_const_ptr dB, magma_int_t lddb, magmaDoubleComplex beta, magmaDoubleComplex_ptr dC, magma_int_t lddc)
double cpu_gpu_zdiff(int M, int N, cuDoubleComplex *a, int lda, cuDoubleComplex *da, int ldda)
void magmablas_ztranspose2(cuDoubleComplex *, magma_int_t, cuDoubleComplex *, magma_int_t, magma_int_t, magma_int_t)
void magmablas_zher2k_mgpu_spec324(magma_uplo_t uplo, magma_trans_t trans, magma_int_t m, magma_int_t n, magmaDoubleComplex alpha, magmaDoubleComplex_ptr dVIN[], magma_int_t lddv, magma_int_t voff, magmaDoubleComplex_ptr dWIN[], magma_int_t lddw, magma_int_t woff, double beta, magmaDoubleComplex_ptr dC[], magma_int_t lddc, magma_int_t offset, magmaDoubleComplex_ptr dwork[], magma_int_t lndwork, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream, magma_event_t redevents[][MagmaMaxGPUs *MagmaMaxGPUs+10], magma_int_t nbevents)
void magmablas_ztranspose(cuDoubleComplex *, magma_int_t, cuDoubleComplex *, magma_int_t, magma_int_t, magma_int_t)
magma_int_t magmablas_zsymv(char u, magma_int_t N, cuDoubleComplex alpha, cuDoubleComplex *A, magma_int_t lda, cuDoubleComplex *X, magma_int_t incX, cuDoubleComplex beta, cuDoubleComplex *Y, magma_int_t incY)
void magmablas_zsymmetrize(magma_uplo_t uplo, magma_int_t m, magmaDoubleComplex_ptr dA, magma_int_t ldda)
magma_int_t magmablas_zhemv_mgpu(magma_int_t num_gpus, magma_int_t k, char uplo, magma_int_t n, magma_int_t nb, magmaDoubleComplex alpha, magmaDoubleComplex **da, magma_int_t ldda, magma_int_t offset, magmaDoubleComplex **dx, magma_int_t incx, magmaDoubleComplex beta, magmaDoubleComplex **dy, magma_int_t incy, magmaDoubleComplex **dwork, magma_int_t ldwork, magmaDoubleComplex *work, magmaDoubleComplex *w, magma_queue_t stream[][10])
void magmablas_zlaswp(magma_int_t N, cuDoubleComplex *dAT, magma_int_t lda, magma_int_t i1, magma_int_t i2, magma_int_t *ipiv, magma_int_t inci)
void zzero_32x32_block(cuDoubleComplex *, magma_int_t)
#define V(m)
void magmablas_zpermute_long3(magmaDoubleComplex_ptr dAT, magma_int_t ldda, const magma_int_t *ipiv, magma_int_t nb, magma_int_t ind)
void magma_zlarfbx_gpu(magma_int_t m, magma_int_t k, magmaDoubleComplex *V, magma_int_t ldv, magmaDoubleComplex *dT, magma_int_t ldt, magmaDoubleComplex *c, magmaDoubleComplex *dwork)
#define dA(dev, i, j)