17 #include "runtime/starpu/chameleon_starpu.h" 21 #include "runtime/starpu/runtime_codelets.h" 22 ZCODELETS_HEADER(gytlr)
30 const MORSE_desc_t *
AUV,
31 const MORSE_desc_t *Ark,
36 int bigM,
int m0,
int n0,
unsigned long long int seed,
37 int maxrank,
double tol,
39 const MORSE_desc_t *Dense
42 struct starpu_codelet *codelet = &cl_zgytlr;
44 void (*callback)(
void*) = NULL;
47 MORSE_BEGIN_ACCESS_DECLARATION;
48 MORSE_ACCESS_W(
AUV, Am, An);
49 MORSE_ACCESS_W(Dense, Am, An);
50 MORSE_ACCESS_W(Ark, Am, An);
51 MORSE_END_ACCESS_DECLARATION;
56 starpu_mpi_codelet(codelet),
57 STARPU_VALUE, &m,
sizeof(
int),
58 STARPU_VALUE, &n,
sizeof(
int),
59 STARPU_VALUE, &nAUV,
sizeof(
int),
60 STARPU_W, RTBLKADDR(
AUV,
double, Am, An),
61 STARPU_W, RTBLKADDR(Ark,
double, Am, An),
62 STARPU_R, RTBLKADDR(Dense,
double, Am, An),
63 STARPU_VALUE, &lda,
sizeof(
int),
64 STARPU_VALUE, &ldu,
sizeof(
int),
65 STARPU_VALUE, &ldv,
sizeof(
int),
66 STARPU_VALUE, &bigM,
sizeof(
int),
67 STARPU_VALUE, &Am,
sizeof(
int),
68 STARPU_VALUE, &An,
sizeof(
int),
69 STARPU_VALUE, &seed,
sizeof(
unsigned long long int),
70 STARPU_VALUE, &maxrank,
sizeof(
int),
71 STARPU_VALUE, &tol,
sizeof(
double),
72 STARPU_VALUE, &compress_diag,
sizeof(
int),
73 STARPU_PRIORITY, options->priority,
74 STARPU_CALLBACK, callback,
75 #
if defined(CHAMELEON_CODELETS_HAVE_NAME)
76 STARPU_NAME,
"hcore_zgytlr",
83 #if !defined(CHAMELEON_SIMULATION) 84 static void cl_zgytlr_cpu_func(
void *descr[],
void *cl_arg)
99 unsigned long long int seed;
104 AUV = (
double *)STARPU_MATRIX_GET_PTR(descr[0]);
105 Ark = (
double *)STARPU_MATRIX_GET_PTR(descr[1]);
106 Dense = (
double *)STARPU_MATRIX_GET_PTR(descr[2]);
109 starpu_codelet_unpack_args(cl_arg, &m, &n, &nAUV, &lda, &ldu, &ldv, &bigM, &m0, &n0, &seed, &maxrank, &tol, &compress_diag );
114 size_t nelm_AU = (size_t)ldu * (
size_t)nAU;
115 double *AV = &(
AUV[nelm_AU]);
137 CODELETS_CPU(zgytlr, 3, cl_zgytlr_cpu_func)
void HICMA_TASK_zgytlr(const MORSE_option_t *options, int m, int n, const MORSE_desc_t *AUV, const MORSE_desc_t *Ark, int Am, int An, int lda, int ldu, int ldv, int bigM, int m0, int n0, unsigned long long int seed, int maxrank, double tol, int compress_diag, const MORSE_desc_t *Dense)
void HCORE_zgytlr(int m, int n, double *AU, double *AV, double *AD, double *Ark, int lda, int ldu, int ldv, int bigM, int ii, int jj, unsigned long long int seed, int maxrank, double tol, int compress_diag, double *Dense)