17 #include "runtime/starpu/chameleon_starpu.h" 21 #include "runtime/starpu/runtime_codelets.h" 22 ZCODELETS_HEADER(hagcm)
31 const MORSE_desc_t *
AUV,
32 const MORSE_desc_t *Ark,
36 int maxrank,
double tol
39 struct starpu_codelet *codelet = &cl_zhagcm;
41 void (*callback)(
void*) = NULL;
44 MORSE_BEGIN_ACCESS_DECLARATION;
45 MORSE_ACCESS_W(
AUV, Am, An);
46 MORSE_ACCESS_W(Ark, Am, An);
47 MORSE_END_ACCESS_DECLARATION;
52 starpu_mpi_codelet(codelet),
53 STARPU_VALUE, &m,
sizeof(
int),
54 STARPU_VALUE, &n,
sizeof(
int),
55 STARPU_VALUE, &nAUV,
sizeof(
int),
56 STARPU_W, RTBLKADDR(
AUV,
double, Am, An),
57 STARPU_W, RTBLKADDR(Ark,
double, Am, An),
58 STARPU_VALUE, &ldu,
sizeof(
int),
59 STARPU_VALUE, &ldv,
sizeof(
int),
60 STARPU_VALUE, &Am,
sizeof(
int),
61 STARPU_VALUE, &An,
sizeof(
int),
62 STARPU_VALUE, &maxrank,
sizeof(
int),
63 STARPU_VALUE, &tol,
sizeof(
double),
64 STARPU_PRIORITY, options->priority,
65 STARPU_CALLBACK, callback,
66 #
if defined(CHAMELEON_CODELETS_HAVE_NAME)
67 STARPU_NAME,
"hcore_zhagcm",
74 #if !defined(CHAMELEON_SIMULATION) 75 static void cl_zhagcm_cpu_func(
void *descr[],
void *cl_arg)
85 int tile_column_index;
89 AUV = (
double *)STARPU_MATRIX_GET_PTR(descr[0]);
90 Ark = (
double *)STARPU_MATRIX_GET_PTR(descr[1]);
93 starpu_codelet_unpack_args(cl_arg, &m, &n, &nAUV, &ldu, &ldv, &tile_row_index, &tile_column_index, &maxrank, &tol);
98 size_t nelm_AU = (size_t)ldu * (
size_t)nAU;
99 double *AV = &(
AUV[nelm_AU]);
108 tile_row_index, tile_column_index,
117 CODELETS_CPU(zhagcm, 2, cl_zhagcm_cpu_func)
void HCORE_zhagcm(int m, int n, double *AU, double *AV, double *Ark, int ldu, int ldv, int tile_row_index, int tile_column_index, int maxrank, double tol)
void HICMA_TASK_zhagcm(const MORSE_option_t *options, int m, int n, const MORSE_desc_t *AUV, const MORSE_desc_t *Ark, int Am, int An, int ldu, int ldv, int maxrank, double tol)