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_d.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  @generated d Tue Aug 13 16:43:27 2013
9 */
10 
11 #ifndef MAGMABLAS_D_H
12 #define MAGMABLAS_D_H
13 
14 #include "magma_types.h"
15 
16 #define REAL
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22  /*
23  * Interface to clean
24  */
25 double cpu_gpu_ddiff(
27  const double *hA, magma_int_t lda,
29 
30 // see also dlaset
32  magmaDouble_ptr dA, magma_int_t ldda );
33 
35  magma_int_t nb,
36  magmaDouble_ptr dA, magma_int_t ldda );
37 
38 // see also dlaswp
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 dpermute_long2)
47  /*magma_int_t n,*/
48  magmaDouble_ptr dAT, magma_int_t ldda,
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,
56  magmaDouble_ptr dA, magma_int_t ldda );
57 
59  magmaDouble_ptr odata, magma_int_t ldo,
61  magma_int_t m, magma_int_t n );
62 
64  magmaDouble_ptr odata, magma_int_t ldo,
66  magma_int_t m, magma_int_t n );
67 
69  magmaDouble_ptr odata, magma_int_t ldo,
72  magma_queue_t stream );
73 
77  double *hA, magma_int_t lda,
79 
82  const double *hA, magma_int_t lda,
83  magmaDouble_ptr dAT, magma_int_t ldda,
84  magmaDouble_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],
91  magmaDouble_ptr dAT[], magma_int_t ldda,
92  double *hA, magma_int_t lda,
95 
97  magma_int_t ngpu, magma_queue_t stream[][2],
98  const double *hA, magma_int_t lda,
99  magmaDouble_ptr dAT[], magma_int_t ldda,
100  magmaDouble_ptr dB[], magma_int_t lddb,
102 
105  magmaDouble_ptr dA[], magma_int_t ldda,
106  double *hA, magma_int_t lda,
107  magma_int_t ngpu, magma_int_t nb );
108 
111  const double *hA, magma_int_t lda,
112  magmaDouble_ptr dA[], magma_int_t ldda,
113  magma_int_t ngpu, magma_int_t nb );
114 
117  magmaDouble_ptr dA[], magma_int_t ldda,
118  double *hA, magma_int_t lda,
119  magma_int_t ngpu, magma_int_t nb );
120 
123  const double *hA, magma_int_t lda,
124  magmaDouble_ptr dA[], magma_int_t ldda,
125  magma_int_t ngpu, magma_int_t nb );
126 
127 // in src/dsytrd_mgpu.cpp
129  magma_int_t num_gpus, char *uplo, magma_int_t n, magma_int_t nb,
130  double *a, magma_int_t lda,
131  double **dwork, magma_int_t ldda,
132  magma_queue_t stream[][10], magma_int_t *info );
133 
134 // in src/dpotrf3_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  double *h_A, magma_int_t lda,
139  double *d_lA[], magma_int_t ldda,
140  magma_queue_t stream[][3], magma_int_t *info );
141 
142 // in src/dpotrf3_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  double *a, magma_int_t lda,
147  double *work[], magma_int_t ldda,
148  magma_queue_t stream[][3], magma_int_t *info );
149 
151  char uplo, magma_int_t n,
152  double alpha,
153  double **A, magma_int_t lda,
154  double **X, magma_int_t incx,
155  double beta,
156  double **Y, magma_int_t incy,
157  double **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  double alpha,
166  double **A, magma_int_t lda,
167  double **X, magma_int_t incx,
168  double beta,
169  double **Y, magma_int_t incy,
170  double **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  double alpha,
180  double **da, magma_int_t ldda, magma_int_t offset,
181  double **dx, magma_int_t incx,
182  double beta,
183  double **dy, magma_int_t incy,
184  double **dwork, magma_int_t ldwork,
185  double *work, double *w,
186  magma_queue_t stream[][10] );
187 
189  magma_int_t num_gpus, magma_int_t k,
190  magma_int_t n, double *work, double *w,
191  magma_queue_t stream[][10] );
192 
195  double alpha,
196  magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset,
197  magmaDouble_ptr dB[], magma_int_t lddb,
198  double beta,
200  double* 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  double alpha,
207  magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset,
208  magmaDouble_ptr dB[], magma_int_t lddb,
209  double beta,
210  magmaDouble_ptr dC[], magma_int_t lddc,
211  double* 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  double alpha,
218  magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset,
219  magmaDouble_ptr dB[], magma_int_t lddb,
220  double beta,
221  magmaDouble_ptr dC[], magma_int_t lddc,
222  magmaDouble_ptr dwork[], magma_int_t lddwork,
223  double* C, magma_int_t ldc,
224  double* 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  double alpha,
232  magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset,
233  magmaDouble_ptr dB[], magma_int_t lddb,
234  double beta,
235  magmaDouble_ptr dC[], magma_int_t lddc,
236  magmaDouble_ptr dwork[], magma_int_t lddwork,
237  double* C, magma_int_t ldc,
238  double* 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  double alpha,
247  magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset,
248  magmaDouble_ptr dB[], magma_int_t lddb,
249  double beta,
250  magmaDouble_ptr dC[], magma_int_t lddc,
251  magmaDouble_ptr dwork[], magma_int_t lddwork,
252  double* C, magma_int_t ldc,
253  double* 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  double alpha,
262  magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset,
263  magmaDouble_ptr dB[], magma_int_t lddb,
264  double beta,
265  magmaDouble_ptr dC[], magma_int_t lddc,
266  magmaDouble_ptr dVIN[], magma_int_t lddv, magma_int_t voffst,
267  magmaDouble_ptr dwork[], magma_int_t lddwork,
268  double *C, magma_int_t ldc,
269  double *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/dsytrd_mgpu.cpp
276 void magma_dsyr2k_mgpu(
277  magma_int_t num_gpus, char uplo, char trans, magma_int_t nb, magma_int_t n, magma_int_t k,
278  double alpha,
279  double **db, magma_int_t lddb, magma_int_t boffset,
280  double beta,
281  double **dc, magma_int_t lddc, magma_int_t offset,
282  magma_int_t num_streams, magma_queue_t streams[][10] );
283 
286  double alpha,
287  magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t aoff,
288  magmaDouble_ptr dB[], magma_int_t lddb, magma_int_t boff,
289  double beta,
290  magmaDouble_ptr dC[], magma_int_t lddc, magma_int_t offset,
291  magma_int_t ngpu, magma_int_t nb,
292  magma_queue_t streams[][20], magma_int_t nstream );
293 
296  double alpha,
297  magmaDouble_ptr dA[], magma_int_t lda, magma_int_t aoff,
298  magmaDouble_ptr dB[], magma_int_t ldb, magma_int_t boff,
299  double beta,
300  magmaDouble_ptr dC[], magma_int_t ldc, magma_int_t offset,
301  magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream );
302 
305  double alpha,
306  magmaDouble_ptr dVIN[], magma_int_t lddv, magma_int_t voff,
307  magmaDouble_ptr dWIN[], magma_int_t lddw, magma_int_t woff,
308  double beta,
309  magmaDouble_ptr dC[], magma_int_t lddc, magma_int_t offset,
310  magmaDouble_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  double alpha,
318  magmaDouble_ptr dVIN[], magma_int_t lddv, magma_int_t voff,
319  magmaDouble_ptr dWIN[], magma_int_t lddw, magma_int_t woff,
320  double beta,
321  magmaDouble_ptr dC[], magma_int_t lddc, magma_int_t offset,
322  magmaDouble_ptr dwork[], magma_int_t lndwork,
323  magma_int_t ngpu, magma_int_t nb,
324  double **harray[],
325  magmaDouble_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_dgeadd(
334  double alpha,
336  magmaDouble_ptr dB, magma_int_t lddb );
337 
340  double alpha,
341  magmaDouble_const_ptr const *dAarray, magma_int_t ldda,
342  magmaDouble_ptr *dBarray, magma_int_t lddb,
343  magma_int_t batchCount );
344 
345 void magmablas_dlacpy(
346  magma_uplo_t uplo,
349  magmaDouble_ptr dB, magma_int_t lddb );
350 
353  magmaDouble_const_ptr const *dAarray, magma_int_t ldda,
354  magmaDouble_ptr *dBarray, magma_int_t lddb,
355  magma_int_t batchCount );
356 
357 double magmablas_dlange(
358  magma_norm_t norm,
361  magmaDouble_ptr dwork );
362 
363 double magmablas_dlansy(
364  magma_norm_t norm, magma_uplo_t uplo,
365  magma_int_t n,
367  magmaDouble_ptr dwork );
368 
369 double magmablas_dlansy(
370  magma_norm_t norm, magma_uplo_t uplo,
371  magma_int_t n,
373  magmaDouble_ptr dwork );
374 
375 void magmablas_dlascl(
376  char type, magma_int_t kl, magma_int_t ku,
377  double cfrom, double cto,
379  magmaDouble_ptr dA, magma_int_t ldda, magma_int_t *info );
380 
381 void magmablas_dlaset(
383  magmaDouble_ptr dA, magma_int_t ldda );
384 
387  magmaDouble_ptr dA, magma_int_t ldda );
388 
389 void magmablas_dlaswp(
390  magma_int_t n,
391  magmaDouble_ptr dAT, magma_int_t ldda,
392  magma_int_t i1, magma_int_t i2,
393  const magma_int_t *ipiv, magma_int_t inci );
394 
395 void magmablas_dlaswpx(
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_dlaswp2(
402  magma_int_t n,
403  magmaDouble_ptr dAT, magma_int_t ldda,
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,
409  magmaDouble_ptr dA, magma_int_t ldda );
410 
412  magma_uplo_t uplo, magma_int_t m,
413  magmaDouble_ptr dA, magma_int_t ldda,
414  magma_int_t ntile, magma_int_t mstride, magma_int_t nstride );
415 
416 void magma_dlarfgx_gpu(
417  magma_int_t n, double *dx0, double *dx,
418  double *dtau, double *dxnorm,
419  double *ddx0, magma_int_t iter);
420 
421 void magma_dlarfx_gpu(
422  magma_int_t m, magma_int_t n, double *v, double *tau,
423  double *c, magma_int_t ldc, double *xnorm,
424  double *dT, magma_int_t iter, double *work);
425 
426 void magma_dlarfbx_gpu(
427  magma_int_t m, magma_int_t k, double *V, magma_int_t ldv,
428  double *dT, magma_int_t ldt, double *c,
429  double *dwork);
430 
431 void magma_dlarfgtx_gpu(
432  magma_int_t n, double *dx0, double *dx,
433  double *dtau, double *dxnorm,
434  double *dA, magma_int_t it,
435  double *V, magma_int_t ldv, double *T, magma_int_t ldt,
436  double *dwork);
437 
439  magma_int_t k, double *xnorm, double *c);
440 
443  magmaDouble_ptr dA, magma_int_t ldda,
444  magmaDouble_ptr dxnorm);
445 
447  magma_int_t k, double tol, double *xnorm, double *xnorm2,
448  double *c, magma_int_t ldc, double *lsticc);
449 
451  magma_int_t m, magma_int_t num, double *da, magma_int_t ldda,
452  double *dxnorm, double *lsticc);
453 
454  /*
455  * Level 1 BLAS
456  */
457 void magmablas_dswap(
458  magma_int_t n,
459  magmaDouble_ptr dA, magma_int_t ldda,
460  magmaDouble_ptr dB, magma_int_t lddb );
461 
462 void magmablas_dswapblk(
463  magma_storev_t storev,
464  magma_int_t n,
465  magmaDouble_ptr dA, magma_int_t ldda,
466  magmaDouble_ptr dB, magma_int_t lddb,
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,
473  magmaDouble_ptr dA, magma_int_t ldda, magma_int_t inca,
474  magmaDouble_ptr dB, magma_int_t lddb, magma_int_t incb );
475 
476  /*
477  * Level 2 BLAS
478  */
479 void magmablas_dgemv(
481  double alpha,
484  double beta,
485  magmaDouble_ptr dy, magma_int_t incy );
486 
487 #ifdef COMPLEX
489  magma_uplo_t uplo, magma_int_t n,
490  double alpha,
493  double beta,
494  magmaDouble_ptr dy, magma_int_t incy );
495 #endif
496 
498  magma_uplo_t uplo, magma_int_t n,
499  double alpha,
502  double beta,
504  magmaDouble_ptr dwork, magma_int_t lwork );
505 
507  magma_uplo_t uplo, magma_int_t n,
508  double alpha,
511  double beta,
512  magmaDouble_ptr dy, magma_int_t incy );
513 
514  /*
515  * Level 3 BLAS
516  */
517 void magmablas_dgemm(
518  magma_trans_t transA, magma_trans_t transB,
520  double alpha,
523  double beta,
524  magmaDouble_ptr dC, magma_int_t lddc );
525 
528  double alpha,
529  const double *dA, magma_int_t lda,
530  const double *dB, magma_int_t ldb,
531  double beta,
532  double *dC, magma_int_t ldc );
533 
535  magma_trans_t transA, magma_trans_t transB,
537  double alpha,
540  double beta,
541  magmaDouble_ptr dC, magma_int_t lddc );
542 
544  magma_trans_t transA, magma_trans_t transB,
546  double alpha,
549  double beta,
550  magmaDouble_ptr dC, magma_int_t lddc );
551 
552 void magmablas_dsymm(
553  magma_side_t side, magma_uplo_t uplo,
555  double alpha,
558  double beta,
559  magmaDouble_ptr dC, magma_int_t lddc );
560 
561 void magmablas_dsymm(
562  magma_side_t side, magma_uplo_t uplo,
564  double alpha,
567  double beta,
568  magmaDouble_ptr dC, magma_int_t lddc );
569 
570 void magmablas_dsyrk(
571  magma_uplo_t uplo, magma_trans_t trans,
573  double alpha,
575  double beta,
576  magmaDouble_ptr dC, magma_int_t lddc );
577 
578 void magmablas_dsyrk(
579  magma_uplo_t uplo, magma_trans_t trans,
581  double alpha,
583  double beta,
584  magmaDouble_ptr dC, magma_int_t lddc );
585 
586 void magmablas_dsyr2k(
587  magma_uplo_t uplo, magma_trans_t trans,
589  double alpha,
592  double beta,
593  magmaDouble_ptr dC, magma_int_t lddc );
594 
595 void magmablas_dsyr2k(
596  magma_uplo_t uplo, magma_trans_t trans,
598  double alpha,
601  double beta,
602  magmaDouble_ptr dC, magma_int_t lddc );
603 
604 #ifndef COMPLEX
605 void magmablas_dtrsm(
606  magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
608  double alpha,
610  magmaDouble_ptr dB, magma_int_t lddb );
611 
613  magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
615  double alpha,
617  magmaDouble_ptr db, magma_int_t lddb,
618  int flag, magmaDouble_ptr d_dinvA, magmaDouble_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_dsetvector( n, hx_src, incx, dy_dst, incy ) \
635  magma_dsetvector_internal( n, hx_src, incx, dy_dst, incy, __func__, __FILE__, __LINE__ )
636 
637 #define magma_dgetvector( n, dx_src, incx, hy_dst, incy ) \
638  magma_dgetvector_internal( n, dx_src, incx, hy_dst, incy, __func__, __FILE__, __LINE__ )
639 
640 #define magma_dsetvector_async( n, hx_src, incx, dy_dst, incy, queue ) \
641  magma_dsetvector_async_internal( n, hx_src, incx, dy_dst, incy, queue, __func__, __FILE__, __LINE__ )
642 
643 #define magma_dgetvector_async( n, dx_src, incx, hy_dst, incy, queue ) \
644  magma_dgetvector_async_internal( n, dx_src, incx, hy_dst, incy, queue, __func__, __FILE__, __LINE__ )
645 
646 #define magma_dcopyvector_async( n, dx_src, incx, dy_dst, incy, queue ) \
647  magma_dcopyvector_async_internal( n, dx_src, incx, dy_dst, incy, queue, __func__, __FILE__, __LINE__ )
648 
649 #define magma_dcopyvector_async( n, dx_src, incx, dy_dst, incy, queue ) \
650  magma_dcopyvector_async_internal( n, dx_src, incx, dy_dst, incy, queue, __func__, __FILE__, __LINE__ )
651 
653  magma_int_t n,
654  double const* hx_src, magma_int_t incx,
655  magmaDouble_ptr dy_dst, magma_int_t incy,
656  const char* func, const char* file, int line );
657 
659  magma_int_t n,
660  magmaDouble_const_ptr dx_src, magma_int_t incx,
661  double* hy_dst, magma_int_t incy,
662  const char* func, const char* file, int line );
663 
667  magmaDouble_const_ptr dx_src, magma_int_t incx,
668  magmaDouble_ptr dy_dst, magma_int_t incy,
669  const char* func, const char* file, int line );
670 
672  magma_int_t n,
673  double const* hx_src, magma_int_t incx,
674  magmaDouble_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,
680  magmaDouble_const_ptr dx_src, magma_int_t incx,
681  double* hy_dst, magma_int_t incy,
682  magma_queue_t queue,
683  const char* func, const char* file, int line );
684 
688  magmaDouble_const_ptr dx_src, magma_int_t incx,
689  magmaDouble_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_dsetmatrix( m, n, hA_src, lda, dB_dst, lddb ) \
703  magma_dsetmatrix_internal( m, n, hA_src, lda, dB_dst, lddb, __func__, __FILE__, __LINE__ )
704 
705 #define magma_dgetmatrix( m, n, dA_src, ldda, hB_dst, ldb ) \
706  magma_dgetmatrix_internal( m, n, dA_src, ldda, hB_dst, ldb, __func__, __FILE__, __LINE__ )
707 
708 #define magma_dcopymatrix( m, n, dA_src, ldda, dB_dst, lddb ) \
709  magma_dcopymatrix_internal( m, n, dA_src, ldda, dB_dst, lddb, __func__, __FILE__, __LINE__ )
710 
711 #define magma_dsetmatrix_async( m, n, hA_src, lda, dB_dst, lddb, queue ) \
712  magma_dsetmatrix_async_internal( m, n, hA_src, lda, dB_dst, lddb, queue, __func__, __FILE__, __LINE__ )
713 
714 #define magma_dgetmatrix_async( m, n, dA_src, ldda, hB_dst, ldb, queue ) \
715  magma_dgetmatrix_async_internal( m, n, dA_src, ldda, hB_dst, ldb, queue, __func__, __FILE__, __LINE__ )
716 
717 #define magma_dcopymatrix_async( m, n, dA_src, ldda, dB_dst, lddb, queue ) \
718  magma_dcopymatrix_async_internal( m, n, dA_src, ldda, dB_dst, lddb, queue, __func__, __FILE__, __LINE__ )
719 
722  double const* hA_src, magma_int_t ldha,
723  magmaDouble_ptr dB_dst, magma_int_t lddb,
724  const char* func, const char* file, int line );
725 
728  magmaDouble_const_ptr dA_src, magma_int_t ldda,
729  double* hB_dst, magma_int_t ldhb,
730  const char* func, const char* file, int line );
731 
734  magmaDouble_const_ptr dA_src, magma_int_t ldda,
735  magmaDouble_ptr dB_dst, magma_int_t lddb,
736  const char* func, const char* file, int line );
737 
740  double const* hA_src, magma_int_t ldha,
741  magmaDouble_ptr dB_dst, magma_int_t lddb,
742  magma_queue_t queue,
743  const char* func, const char* file, int line );
744 
747  magmaDouble_const_ptr dA_src, magma_int_t ldda,
748  double* hB_dst, magma_int_t ldhb,
749  magma_queue_t queue,
750  const char* func, const char* file, int line );
751 
754  magmaDouble_const_ptr dA_src, magma_int_t ldda,
755  magmaDouble_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_dasum(
775  magma_int_t n,
777 
778 void magma_daxpy(
779  magma_int_t n,
780  double alpha,
782  magmaDouble_ptr dy, magma_int_t incy );
783 
784 void magma_dcopy(
785  magma_int_t n,
787  magmaDouble_ptr dy, magma_int_t incy );
788 
789 // in cublas_v2, result returned through output argument
790 double
791 magma_ddot(
792  magma_int_t n,
795 
796 // in cublas_v2, result returned through output argument
797 #ifdef COMPLEX
798 double
799 magma_ddotu(
800  magma_int_t n,
803 #endif
804 
805 // in cublas_v2, result returned through output argument
806 double magma_dnrm2(
807  magma_int_t n,
809 
810 void magma_drot(
811  magma_int_t n,
812  magmaDouble_ptr dx, magma_int_t incx,
813  magmaDouble_ptr dy, magma_int_t incy,
814  double dc, double ds );
815 
816 #ifdef COMPLEX
817 void magma_drot(
818  magma_int_t n,
819  magmaDouble_ptr dx, magma_int_t incx,
820  magmaDouble_ptr dy, magma_int_t incy,
821  double dc, double ds );
822 #endif
823 
824 #ifdef REAL
825 void magma_drotm(
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_drotmg(
834  magmaDouble_ptr param );
835 #endif
836 
837 void magma_dscal(
838  magma_int_t n,
839  double alpha,
840  magmaDouble_ptr dx, magma_int_t incx );
841 
842 void magma_dscal(
843  magma_int_t n,
844  double alpha,
845  magmaDouble_ptr dx, magma_int_t incx );
846 
847 void magma_dswap(
848  magma_int_t n,
849  magmaDouble_ptr dx, magma_int_t incx,
850  magmaDouble_ptr dy, magma_int_t incy );
851 
852 // ========================================
853 // Level 2 BLAS
854 
855 void magma_dgemv(
856  magma_trans_t transA,
858  double alpha,
861  double beta,
862  magmaDouble_ptr dy, magma_int_t incy );
863 
864 void magma_dger(
866  double alpha,
869  magmaDouble_ptr dA, magma_int_t ldda );
870 
871 #ifdef COMPLEX
872 void magma_dger(
874  double alpha,
877  magmaDouble_ptr dA, magma_int_t ldda );
878 #endif
879 
880 void magma_dsymv(
881  magma_uplo_t uplo,
882  magma_int_t n,
883  double alpha,
886  double beta,
887  magmaDouble_ptr dy, magma_int_t incy );
888 
889 void magma_dsyr(
890  magma_uplo_t uplo,
891  magma_int_t n,
892  double alpha,
894  magmaDouble_ptr dA, magma_int_t ldda );
895 
896 void magma_dsyr2(
897  magma_uplo_t uplo,
898  magma_int_t n,
899  double alpha,
902  magmaDouble_ptr dA, magma_int_t ldda );
903 
904 void magma_dtrmv(
905  magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
906  magma_int_t n,
908  magmaDouble_ptr dx, magma_int_t incx );
909 
910 void magma_dtrsv(
911  magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
912  magma_int_t n,
914  magmaDouble_ptr dx, magma_int_t incx );
915 
916 // ========================================
917 // Level 3 BLAS
918 
919 void magma_dgemm(
920  magma_trans_t transA, magma_trans_t transB,
922  double alpha,
925  double beta,
926  magmaDouble_ptr dC, magma_int_t lddc );
927 
928 void magma_dsymm(
929  magma_side_t side, magma_uplo_t uplo,
931  double alpha,
934  double beta,
935  magmaDouble_ptr dC, magma_int_t lddc );
936 
937 void magma_dsyrk(
938  magma_uplo_t uplo, magma_trans_t trans,
940  double alpha,
942  double beta,
943  magmaDouble_ptr dC, magma_int_t lddc );
944 
945 void magma_dsyr2k(
946  magma_uplo_t uplo, magma_trans_t trans,
948  double alpha,
951  double beta,
952  magmaDouble_ptr dC, magma_int_t lddc );
953 
954 #ifdef COMPLEX
955 void magma_dsymm(
956  magma_side_t side, magma_uplo_t uplo,
958  double alpha,
961  double beta,
962  magmaDouble_ptr dC, magma_int_t lddc );
963 
964 void magma_dsyrk(
965  magma_uplo_t uplo, magma_trans_t trans,
967  double alpha,
969  double beta,
970  magmaDouble_ptr dC, magma_int_t lddc );
971 
972 void magma_dsyr2k(
973  magma_uplo_t uplo, magma_trans_t trans,
975  double alpha,
978  double beta,
979  magmaDouble_ptr dC, magma_int_t lddc );
980 #endif
981 
982 void magma_dtrmm(
983  magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
985  double alpha,
987  magmaDouble_ptr dB, magma_int_t lddb );
988 
989 void magma_dtrsm(
990  magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag,
992  double alpha,
994  magmaDouble_ptr dB, magma_int_t lddb );
995 
996 #ifdef __cplusplus
997 }
998 #endif
999 
1000 #undef REAL
1001 
1002 #endif /* MAGMABLAS_D_H */
void magmablas_dnrm2_row_check_adjust(magma_int_t k, double tol, double *xnorm, double *xnorm2, double *c, magma_int_t ldc, double *lsticc)
void magmablas_dpermute_long3(magmaDouble_ptr dAT, magma_int_t ldda, const magma_int_t *ipiv, magma_int_t nb, magma_int_t ind)
void magmablas_dgemv(magma_trans_t trans, magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dx, magma_int_t incx, double beta, magmaDouble_ptr dy, magma_int_t incy)
void magma_dsyr(magma_uplo_t uplo, magma_int_t n, double alpha, magmaDouble_const_ptr dx, magma_int_t incx, magmaDouble_ptr dA, magma_int_t ldda)
void magma_dgetvector_async_internal(magma_int_t n, magmaDouble_const_ptr dx_src, magma_int_t incx, double *hy_dst, magma_int_t incy, magma_queue_t queue, const char *func, const char *file, int line)
magma_int_t magmablas_dsymv_mgpu_32_offset(char uplo, magma_int_t n, double alpha, double **A, magma_int_t lda, double **X, magma_int_t incx, double beta, double **Y, magma_int_t incy, double **work, magma_int_t lwork, magma_int_t num_gpus, magma_int_t nb, magma_int_t offset, magma_queue_t stream[][10])
void dzero_nbxnb_block(magma_int_t nb, magmaDouble_ptr dA, magma_int_t ldda)
void magma_dger(magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dx, magma_int_t incx, magmaDouble_const_ptr dy, magma_int_t incy, magmaDouble_ptr dA, magma_int_t ldda)
magma_int_t magmablas_dsymv_mgpu_offset(char uplo, magma_int_t n, double alpha, double **A, magma_int_t lda, double **X, magma_int_t incx, double beta, double **Y, magma_int_t incy, double **work, magma_int_t lwork, magma_int_t num_gpus, magma_int_t nb, magma_int_t offset, magma_queue_t stream[][10])
void magma_dscal(magma_int_t n, double alpha, magmaDouble_ptr dx, magma_int_t incx)
void magmablas_dswap(magma_int_t n, magmaDouble_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb)
magma_int_t magmablas_dsymv_mgpu(magma_int_t num_gpus, magma_int_t k, char uplo, magma_int_t n, magma_int_t nb, double alpha, double **da, magma_int_t ldda, magma_int_t offset, double **dx, magma_int_t incx, double beta, double **dy, magma_int_t incy, double **dwork, magma_int_t ldwork, double *work, double *w, magma_queue_t stream[][10])
void magmablas_dsymm_1gpu_old(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDouble_ptr dB[], magma_int_t lddb, double beta, magmaDouble_ptr dC[], magma_int_t lddc, double *C, magma_int_t ldc, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream)
void magmablas_dsymm_1gpu(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDouble_ptr dB[], magma_int_t lddb, double beta, magmaDouble_ptr dC[], magma_int_t lddc, double *C, magma_int_t ldc, magma_int_t ngpu, magma_int_t nb, magma_queue_t streams[][20], magma_int_t nstream)
char magma_diag_t
Definition: magma_types.h:379
void magmablas_dnrm2_check(magma_int_t m, magma_int_t num, double *da, magma_int_t ldda, double *dxnorm, double *lsticc)
void magma_dcopy(magma_int_t n, magmaDouble_const_ptr dx, magma_int_t incx, magmaDouble_ptr dy, magma_int_t incy)
void magmablas_dswapblk(magma_storev_t storev, magma_int_t n, magmaDouble_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb, magma_int_t i1, magma_int_t i2, const magma_int_t *ipiv, magma_int_t inci, magma_int_t offset)
void magmablas_dlaset_identity(magma_int_t m, magma_int_t n, magmaDouble_ptr dA, magma_int_t ldda)
void magma_dgetmatrix_1D_row_bcyclic(magma_int_t m, magma_int_t n, magmaDouble_ptr dA[], magma_int_t ldda, double *hA, magma_int_t lda, magma_int_t ngpu, magma_int_t nb)
void magmablas_dsymm(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, double beta, magmaDouble_ptr dC, magma_int_t lddc)
void magmablas_dtrsm(magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb)
void magmablas_dgeadd_batched(magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr const *dAarray, magma_int_t ldda, magmaDouble_ptr *dBarray, magma_int_t lddb, magma_int_t batchCount)
#define T(m)
Definition: zgeqrf_mc.cpp:14
magma_int_t magmablas_dsymv_sync(magma_int_t num_gpus, magma_int_t k, magma_int_t n, double *work, double *w, magma_queue_t stream[][10])
void magma_dtrsm(magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb)
void magma_dsetvector_internal(magma_int_t n, double const *hx_src, magma_int_t incx, magmaDouble_ptr dy_dst, magma_int_t incy, const char *func, const char *file, int line)
void magmablas_dlaset(magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDouble_ptr dA, magma_int_t ldda)
magma_int_t magmablas_dsymv2(magma_uplo_t uplo, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dX, magma_int_t incx, double beta, magmaDouble_ptr dY, magma_int_t incy, magmaDouble_ptr dwork, magma_int_t lwork)
double magma_dasum(magma_int_t n, magmaDouble_const_ptr dx, magma_int_t incx)
int magma_int_t
Definition: magmablas.h:12
void magma_dtrsv(magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dx, magma_int_t incx)
#define C(i, j)
void magmablas_dtrsm_work(magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr db, magma_int_t lddb, int flag, magmaDouble_ptr d_dinvA, magmaDouble_ptr dx)
void magma_dlarfgx_gpu(magma_int_t n, double *dx0, double *dx, double *dtau, double *dxnorm, double *ddx0, magma_int_t iter)
void magma_dsyr2k_mgpu(magma_int_t num_gpus, char uplo, char trans, magma_int_t nb, magma_int_t n, magma_int_t k, double alpha, double **db, magma_int_t lddb, magma_int_t boffset, double beta, double **dc, magma_int_t lddc, magma_int_t offset, magma_int_t num_streams, magma_queue_t streams[][10])
void magmablas_dlacpy_batched(magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDouble_const_ptr const *dAarray, magma_int_t ldda, magmaDouble_ptr *dBarray, magma_int_t lddb, magma_int_t batchCount)
void magmablas_dlaswp(magma_int_t n, magmaDouble_ptr dAT, magma_int_t ldda, magma_int_t i1, magma_int_t i2, const magma_int_t *ipiv, magma_int_t inci)
#define h_A(i, j)
#define dB(dev, i, j)
char magma_storev_t
Definition: magma_types.h:386
void magmablas_dnrm2_adjust(magma_int_t k, double *xnorm, double *c)
char magma_trans_t
Definition: magma_types.h:377
double * magmaDouble_ptr
Definition: magma_types.h:231
void magmablas_dsyrk(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, double beta, magmaDouble_ptr dC, magma_int_t lddc)
void magma_dsymv(magma_uplo_t uplo, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dx, magma_int_t incx, double beta, magmaDouble_ptr dy, magma_int_t incy)
void magma_drotm(magma_int_t n, magmaDouble_ptr dx, magma_int_t incx, magmaDouble_ptr dy, magma_int_t incy, magmaDouble_const_ptr param)
void magma_dlarfgtx_gpu(magma_int_t n, double *dx0, double *dx, double *dtau, double *dxnorm, double *dA, magma_int_t it, double *V, magma_int_t ldv, double *T, magma_int_t ldt, double *dwork)
void magma_dgetvector_internal(magma_int_t n, magmaDouble_const_ptr dx_src, magma_int_t incx, double *hy_dst, magma_int_t incy, const char *func, const char *file, int line)
double const * magmaDouble_const_ptr
Definition: magma_types.h:238
void magmablas_dlascl(char type, magma_int_t kl, magma_int_t ku, double cfrom, double cto, magma_int_t m, magma_int_t n, magmaDouble_ptr dA, magma_int_t ldda, magma_int_t *info)
double magmablas_dlansy(magma_norm_t norm, magma_uplo_t uplo, magma_int_t n, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dwork)
char magma_norm_t
Definition: magma_types.h:381
void magmablas_dsymm_mgpu(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDouble_ptr dB[], magma_int_t lddb, double beta, magmaDouble_ptr dC[], magma_int_t lddc, magmaDouble_ptr dwork[], magma_int_t lddwork, double *C, magma_int_t ldc, double *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)
magma_int_t magma_idamax(magma_int_t n, magmaDouble_const_ptr dx, magma_int_t incx)
#define dX(i, j)
#define dwork(dev, i, j)
void magmablas_dtranspose_inplace(magma_int_t n, magmaDouble_ptr dA, magma_int_t ldda)
char magma_side_t
Definition: magma_types.h:380
void magmablas_dlaswp2(magma_int_t n, magmaDouble_ptr dAT, magma_int_t ldda, magma_int_t i1, magma_int_t i2, const magma_int_t *d_ipiv)
magma_err_t magma_dcopyvector_internal(magma_int_t m, magma_int_t n, magmaDouble_const_ptr dx_src, magma_int_t incx, magmaDouble_ptr dy_dst, magma_int_t incy, const char *func, const char *file, int line)
void magmablas_dgemm_fermi80(magma_trans_t transA, magma_trans_t transB, magma_int_t m, magma_int_t n, magma_int_t k, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, double beta, magmaDouble_ptr dC, magma_int_t lddc)
void magmablas_dsymmetrize_tiles(magma_uplo_t uplo, magma_int_t m, magmaDouble_ptr dA, magma_int_t ldda, magma_int_t ntile, magma_int_t mstride, magma_int_t nstride)
void magma_drotmg(magmaDouble_ptr d1, magmaDouble_ptr d2, magmaDouble_ptr x1, magmaDouble_const_ptr y1, magmaDouble_ptr param)
void magmablas_dgeadd(magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb)
void magmablas_dlacpy(magma_uplo_t uplo, magma_int_t m, magma_int_t n, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb)
void magma_dlarfx_gpu(magma_int_t m, magma_int_t n, double *v, double *tau, double *c, magma_int_t ldc, double *xnorm, double *dT, magma_int_t iter, double *work)
#define dAT(i, j)
void magma_dgetmatrix_internal(magma_int_t m, magma_int_t n, magmaDouble_const_ptr dA_src, magma_int_t ldda, double *hB_dst, magma_int_t ldhb, const char *func, const char *file, int line)
void magmablas_dtranspose(magmaDouble_ptr odata, magma_int_t ldo, magmaDouble_const_ptr idata, magma_int_t ldi, magma_int_t m, magma_int_t n)
magma_int_t magma_ddtohpo(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, double *a, magma_int_t lda, double *work[], magma_int_t ldda, magma_queue_t stream[][3], magma_int_t *info)
void magma_dtrmv(magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t n, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dx, magma_int_t incx)
#define dY(d, i, j)
void magmablas_dtranspose2s(magmaDouble_ptr odata, magma_int_t ldo, magmaDouble_const_ptr idata, magma_int_t ldi, magma_int_t m, magma_int_t n, magma_queue_t stream)
#define MagmaMaxGPUs
Definition: magma_types.h:255
magma_int_t magma_idamin(magma_int_t n, magmaDouble_const_ptr dx, magma_int_t incx)
void magma_drot(magma_int_t n, magmaDouble_ptr dx, magma_int_t incx, magmaDouble_ptr dy, magma_int_t incy, double dc, double ds)
void magmablas_dsyr2k_mgpu_spec(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, double alpha, magmaDouble_ptr dA[], magma_int_t lda, magma_int_t aoff, magmaDouble_ptr dB[], magma_int_t ldb, magma_int_t boff, double beta, magmaDouble_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)
double cpu_gpu_ddiff(magma_int_t m, magma_int_t n, const double *hA, magma_int_t lda, magmaDouble_const_ptr dA, magma_int_t ldda)
void magmablas_dsyr2k(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, double beta, magmaDouble_ptr dC, magma_int_t lddc)
void magmablas_dsyr2k_mgpu2(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, double alpha, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t aoff, magmaDouble_ptr dB[], magma_int_t lddb, magma_int_t boff, double beta, magmaDouble_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_dsetmatrix_1D_row_bcyclic(magma_int_t m, magma_int_t n, const double *hA, magma_int_t lda, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t ngpu, magma_int_t nb)
void magmablas_dgemm_fermi64(magma_trans_t transA, magma_trans_t transB, magma_int_t m, magma_int_t n, magma_int_t k, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, double beta, magmaDouble_ptr dC, magma_int_t lddc)
void magmablas_dnrm2_cols(magma_int_t m, magma_int_t n, magmaDouble_ptr dA, magma_int_t ldda, magmaDouble_ptr dxnorm)
magma_int_t magma_dhtodpo(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, double *h_A, magma_int_t lda, double *d_lA[], magma_int_t ldda, magma_queue_t stream[][3], magma_int_t *info)
void magmablas_dpermute_long2(magma_int_t n, magmaDouble_ptr dAT, magma_int_t ldda, magma_int_t *ipiv, magma_int_t nb, magma_int_t ind)
void magma_dsetmatrix_async_internal(magma_int_t m, magma_int_t n, double const *hA_src, magma_int_t ldha, magmaDouble_ptr dB_dst, magma_int_t lddb, magma_queue_t queue, const char *func, const char *file, int line)
void magmablas_dgemm_reduce(magma_int_t m, magma_int_t n, magma_int_t k, double alpha, const double *dA, magma_int_t lda, const double *dB, magma_int_t ldb, double beta, double *dC, magma_int_t ldc)
magma_err_t magma_dcopyvector_async_internal(magma_int_t m, magma_int_t n, magmaDouble_const_ptr dx_src, magma_int_t incx, magmaDouble_ptr dy_dst, magma_int_t incy, magma_queue_t queue, const char *func, const char *file, int line)
#define Y(i, j)
double magma_dnrm2(magma_int_t n, magmaDouble_const_ptr dx, magma_int_t incx)
void magmablas_dsyr2k_mgpu_spec325(magma_uplo_t uplo, magma_trans_t trans, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr dVIN[], magma_int_t lddv, magma_int_t voff, magmaDouble_ptr dWIN[], magma_int_t lddw, magma_int_t woff, double beta, magmaDouble_ptr dC[], magma_int_t lddc, magma_int_t offset, magmaDouble_ptr dwork[], magma_int_t lndwork, magma_int_t ngpu, magma_int_t nb, double **harray[], magmaDouble_ptr *darray[], magma_queue_t streams[][20], magma_int_t nstream, magma_event_t redevents[][MagmaMaxGPUs *MagmaMaxGPUs+10], magma_int_t nbevents)
void magma_dcopymatrix_async_internal(magma_int_t m, magma_int_t n, magmaDouble_const_ptr dA_src, magma_int_t ldda, magmaDouble_ptr dB_dst, magma_int_t lddb, magma_queue_t queue, const char *func, const char *file, int line)
void magmablas_dswapdblk(magma_int_t n, magma_int_t nb, magmaDouble_ptr dA, magma_int_t ldda, magma_int_t inca, magmaDouble_ptr dB, magma_int_t lddb, magma_int_t incb)
void magma_dsyr2k(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, double beta, magmaDouble_ptr dC, magma_int_t lddc)
#define A(i, j)
Definition: cprint.cpp:16
void magma_dgemm(magma_trans_t transA, magma_trans_t transB, magma_int_t m, magma_int_t n, magma_int_t k, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, double beta, magmaDouble_ptr dC, magma_int_t lddc)
void magma_daxpy(magma_int_t n, double alpha, magmaDouble_const_ptr dx, magma_int_t incx, magmaDouble_ptr dy, magma_int_t incy)
void magmablas_dsymmetrize(magma_uplo_t uplo, magma_int_t m, magmaDouble_ptr dA, magma_int_t ldda)
void magmablas_dsymm_mgpu_spec(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDouble_ptr dB[], magma_int_t lddb, double beta, magmaDouble_ptr dC[], magma_int_t lddc, magmaDouble_ptr dwork[], magma_int_t lddwork, double *C, magma_int_t ldc, double *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_dgetmatrix_async_internal(magma_int_t m, magma_int_t n, magmaDouble_const_ptr dA_src, magma_int_t ldda, double *hB_dst, magma_int_t ldhb, magma_queue_t queue, const char *func, const char *file, int line)
void magmablas_dgemm(magma_trans_t transA, magma_trans_t transB, magma_int_t m, magma_int_t n, magma_int_t k, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, double beta, magmaDouble_ptr dC, magma_int_t lddc)
void magma_dsymm(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dB, magma_int_t lddb, double beta, magmaDouble_ptr dC, magma_int_t lddc)
void magma_dsetvector_async_internal(magma_int_t n, double const *hx_src, magma_int_t incx, magmaDouble_ptr dy_dst, magma_int_t incy, magma_queue_t queue, const char *func, const char *file, int line)
char magma_uplo_t
Definition: magma_types.h:378
double magmablas_dlange(magma_norm_t norm, magma_int_t m, magma_int_t n, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dwork)
void magma_dsyr2(magma_uplo_t uplo, magma_int_t n, double alpha, magmaDouble_const_ptr dx, magma_int_t incx, magmaDouble_const_ptr dy, magma_int_t incy, magmaDouble_ptr dA, magma_int_t ldda)
#define dC(dev, i, j)
magma_int_t magma_dhtodhe(magma_int_t num_gpus, char *uplo, magma_int_t n, magma_int_t nb, double *a, magma_int_t lda, double **dwork, magma_int_t ldda, magma_queue_t stream[][10], magma_int_t *info)
void magmablas_dtranspose2(magmaDouble_ptr odata, magma_int_t ldo, magmaDouble_const_ptr idata, magma_int_t ldi, magma_int_t m, magma_int_t n)
void magmablas_dsymm_mgpu_spec33(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDouble_ptr dB[], magma_int_t lddb, double beta, magmaDouble_ptr dC[], magma_int_t lddc, magmaDouble_ptr dVIN[], magma_int_t lddv, magma_int_t voffst, magmaDouble_ptr dwork[], magma_int_t lddwork, double *C, magma_int_t ldc, double *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)
int magma_err_t
Definition: magma_types.h:23
double magma_ddot(magma_int_t n, magmaDouble_const_ptr dx, magma_int_t incx, magmaDouble_const_ptr dy, magma_int_t incy)
void magma_dlarfbx_gpu(magma_int_t m, magma_int_t k, double *V, magma_int_t ldv, double *dT, magma_int_t ldt, double *c, double *dwork)
void magmablas_dsyr2k_mgpu_spec324(magma_uplo_t uplo, magma_trans_t trans, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr dVIN[], magma_int_t lddv, magma_int_t voff, magmaDouble_ptr dWIN[], magma_int_t lddw, magma_int_t woff, double beta, magmaDouble_ptr dC[], magma_int_t lddc, magma_int_t offset, magmaDouble_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)
#define dx(d, j)
void magmablas_dsetmatrix_transpose_mgpu(magma_int_t ngpu, magma_queue_t stream[][2], const double *hA, magma_int_t lda, magmaDouble_ptr dAT[], magma_int_t ldda, magmaDouble_ptr dB[], magma_int_t lddb, magma_int_t m, magma_int_t n, magma_int_t nb)
magma_int_t magmablas_dsymv(magma_uplo_t uplo, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dx, magma_int_t incx, double beta, magmaDouble_ptr dy, magma_int_t incy)
void magma_dsyrk(magma_uplo_t uplo, magma_trans_t trans, magma_int_t n, magma_int_t k, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, double beta, magmaDouble_ptr dC, magma_int_t lddc)
#define dT(m)
void magmablas_dsymm_mgpu_com(magma_side_t side, magma_uplo_t uplo, magma_int_t m, magma_int_t n, double alpha, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t offset, magmaDouble_ptr dB[], magma_int_t lddb, double beta, magmaDouble_ptr dC[], magma_int_t lddc, magmaDouble_ptr dwork[], magma_int_t lddwork, double *C, magma_int_t ldc, double *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: dsymm_mgpu.cpp:20
void magma_dtrmm(magma_side_t side, magma_uplo_t uplo, magma_trans_t trans, magma_diag_t diag, magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_ptr dB, magma_int_t lddb)
void magmablas_dlaswpx(magma_int_t n, magmaDouble_ptr dAT, magma_int_t ldx, magma_int_t ldy, magma_int_t i1, magma_int_t i2, const magma_int_t *ipiv, magma_int_t inci)
void magmablas_dgetmatrix_transpose(magma_int_t m, magma_int_t n, magmaDouble_const_ptr dAT, magma_int_t ldda, double *hA, magma_int_t lda, magmaDouble_ptr dwork, magma_int_t lddwork, magma_int_t nb)
void dzero_32x32_block(magmaDouble_ptr dA, magma_int_t ldda)
void magma_dgemv(magma_trans_t transA, magma_int_t m, magma_int_t n, double alpha, magmaDouble_const_ptr dA, magma_int_t ldda, magmaDouble_const_ptr dx, magma_int_t incx, double beta, magmaDouble_ptr dy, magma_int_t incy)
void magma_dgetmatrix_1D_col_bcyclic(magma_int_t m, magma_int_t n, magmaDouble_ptr dA[], magma_int_t ldda, double *hA, magma_int_t lda, magma_int_t ngpu, magma_int_t nb)
void magmablas_dgetmatrix_transpose_mgpu(magma_int_t ngpu, magma_queue_t stream[][2], magmaDouble_ptr dAT[], magma_int_t ldda, double *hA, magma_int_t lda, magmaDouble_ptr dB[], magma_int_t lddb, magma_int_t m, magma_int_t n, magma_int_t nb)
void magma_dcopymatrix_internal(magma_int_t m, magma_int_t n, magmaDouble_const_ptr dA_src, magma_int_t ldda, magmaDouble_ptr dB_dst, magma_int_t lddb, const char *func, const char *file, int line)
void magmablas_dsetmatrix_transpose(magma_int_t m, magma_int_t n, const double *hA, magma_int_t lda, magmaDouble_ptr dAT, magma_int_t ldda, magmaDouble_ptr dwork, magma_int_t lddwork, magma_int_t nb)
void magma_dsetmatrix_internal(magma_int_t m, magma_int_t n, double const *hA_src, magma_int_t ldha, magmaDouble_ptr dB_dst, magma_int_t lddb, const char *func, const char *file, int line)
void magma_dsetmatrix_1D_col_bcyclic(magma_int_t m, magma_int_t n, const double *hA, magma_int_t lda, magmaDouble_ptr dA[], magma_int_t ldda, magma_int_t ngpu, magma_int_t nb)
#define V(m)
#define dA(dev, i, j)
void magma_dswap(magma_int_t n, magmaDouble_ptr dx, magma_int_t incx, magmaDouble_ptr dy, magma_int_t incy)