Commit 5f82b9ba authored by Philippe SWARTVAGHER's avatar Philippe SWARTVAGHER
Browse files

Register NUMA node location of handles only in CPU memory

parent 8ecca87b
Pipeline #285739 passed with stages
in 21 minutes and 5 seconds
......@@ -807,19 +807,29 @@ do { \
for (__i = 0; __i < __nbuffers; __i++) \
{ \
starpu_data_handle_t __handle = STARPU_TASK_GET_HANDLE((job)->task, __i); \
size_t __data_size = _starpu_data_get_size(__handle); \
void *__interface = _STARPU_TASK_GET_INTERFACES((job)->task)[__i]; \
if (__handle->ops->describe) \
{ \
__handle->ops->describe(__interface, __buf, sizeof(__buf)); \
_STARPU_FUT_FULL_PROBE1STR(_STARPU_FUT_KEYMASK_DATA, _STARPU_FUT_CODELET_DATA, workerid, __buf); \
} \
/* regarding the memory location, if the data interface doesn't provide to_pointer operation, NULL will be returned and the location will be -1, which is fine */ \
FUT_FULL_PROBE5(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_CODELET_DATA_HANDLE, (job)->job_id, (__handle), _starpu_data_get_size(__handle), STARPU_TASK_GET_MODE((job)->task, __i), starpu_get_memory_location_bitmap(starpu_data_handle_to_pointer(__handle, starpu_worker_get_memory_node(workerid)), starpu_data_get_size(__handle))); \
/* regarding the memory location, if the data interface doesn't provide to_pointer operation or if the data isn't located on a \
* RAM node, NULL will be returned and the location will be -1, which is fine */ \
int __data_node = -1; \
if ((job)->task->cl->specific_nodes) __data_node = STARPU_CODELET_GET_NODE((job)->task->cl, __i); \
else __data_node = starpu_worker_get_memory_node(workerid); \
void* __data_ptr = NULL; \
if (__data_node >= 0 && _starpu_node_get_kind(__data_node) == STARPU_CPU_RAM) __data_ptr = starpu_data_handle_to_pointer(__handle, __data_node); \
FUT_FULL_PROBE5(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_CODELET_DATA_HANDLE, \
(job)->job_id, (__handle), __data_size, \
STARPU_TASK_GET_MODE((job)->task, __i), \
starpu_get_memory_location_bitmap(__data_ptr, __data_size)); \
} \
} \
const size_t __job_size = _starpu_job_get_data_size((job)->task->cl?(job)->task->cl->model:NULL, perf_arch, nimpl, (job)); \
const uint32_t __job_hash = _starpu_compute_buffers_footprint((job)->task->cl?(job)->task->cl->model:NULL, perf_arch, nimpl, (job));\
FUT_FULL_PROBE7(_STARPU_FUT_KEYMASK_TASK_VERBOSE, _STARPU_FUT_CODELET_DETAILS, ((job)->task)->sched_ctx, __job_size, __job_hash, (job)->task->flops / 1000 / ((job)->task->cl && job->task->cl->type != STARPU_SEQ ? j->task_size : 1), (job)->task->tag_id, workerid, ((job)->job_id)); \
FUT_FULL_PROBE7(_STARPU_FUT_KEYMASK_TASK_VERBOSE, _STARPU_FUT_CODELET_DETAILS, ((job)->task)->sched_ctx, __job_size, __job_hash, (job)->task->flops / 1000 / ((job)->task->cl && (job)->task->cl->type != STARPU_SEQ ? j->task_size : 1), (job)->task->tag_id, workerid, ((job)->job_id)); \
} \
} \
} while(0)
......
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