PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|
Go to the source code of this file.
Functions | |
void | CORE_sshiftw (int s, int cl, int m, int n, int L, float *A, float *W) |
void | QUARK_CORE_sshiftw (Quark *quark, Quark_Task_Flags *task_flags, int s, int cl, int m, int n, int L, float *A, float *W) |
void | CORE_sshiftw_quark (Quark *quark) |
void | CORE_sshift (int s, int m, int n, int L, float *A) |
void | QUARK_CORE_sshift (Quark *quark, Quark_Task_Flags *task_flags, int s, int m, int n, int L, float *A) |
void | CORE_sshift_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.
s Tue Nov 22 14:35:21 2011
Definition in file core_sshift.c.
void CORE_sshift | ( | int | s, |
int | m, | ||
int | n, | ||
int | L, | ||
float * | A | ||
) |
CORE_sshift Shift a cycle of block. Same as core_sshiftw 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_sshift.c.
References CORE_sshiftw(), and W.
void CORE_sshift_quark | ( | Quark * | quark | ) |
Definition at line 208 of file core_sshift.c.
References A, CORE_sshiftw(), L, quark_unpack_args_6, and W.
void CORE_sshiftw | ( | int | s, |
int | cl, | ||
int | m, | ||
int | n, | ||
int | L, | ||
float * | A, | ||
float * | W | ||
) |
CORE_sshiftw 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_sshift.c.
References L.
void CORE_sshiftw_quark | ( | Quark * | quark | ) |
Definition at line 130 of file core_sshift.c.
References A, CORE_sshiftw(), L, quark_unpack_args_7, and W.
void QUARK_CORE_sshift | ( | Quark * | quark, |
Quark_Task_Flags * | task_flags, | ||
int | s, | ||
int | m, | ||
int | n, | ||
int | L, | ||
float * | A | ||
) |
Definition at line 187 of file core_sshift.c.
References CORE_sshift_quark(), DAG_CORE_SHIFT, GATHERV, INOUT, QUARK_Insert_Task(), SCRATCH, and VALUE.
void QUARK_CORE_sshiftw | ( | Quark * | quark, |
Quark_Task_Flags * | task_flags, | ||
int | s, | ||
int | cl, | ||
int | m, | ||
int | n, | ||
int | L, | ||
float * | A, | ||
float * | W | ||
) |
Definition at line 108 of file core_sshift.c.
References CORE_sshiftw_quark(), DAG_CORE_SHIFTW, INOUT, INPUT, QUARK_Insert_Task(), and VALUE.