Commit 51e0bc7a authored by Mathieu Faverge's avatar Mathieu Faverge

Merge branch 'parsec/update' into 'master'

Update Parsec directory such that it compiles

 
 - Add new codelets required for two sided reduction
 - Update interface
 - Fix compilation issue in codelet_zbuild

See merge request !2
parents d13b7e8a 78a3c377
......@@ -27,6 +27,7 @@
#
###
cmake_minimum_required(VERSION 2.8)
# check if magma_dgetrf_incpiv_gpu is accessible in libmagma and activate it in chameleon
if ( CBLAS_FOUND AND LAPACKE_FOUND AND LAPACK_FOUND AND CUDA_FOUND AND CUDA_CUBLAS_LIBRARIES AND MAGMA_FOUND )
......@@ -73,10 +74,10 @@ precisions_rules_py(RUNTIME_COMMON_GENERATED "${ZSRC}"
TARGETDIR "control")
set(RUNTIME_COMMON
control/runtime_control.c
control/runtime_async.c
control/runtime_context.c
control/runtime_control.c
control/runtime_descriptor.c
control/runtime_async.c
control/runtime_options.c
control/runtime_profiling.c
codelets/codelet_dataflush.c
......@@ -109,6 +110,7 @@ set(ZSRC
# LAPACK
##################
codelets/codelet_zgeadd.c
codelets/codelet_zlascal.c
codelets/codelet_zgelqt.c
codelets/codelet_zgeqrt.c
codelets/codelet_zgessm.c
......@@ -116,6 +118,8 @@ set(ZSRC
codelets/codelet_zgetrf.c
codelets/codelet_zgetrf_incpiv.c
codelets/codelet_zgetrf_nopiv.c
codelets/codelet_zhe2ge.c
codelets/codelet_zherfb.c
codelets/codelet_zhessq.c
codelets/codelet_zlacpy.c
codelets/codelet_zlange.c
......@@ -124,6 +128,7 @@ set(ZSRC
codelets/codelet_zlantr.c
codelets/codelet_zlaset2.c
codelets/codelet_zlaset.c
codelets/codelet_zlatro.c
codelets/codelet_zlauum.c
codelets/codelet_zplghe.c
codelets/codelet_zplgsy.c
......@@ -140,6 +145,8 @@ set(ZSRC
codelets/codelet_ztslqt.c
codelets/codelet_ztsmlq.c
codelets/codelet_ztsmqr.c
codelets/codelet_ztsmlq_hetra1.c
codelets/codelet_ztsmqr_hetra1.c
codelets/codelet_ztsqrt.c
codelets/codelet_ztstrf.c
codelets/codelet_zttlqt.c
......@@ -153,7 +160,6 @@ set(ZSRC
##################
codelets/codelet_zbuild.c
)
list(REMOVE_DUPLICATES ZSRC)
precisions_rules_py(RUNTIME_SRCS_GENERATED "${ZSRC}"
PRECISIONS "${CHAMELEON_PRECISION}"
......@@ -171,9 +177,9 @@ set_property(TARGET chameleon_parsec PROPERTY LINKER_LANGUAGE Fortran)
set_property(TARGET chameleon_parsec PROPERTY INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
target_link_libraries(chameleon_parsec coreblas ${PARSEC_LIBRARIES_DEP})
if(CHAMELEON_USE_CUDA OR CHAMELEON_USE_MAGMA)
if(CHAMELEON_USE_CUDA)
target_link_libraries(chameleon_parsec cudablas)
endif(CHAMELEON_USE_CUDA OR CHAMELEON_USE_MAGMA)
endif(CHAMELEON_USE_CUDA)
add_dependencies(chameleon_parsec
chameleon_include
......@@ -182,6 +188,10 @@ add_dependencies(chameleon_parsec
runtime_parsec_include
)
if (CHAMELEON_USE_CUDA AND NOT CHAMELEON_SIMULATION)
add_dependencies(chameleon_starpu cudablas_include)
endif()
# installation
# ------------
install(TARGETS chameleon_parsec
......
......@@ -23,7 +23,8 @@
#include "runtime/parsec/include/morse_parsec.h"
static int
CORE_dzasum_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
CORE_dzasum_parsec(dague_execution_unit_t *context,
dague_execution_context_t *this_task)
{
MORSE_enum *storev;
MORSE_enum *uplo;
......@@ -33,15 +34,15 @@ CORE_dzasum_parsec(dague_execution_unit_t *context, dague_execution_context_t *t
int *lda;
double *work;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &storev,
UNPACK_VALUE, &uplo,
UNPACK_VALUE, &M,
UNPACK_VALUE, &N,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &work
);
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &storev,
UNPACK_VALUE, &uplo,
UNPACK_VALUE, &M,
UNPACK_VALUE, &N,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &work );
CORE_dzasum(*storev, *uplo, *M, *N, A, *lda, work);
......@@ -55,13 +56,14 @@ void MORSE_TASK_dzasum(const MORSE_option_t *options,
{
dague_dtd_handle_t* DAGUE_dtd_handle = (dague_dtd_handle_t *)(options->sequence->schedopt);
insert_task_generic_fptr(DAGUE_dtd_handle, CORE_dzasum_parsec, "zasum",
sizeof(MORSE_enum), &storev, VALUE,
sizeof(MORSE_enum), &uplo, VALUE,
sizeof(int), &M, VALUE,
sizeof(int), &N, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT | REGION_FULL,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( B, double, Bm, Bn ), INOUT | REGION_FULL,
0);
dague_insert_task(
DAGUE_dtd_handle, CORE_dzasum_parsec, "zasum",
sizeof(MORSE_enum), &storev, VALUE,
sizeof(MORSE_enum), &uplo, VALUE,
sizeof(int), &M, VALUE,
sizeof(int), &N, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT | REGION_FULL,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( B, double, Bm, Bn ), INOUT | REGION_FULL,
0);
}
......@@ -32,15 +32,14 @@ CORE_zaxpy_parsec(dague_execution_unit_t *context, dague_execution_context_t *th
MORSE_Complex64_t *B;
int *incB;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &M,
UNPACK_VALUE, &alpha,
UNPACK_DATA, &A,
UNPACK_VALUE, &incA,
UNPACK_DATA, &B,
UNPACK_VALUE, &incB
);
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &M,
UNPACK_VALUE, &alpha,
UNPACK_DATA, &A,
UNPACK_VALUE, &incA,
UNPACK_DATA, &B,
UNPACK_VALUE, &incB );
CORE_zaxpy(*M, *alpha, A, *incA, B, *incB);
......@@ -54,12 +53,13 @@ void MORSE_TASK_zaxpy(const MORSE_option_t *options,
{
dague_dtd_handle_t* DAGUE_dtd_handle = (dague_dtd_handle_t *)(options->sequence->schedopt);
insert_task_generic_fptr(DAGUE_dtd_handle, CORE_zaxpy_parsec, "axpy",
sizeof(int), &M, VALUE,
sizeof(MORSE_Complex64_t), alpha, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT | REGION_FULL,
sizeof(int), &incA, VALUE,
PASSED_BY_REF, RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT | REGION_FULL,
sizeof(int), &incB, VALUE,
0);
dague_insert_task(
DAGUE_dtd_handle, CORE_zaxpy_parsec, "axpy",
sizeof(int), &M, VALUE,
sizeof(MORSE_Complex64_t), &alpha, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT | REGION_FULL,
sizeof(int), &incA, VALUE,
PASSED_BY_REF, RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT | REGION_FULL,
sizeof(int), &incB, VALUE,
0);
}
......@@ -24,28 +24,28 @@
**/
#include "runtime/parsec/include/morse_parsec.h"
static int
CORE_zbuild_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
static inline int
CORE_zbuild_parsec(dague_execution_unit_t *context,
dague_execution_context_t *this_task)
{
MORSE_Complex64_t *A;
int *lda;
void *user_data;
void (*user_build_callback)(int row_min, int row_max, int col_min, int col_max, void *buffer, int ld, void *user_data) ;
int row_min, row_max, col_min, col_max;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &row_min,
UNPACK_VALUE, &row_max,
UNPACK_VALUE, &col_min,
UNPACK_VALUE, &col_max,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_VALUE, &user_data,
UNPACK_VALUE, &user_build_callback
);
int lda;
void *user_data;
void (*user_build_callback)(int row_min, int row_max, int col_min, int col_max, void *buffer, int ld, void *user_data) ;
int row_min, row_max, col_min, col_max;
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &row_min,
UNPACK_VALUE, &row_max,
UNPACK_VALUE, &col_min,
UNPACK_VALUE, &col_max,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_VALUE, &user_data,
UNPACK_VALUE, &user_build_callback );
user_build_callback(row_min, row_max, col_min, col_max, A, ld, user_data);
user_build_callback(row_min, row_max, col_min, col_max, A, lda, user_data);
return 0;
}
......@@ -61,14 +61,15 @@ void MORSE_TASK_zbuild( const MORSE_option_t *options,
col_min = An*A->nb ;
col_max = An == A->nt-1 ? A->n-1 : col_min+A->nb-1 ;
insert_task_generic_fptr(DAGUE_dtd_handle, CORE_zbuild_parsec, "zbuild",
sizeof(int), &row_min, VALUE,
sizeof(int), &row_max, VALUE,
sizeof(int), &col_min, VALUE,
sizeof(int), &col_max, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), OUTPUT | REGION_FULL,
sizeof(int), &lda, VALUE,
sizeof(void*), &user_data, VALUE,
sizeof(void*), &user_build_callback, VALUE
0);
dague_insert_task(
DAGUE_dtd_handle, CORE_zbuild_parsec, "zbuild",
sizeof(int), &row_min, VALUE,
sizeof(int), &row_max, VALUE,
sizeof(int), &col_min, VALUE,
sizeof(int), &col_max, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), OUTPUT | REGION_FULL,
sizeof(int), &lda, VALUE,
sizeof(void*), &user_data, VALUE,
sizeof(void*), &user_build_callback, VALUE,
0);
}
......@@ -40,17 +40,17 @@ CORE_zgeadd_parsec(dague_execution_unit_t *context, dague_execution_context_t *t
MORSE_Complex64_t *B;
int *LDB;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &trans,
UNPACK_VALUE, &M,
UNPACK_VALUE, &N,
UNPACK_VALUE, &alpha,
UNPACK_DATA, &A,
UNPACK_VALUE, &LDA,
UNPACK_VALUE, &beta,
UNPACK_DATA, &B,
UNPACK_VALUE, &LDB
);
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &trans,
UNPACK_VALUE, &M,
UNPACK_VALUE, &N,
UNPACK_VALUE, &alpha,
UNPACK_DATA, &A,
UNPACK_VALUE, &LDA,
UNPACK_VALUE, &beta,
UNPACK_DATA, &B,
UNPACK_VALUE, &LDB );
CORE_zgeadd(*trans, *M, *N, *alpha, A, *LDA, *beta, B, *LDB);
......@@ -118,7 +118,7 @@ void MORSE_TASK_zgeadd(const MORSE_option_t *options,
{
dague_dtd_handle_t* DAGUE_dtd_handle = (dague_dtd_handle_t *)(options->sequence->schedopt);
insert_task_generic_fptr(
dague_insert_task(
DAGUE_dtd_handle, CORE_zgeadd_parsec, "geadd",
sizeof(MORSE_enum), &trans, VALUE,
sizeof(int), &m, VALUE,
......
......@@ -96,18 +96,17 @@ CORE_zgelqt_parsec(dague_execution_unit_t *context, dague_execution_context_t *t
MORSE_Complex64_t *TAU;
MORSE_Complex64_t *WORK;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_VALUE, &ib,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &T,
UNPACK_VALUE, &ldt,
UNPACK_SCRATCH, &TAU,
UNPACK_SCRATCH, &WORK
);
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_VALUE, &ib,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &T,
UNPACK_VALUE, &ldt,
UNPACK_SCRATCH, &TAU,
UNPACK_SCRATCH, &WORK );
CORE_zgelqt(*m, *n, *ib, A, *lda, T, *ldt, TAU, WORK);
......@@ -121,15 +120,16 @@ void MORSE_TASK_zgelqt(const MORSE_option_t *options,
{
dague_dtd_handle_t* DAGUE_dtd_handle = (dague_dtd_handle_t *)(options->sequence->schedopt);
insert_task_generic_fptr(DAGUE_dtd_handle, CORE_zgelqt_parsec, "gelqt",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT | REGION_FULL,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), OUTPUT | REGION_FULL,
sizeof(int), &ldt, VALUE,
sizeof(MORSE_Complex64_t)*nb, NULL, SCRATCH,
sizeof(MORSE_Complex64_t)*ib*nb, NULL, SCRATCH,
0);
dague_insert_task(
DAGUE_dtd_handle, CORE_zgelqt_parsec, "gelqt",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT | REGION_FULL,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), OUTPUT | REGION_FULL,
sizeof(int), &ldt, VALUE,
sizeof(MORSE_Complex64_t)*nb, NULL, SCRATCH,
sizeof(MORSE_Complex64_t)*ib*nb, NULL, SCRATCH,
0);
}
......@@ -28,7 +28,8 @@
*
**/
static int
CORE_zgemm_parsec(dague_execution_unit_t *context, dague_execution_context_t *this_task)
CORE_zgemm_parsec(dague_execution_unit_t *context,
dague_execution_context_t *this_task)
{
MORSE_enum *transA;
MORSE_enum *transB;
......@@ -44,21 +45,21 @@ CORE_zgemm_parsec(dague_execution_unit_t *context, dague_execution_context_t *th
MORSE_Complex64_t *C;
int *ldc;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &transA,
UNPACK_VALUE, &transB,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_VALUE, &k,
UNPACK_VALUE, &alpha,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &B,
UNPACK_VALUE, &ldb,
UNPACK_VALUE, &beta,
UNPACK_DATA, &C,
UNPACK_VALUE, &ldc
);
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &transA,
UNPACK_VALUE, &transB,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_VALUE, &k,
UNPACK_VALUE, &alpha,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &B,
UNPACK_VALUE, &ldb,
UNPACK_VALUE, &beta,
UNPACK_DATA, &C,
UNPACK_VALUE, &ldc );
CORE_zgemm(*transA, *transB, *m, *n, *k,
*alpha, A, *lda,
......@@ -77,19 +78,20 @@ void MORSE_TASK_zgemm(const MORSE_option_t *options,
{
dague_dtd_handle_t* DAGUE_dtd_handle = (dague_dtd_handle_t *)(options->sequence->schedopt);
insert_task_generic_fptr(DAGUE_dtd_handle, CORE_zgemm_parsec, "Gemm",
sizeof(MORSE_enum), &transA, VALUE,
sizeof(MORSE_enum), &transB, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(MORSE_Complex64_t), &alpha, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT | REGION_FULL,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INPUT | REGION_FULL,
sizeof(int), &ldb, VALUE,
sizeof(MORSE_Complex64_t), &beta, VALUE,
PASSED_BY_REF, RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ), INOUT | REGION_FULL,
sizeof(int), &ldc, VALUE,
0);
dague_insert_task(
DAGUE_dtd_handle, CORE_zgemm_parsec, "Gemm",
sizeof(MORSE_enum), &transA, VALUE,
sizeof(MORSE_enum), &transB, VALUE,
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(MORSE_Complex64_t), &alpha, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT | REGION_FULL,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INPUT | REGION_FULL,
sizeof(int), &ldb, VALUE,
sizeof(MORSE_Complex64_t), &beta, VALUE,
PASSED_BY_REF, RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ), INOUT | REGION_FULL,
sizeof(int), &ldc, VALUE,
0);
}
......@@ -97,18 +97,17 @@ CORE_zgeqrt_parsec (dague_execution_unit_t *context, dague_execution_context_t *
MORSE_Complex64_t *TAU;
MORSE_Complex64_t *WORK;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_VALUE, &ib,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &T,
UNPACK_VALUE, &ldt,
UNPACK_SCRATCH, &TAU,
UNPACK_SCRATCH, &WORK
);
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_VALUE, &ib,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &T,
UNPACK_VALUE, &ldt,
UNPACK_SCRATCH, &TAU,
UNPACK_SCRATCH, &WORK );
CORE_zgeqrt(*m, *n, *ib, A, *lda, T, *ldt, TAU, WORK);
......@@ -122,15 +121,16 @@ void MORSE_TASK_zgeqrt(const MORSE_option_t *options,
{
dague_dtd_handle_t* DAGUE_dtd_handle = (dague_dtd_handle_t *)(options->sequence->schedopt);
insert_task_generic_fptr(DAGUE_dtd_handle, CORE_zgeqrt_parsec, "geqrt",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT | REGION_FULL,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), OUTPUT | REGION_FULL,
sizeof(int), &ldt, VALUE,
sizeof(MORSE_Complex64_t)*nb, NULL, SCRATCH,
sizeof(MORSE_Complex64_t)*ib*nb, NULL, SCRATCH,
0);
dague_insert_task(
DAGUE_dtd_handle, CORE_zgeqrt_parsec, "geqrt",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &ib, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT | REGION_FULL,
sizeof(int), &lda, VALUE,
PASSED_BY_REF, RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), OUTPUT | REGION_FULL,
sizeof(int), &ldt, VALUE,
sizeof(MORSE_Complex64_t)*nb, NULL, SCRATCH,
sizeof(MORSE_Complex64_t)*ib*nb, NULL, SCRATCH,
0);
}
......@@ -82,20 +82,19 @@ CORE_zgessm_parsec(dague_execution_unit_t *context, dague_execution_context_t *t
MORSE_Complex64_t *A;
int *lda;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_VALUE, &k,
UNPACK_VALUE, &ib,
UNPACK_SCRATCH, &IPIV,
UNPACK_DATA, &L,
UNPACK_VALUE, &ldl,
UNPACK_DATA, &D,
UNPACK_VALUE, &ldd,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda
);
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_VALUE, &k,
UNPACK_VALUE, &ib,
UNPACK_SCRATCH, &IPIV,
UNPACK_DATA, &L,
UNPACK_VALUE, &ldl,
UNPACK_DATA, &D,
UNPACK_VALUE, &ldd,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda );
CORE_zgessm(*m, *n, *k, *ib, IPIV, D, *ldd, A, *lda);
......@@ -111,17 +110,18 @@ void MORSE_TASK_zgessm(const MORSE_option_t *options,
{
dague_dtd_handle_t* DAGUE_dtd_handle = (dague_dtd_handle_t *)(options->sequence->schedopt);
insert_task_generic_fptr(DAGUE_dtd_handle, CORE_zgessm_parsec, "gessm",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(int), &ib, VALUE,
sizeof(int)*nb, IPIV, SCRATCH,
PASSED_BY_REF, RTBLKADDR( L, MORSE_Complex64_t, Lm, Ln ), INPUT | REGION_FULL,
sizeof(int), &ldl, VALUE,
PASSED_BY_REF, RTBLKADDR( D, MORSE_Complex64_t, Dm, Dn ), INPUT | REGION_FULL,
sizeof(int), &ldd, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT | REGION_FULL,
sizeof(int), &lda, VALUE,
0);
dague_insert_task(
DAGUE_dtd_handle, CORE_zgessm_parsec, "gessm",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
sizeof(int), &k, VALUE,
sizeof(int), &ib, VALUE,
sizeof(int)*nb, IPIV, SCRATCH,
PASSED_BY_REF, RTBLKADDR( L, MORSE_Complex64_t, Lm, Ln ), INPUT | REGION_FULL,
sizeof(int), &ldl, VALUE,
PASSED_BY_REF, RTBLKADDR( D, MORSE_Complex64_t, Dm, Dn ), INPUT | REGION_FULL,
sizeof(int), &ldd, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT | REGION_FULL,
sizeof(int), &lda, VALUE,
0);
}
......@@ -31,13 +31,13 @@ CORE_zgessq_parsec(dague_execution_unit_t *context, dague_execution_context_t *t
int *lda;
double *SCALESUMSQ;
dague_dtd_unpack_args(this_task,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &SCALESUMSQ
);
dague_dtd_unpack_args(
this_task,
UNPACK_VALUE, &m,
UNPACK_VALUE, &n,
UNPACK_DATA, &A,
UNPACK_VALUE, &lda,
UNPACK_DATA, &SCALESUMSQ );
CORE_zgessq( *m, *n, A, *lda, SCALESUMSQ, SCALESUMSQ+1);
......@@ -51,11 +51,12 @@ void MORSE_TASK_zgessq( const MORSE_option_t *options,
{
dague_dtd_handle_t* DAGUE_dtd_handle = (dague_dtd_handle_t *)(options->sequence->schedopt);
insert_task_generic_fptr(DAGUE_dtd_handle, CORE_zgessq_parsec, "gessq",
sizeof(int), &m, VALUE,
sizeof(int), &n, VALUE,
PASSED_BY_REF, RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT | REGION_FULL,
sizeof(int), &lda, VALUE,