17#ifndef __MEMORY_NODES_H__
18#define __MEMORY_NODES_H__
23#include <common/config.h>
28#include <core/workers.h>
34#pragma GCC visibility push(hidden)
40 starpu_pthread_cond_t *cond;
77void _starpu_memory_nodes_init(
void);
78void _starpu_memory_nodes_deinit(
void);
83 _starpu_descr.nworkers[node]++;
89static inline const struct _starpu_node_ops *_starpu_memory_node_get_node_ops(
unsigned node)
91 return _starpu_descr.node_ops[node];
97 return _starpu_descr.nworkers[node];
101static inline void _starpu_simgrid_memory_node_set_host(
unsigned node, starpu_sg_host_t host)
103 _starpu_descr.host[node] = host;
106static inline starpu_sg_host_t _starpu_simgrid_memory_node_get_host(
unsigned node)
108 return _starpu_descr.host[node];
128 return &_starpu_descr;
131#define _starpu_node_needs_map_update(node) \
132 (starpu_node_get_kind(node) == STARPU_OPENCL_RAM)
137 return _starpu_descr.nodes[node];
139#define starpu_node_get_kind _starpu_node_get_kind
141#if STARPU_MAXNODES == 1
142#define _starpu_memory_nodes_get_count() 1
147 return _starpu_descr.nnodes;
150#define starpu_memory_nodes_get_count _starpu_memory_nodes_get_count
152#if STARPU_MAXNODES == 1
153#define _starpu_worker_get_memory_node(workerid) 0
161 unsigned nworkers = config->topology.
nworkers;
163 if (workerid < config->topology.nworkers)
167 unsigned ncombinedworkers STARPU_ATTRIBUTE_UNUSED = config->topology.
ncombinedworkers;
168 STARPU_ASSERT_MSG(workerid < ncombinedworkers + nworkers,
"Bad workerid %u, maximum %u", workerid, ncombinedworkers + nworkers);
173#define starpu_worker_get_memory_node _starpu_worker_get_memory_node
175#if STARPU_MAXNODES == 1
176#define _starpu_worker_get_local_memory_node() 0
183 return STARPU_MAIN_RAM;
187#define starpu_worker_get_local_memory_node _starpu_worker_get_local_memory_node
189#pragma GCC visibility pop
starpu_node_kind
Definition: starpu_worker.h:44
#define STARPU_MAXNODES
Definition: starpu_config.h:229
#define STARPU_NMAXWORKERS
Definition: starpu_config.h:296
static struct _starpu_memory_node_descr * _starpu_memory_node_get_description(void)
Definition: memory_nodes.h:126
unsigned _starpu_memory_node_register(enum starpu_node_kind kind, int devid)
static enum starpu_node_kind _starpu_node_get_kind(unsigned node)
Definition: memory_nodes.h:135
void _starpu_memory_node_set_mapped(unsigned node)
void _starpu_worker_drives_memory_node(struct _starpu_worker *worker, unsigned memnode)
starpu_pthread_rwlock_t conditions_rwlock
Definition: memory_nodes.h:66
static unsigned _starpu_memory_node_get_nworkers(unsigned node)
Definition: memory_nodes.h:95
static unsigned _starpu_worker_get_local_memory_node(void)
Definition: memory_nodes.h:179
void _starpu_memory_node_register_condition(struct _starpu_worker *worker, starpu_pthread_cond_t *cond, unsigned nodeid)
int devid[STARPU_MAXNODES]
Definition: memory_nodes.h:52
unsigned _starpu_memory_node_get_mapped(unsigned node)
static unsigned _starpu_memory_nodes_get_count(void)
Definition: memory_nodes.h:145
unsigned total_condition_count
Definition: memory_nodes.h:70
static void _starpu_memory_node_add_nworkers(unsigned node)
Definition: memory_nodes.h:81
static unsigned _starpu_worker_get_memory_node(unsigned workerid)
Definition: memory_nodes.h:156
Definition: memory_nodes.h:39
Definition: memory_nodes.h:46
unsigned memory_node
Definition: workers.h:315
Definition: workers.h:441
struct _starpu_combined_worker combined_workers[STARPU_NMAX_COMBINEDWORKERS]
Definition: workers.h:475
struct _starpu_worker workers[STARPU_NMAXWORKERS]
Definition: workers.h:468
unsigned nworkers
Definition: workers.h:354
unsigned ncombinedworkers
Definition: workers.h:357
Definition: node_ops.h:92
Definition: workers.h:155
unsigned memory_node
Definition: workers.h:172