MAJ terminée. Nous sommes passés en version 14.6.2 . Pour consulter les "releases notes" associées c'est ici :

https://about.gitlab.com/releases/2022/01/11/security-release-gitlab-14-6-2-released/
https://about.gitlab.com/releases/2022/01/04/gitlab-14-6-1-released/

Commit a2680333 authored by Mathieu Faverge's avatar Mathieu Faverge
Browse files

Merge branch 'memaccess-runtime' into 'master'

Allow runtimes to have their own memory access macros

See merge request !31
parents cc5b791c afbd9e49
......@@ -205,20 +205,31 @@ inline static int morse_desc_islocal( const MORSE_desc_t *A, int m, int n )
* MORSE_END_ACCESS_DECLARATION
*/
#define MORSE_BEGIN_ACCESS_DECLARATION { \
unsigned __morse_need_submit = 0;
unsigned __morse_need_submit = 0; \
RUNTIME_BEGIN_ACCESS_DECLARATION
#define MORSE_ACCESS_R(A, Am, An) \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1;
#define MORSE_ACCESS_R(A, Am, An) do { \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
RUNTIME_ACCESS_R(A, Am, An) \
} while(0)
#define MORSE_ACCESS_W(A, Am, An) \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1;
#define MORSE_ACCESS_W(A, Am, An) do { \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
RUNTIME_ACCESS_W(A, Am, An) \
} while(0)
#define MORSE_ACCESS_RW(A, Am, An) \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1;
#define MORSE_ACCESS_RW(A, Am, An) do { \
if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
RUNTIME_ACCESS_RW(A, Am, An) \
} while(0)
#define MORSE_RANK_CHANGED __morse_need_submit = 1;
#define MORSE_RANK_CHANGED(rank) do {\
__morse_need_submit = 1; \
RUNTIME_RANK_CHANGED(rank) \
} while (0)
#define MORSE_END_ACCESS_DECLARATION \
RUNTIME_END_ACCESS_DECLARATION \
if (!__morse_need_submit) return; \
}
......
......@@ -24,4 +24,16 @@ typedef struct morse_parsec_desc_s morse_parsec_desc_t;
*/
#define RTBLKADDR( desc, type, m, n ) ( dague_dtd_tile_of( DAGUE_dtd_handle, (desc)->schedopt, m, n ) )
#define RUNTIME_BEGIN_ACCESS_DECLARATION
#define RUNTIME_ACCESS_R(A, Am, An)
#define RUNTIME_ACCESS_W(A, Am, An)
#define RUNTIME_ACCESS_RW(A, Am, An)
#define RUNTIME_RANK_CHANGED(rank)
#define RUNTIME_END_ACCESS_DECLARATION
#endif /* _MORSE_PARSEC_H_ */
......@@ -47,4 +47,16 @@ typedef struct quark_option_s {
*/
#define RTBLKADDR( desc, type, m, n ) ( (type*)RUNTIME_desc_getaddr( desc, m, n ) )
#define RUNTIME_BEGIN_ACCESS_DECLARATION
#define RUNTIME_ACCESS_R(A, Am, An)
#define RUNTIME_ACCESS_W(A, Am, An)
#define RUNTIME_ACCESS_RW(A, Am, An)
#define RUNTIME_RANK_CHANGED(rank)
#define RUNTIME_END_ACCESS_DECLARATION
#endif /* _MORSE_QUARK_H_ */
......@@ -75,7 +75,7 @@ void MORSE_TASK_zgemm(const MORSE_option_t *options,
MORSE_ACCESS_R(B, Bm, Bn);
MORSE_ACCESS_RW(C, Cm, Cn);
if (rank_changed)
MORSE_RANK_CHANGED;
MORSE_RANK_CHANGED(execution_rank);
MORSE_END_ACCESS_DECLARATION;
starpu_insert_task(
......
......@@ -68,7 +68,7 @@ void MORSE_TASK_ztrsm(const MORSE_option_t *options,
MORSE_ACCESS_R(A, Am, An);
MORSE_ACCESS_RW(B, Bm, Bn);
if (rank_changed)
MORSE_RANK_CHANGED;
MORSE_RANK_CHANGED(execution_rank);
MORSE_END_ACCESS_DECLARATION;
starpu_insert_task(
......
......@@ -176,7 +176,7 @@ void MORSE_TASK_ztsmqr(const MORSE_option_t *options,
MORSE_ACCESS_R(V, Vm, Vn);
MORSE_ACCESS_R(T, Tm, Tn);
if (rank_changed)
MORSE_RANK_CHANGED;
MORSE_RANK_CHANGED(execution_rank);
MORSE_END_ACCESS_DECLARATION;
starpu_insert_task(
......
......@@ -169,7 +169,7 @@ void MORSE_TASK_zttmqr(const MORSE_option_t *options,
MORSE_ACCESS_R(V, Vm, Vn);
MORSE_ACCESS_R(T, Tm, Tn);
if (rank_changed)
MORSE_RANK_CHANGED;
MORSE_RANK_CHANGED(execution_rank);
MORSE_END_ACCESS_DECLARATION;
starpu_insert_task(
......
......@@ -153,7 +153,7 @@ void MORSE_TASK_zunmqr(const MORSE_option_t *options,
MORSE_ACCESS_R(T, Tm, Tn);
MORSE_ACCESS_RW(C, Cm, Cn);
if (rank_changed)
MORSE_RANK_CHANGED;
MORSE_RANK_CHANGED(execution_rank);
MORSE_END_ACCESS_DECLARATION;
starpu_insert_task(
......
......@@ -86,4 +86,16 @@ typedef struct starpu_conf starpu_conf_t;
void RUNTIME_set_reduction_methods(starpu_data_handle_t handle, MORSE_enum dtyp);
#define RUNTIME_BEGIN_ACCESS_DECLARATION
#define RUNTIME_ACCESS_R(A, Am, An)
#define RUNTIME_ACCESS_W(A, Am, An)
#define RUNTIME_ACCESS_RW(A, Am, An)
#define RUNTIME_RANK_CHANGED(rank)
#define RUNTIME_END_ACCESS_DECLARATION
#endif /* _MORSE_STARPU_H_ */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment