|
PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|

Go to the source code of this file.
Functions | |
| void | CORE_dshiftw (int s, int cl, int m, int n, int L, double *A, double *W) |
| void | QUARK_CORE_dshiftw (Quark *quark, Quark_Task_Flags *task_flags, int s, int cl, int m, int n, int L, double *A, double *W) |
| void | CORE_dshiftw_quark (Quark *quark) |
| void | CORE_dshift (int s, int m, int n, int L, double *A) |
| void | QUARK_CORE_dshift (Quark *quark, Quark_Task_Flags *task_flags, int s, int m, int n, int L, double *A) |
| void | CORE_dshift_quark (Quark *quark) |
PLASMA InPlaceTransformation module PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver
This work is the implementation of an inplace transformation based on the GKK algorithm by Gustavson, Karlsson, Kagstrom and its fortran implementation.
d Tue Nov 22 14:35:21 2011
Definition in file core_dshift.c.
| void CORE_dshift | ( | int | s, |
| int | m, | ||
| int | n, | ||
| int | L, | ||
| double * | A | ||
| ) |
CORE_dshift Shift a cycle of block. Same as core_dshiftw but you don't need to provide the workspace. As a matter of fact, the cycle cannot be split anymore to keep data coherency.
| [in] | s | Start value in the cycle |
| [in] | m | Number of lines of tile A |
| [in] | n | Number of columns of tile A |
| [in] | L | Length of each block of data to move |
| [in,out] | A | Matrix of size m-by-n with each element of size L. On exit, A = A', where A' contains the permutations |
Definition at line 175 of file core_dshift.c.
References CORE_dshiftw(), and W.

| void CORE_dshift_quark | ( | Quark * | quark | ) |
Definition at line 208 of file core_dshift.c.
References A, CORE_dshiftw(), L, quark_unpack_args_6, and W.


| void CORE_dshiftw | ( | int | s, |
| int | cl, | ||
| int | m, | ||
| int | n, | ||
| int | L, | ||
| double * | A, | ||
| double * | W | ||
| ) |
CORE_dshiftw Shift a linear chain of block using a supplied workspace by following the cycle defined by: k_(i+1) = (k_i * m) % q;
| [in] | s | Start value in the cycle |
| [in] | cl | Cycle length if cl == 0, all the permutations from the cycle are done else the cycle is split onto several threads and the number of permutation to do has to be specified to not get overlap |
| [in] | m | Number of lines of tile A |
| [in] | n | Number of columns of tile A |
| [in] | L | Length of each block of data to move |
| [in,out] | A | Matrix of size m-by-n with each element of size L. On exit, A = A', where A' contains the permutations |
| [in] | W | Array of size L. On entry, must contain: W(:) = A(s*L:s*L+L-1) |
Definition at line 66 of file core_dshift.c.
References L.

| void CORE_dshiftw_quark | ( | Quark * | quark | ) |
Definition at line 130 of file core_dshift.c.
References A, CORE_dshiftw(), L, quark_unpack_args_7, and W.


| void QUARK_CORE_dshift | ( | Quark * | quark, |
| Quark_Task_Flags * | task_flags, | ||
| int | s, | ||
| int | m, | ||
| int | n, | ||
| int | L, | ||
| double * | A | ||
| ) |
Definition at line 187 of file core_dshift.c.
References CORE_dshift_quark(), DAG_CORE_SHIFT, GATHERV, INOUT, QUARK_Insert_Task(), SCRATCH, and VALUE.


| void QUARK_CORE_dshiftw | ( | Quark * | quark, |
| Quark_Task_Flags * | task_flags, | ||
| int | s, | ||
| int | cl, | ||
| int | m, | ||
| int | n, | ||
| int | L, | ||
| double * | A, | ||
| double * | W | ||
| ) |
Definition at line 108 of file core_dshift.c.
References CORE_dshiftw_quark(), DAG_CORE_SHIFTW, INOUT, INPUT, QUARK_Insert_Task(), and VALUE.
