18 #ifndef __SOURCE_COMMON_H__
19 #define __SOURCE_COMMON_H__
29 #pragma GCC visibility push(hidden)
33 #ifdef STARPU_USE_MPI_MASTER_SLAVE
34 extern struct _starpu_mp_node *_starpu_src_nodes[
STARPU_NARCH][STARPU_MAXMPIDEVS];
37 #ifdef STARPU_USE_TCPIP_MASTER_SLAVE
38 extern struct _starpu_mp_node *_starpu_src_nodes[
STARPU_NARCH][STARPU_MAXTCPIPDEVS];
41 int _starpu_src_common_store_message(
struct _starpu_mp_node *node,
void * arg,
int arg_size,
enum _starpu_mp_command answer);
43 enum _starpu_mp_command _starpu_src_common_wait_completed_execution(
struct _starpu_mp_node *node,
int devid,
void **arg,
int * arg_size);
45 int _starpu_src_common_sink_nbcores(
struct _starpu_mp_node *node,
int *buf);
47 int _starpu_src_common_lookup(
struct _starpu_mp_node *node,
void (**func_ptr)(
void),
const char *func_name);
49 starpu_cpu_func_t _starpu_src_common_get_cpu_func_from_codelet(
struct starpu_codelet *cl,
unsigned nimpl);
51 void(* _starpu_src_common_get_cpu_func_from_job(
const struct _starpu_mp_node *node STARPU_ATTRIBUTE_UNUSED,
struct _starpu_job *j))(void);
53 struct _starpu_mp_node *_starpu_src_common_get_mp_node_from_memory_node(
int memory_node);
54 uintptr_t _starpu_src_common_allocate(
unsigned dst_node,
size_t size,
int flags);
55 void _starpu_src_common_free(
unsigned dst_node, uintptr_t addr,
size_t size,
int flags);
57 uintptr_t _starpu_src_common_map(
unsigned dst_node, uintptr_t addr,
size_t size);
58 void _starpu_src_common_unmap(
unsigned dst_node, uintptr_t addr,
size_t size);
60 int _starpu_src_common_execute_kernel(
struct _starpu_mp_node *node,
61 void (*kernel)(
void),
unsigned coreid,
62 enum starpu_codelet_type type,
63 int is_parallel_task,
int cb_workerid,
64 starpu_data_handle_t *handles,
66 unsigned nb_interfaces,
67 void *cl_arg,
size_t cl_arg_size,
int detached);
69 int _starpu_src_common_copy_host_to_sink_sync(
struct _starpu_mp_node *mp_node,
void *src,
void *dst,
size_t size);
71 int _starpu_src_common_copy_sink_to_host_sync(
struct _starpu_mp_node *mp_node,
void *src,
void *dst,
size_t size);
73 int _starpu_src_common_copy_sink_to_sink_sync(
struct _starpu_mp_node *src_node,
struct _starpu_mp_node *dst_node,
void *src,
void *dst,
size_t size);
75 int _starpu_src_common_copy_host_to_sink_async(
struct _starpu_mp_node *mp_node,
void *src,
void *dst,
size_t size,
void *event);
77 int _starpu_src_common_copy_sink_to_host_async(
struct _starpu_mp_node *mp_node,
void *src,
void *dst,
size_t size,
void *event);
79 int _starpu_src_common_copy_sink_to_sink_async(
struct _starpu_mp_node *src_node,
struct _starpu_mp_node *dst_node,
void *src,
void *dst,
size_t size,
void *event);
81 int _starpu_src_common_copy_data_host_to_sink(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
size_t size,
struct _starpu_async_channel *async_channel);
82 int _starpu_src_common_copy_data_sink_to_host(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
size_t size,
struct _starpu_async_channel *async_channel);
83 int _starpu_src_common_copy_data_sink_to_sink(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
size_t size,
struct _starpu_async_channel *async_channel);
85 void _starpu_src_common_init_switch_env(
unsigned this);
86 void _starpu_src_common_workers_set(
struct _starpu_worker_set * worker_set,
int ndevices,
struct _starpu_mp_node ** mp_node);
88 void _starpu_src_common_deinit(
void);
90 #pragma GCC visibility pop
Definition: copy_driver.h:71
@ STARPU_NARCH
Definition: starpu_worker.h:74
Definition: workers.h:339