|
@@ -190,20 +190,18 @@ int starpu_data_acquire_cb(starpu_data_handle_t handle,
|
|
|
enum starpu_data_access_mode mode, void (*callback)(void *), void *arg)
|
|
|
{
|
|
|
int home_node = handle->home_node;
|
|
|
- if (home_node >= 0 && (starpu_node_get_kind(home_node) == STARPU_CPU_RAM))
|
|
|
- return starpu_data_acquire_on_node_cb(handle, home_node, mode, callback, arg);
|
|
|
- else
|
|
|
- return starpu_data_acquire_on_node_cb(handle, STARPU_MAIN_RAM, mode, callback, arg);
|
|
|
+ if (home_node < 0 || starpu_node_get_kind(home_node) != STARPU_CPU_RAM)
|
|
|
+ home_node = STARPU_MAIN_RAM;
|
|
|
+ return starpu_data_acquire_on_node_cb(handle, home_node, mode, callback, arg);
|
|
|
}
|
|
|
|
|
|
int starpu_data_acquire_cb_sequential_consistency(starpu_data_handle_t handle,
|
|
|
enum starpu_data_access_mode mode, void (*callback)(void *), void *arg, int sequential_consistency)
|
|
|
{
|
|
|
int home_node = handle->home_node;
|
|
|
- if (home_node >= 0 && (starpu_node_get_kind(home_node) == STARPU_CPU_RAM))
|
|
|
- return starpu_data_acquire_on_node_cb_sequential_consistency(handle, home_node, mode, callback, arg, sequential_consistency);
|
|
|
- else
|
|
|
- return starpu_data_acquire_on_node_cb_sequential_consistency(handle, STARPU_MAIN_RAM, mode, callback, arg, sequential_consistency);
|
|
|
+ if (home_node < 0 || starpu_node_get_kind(home_node) != STARPU_CPU_RAM)
|
|
|
+ home_node = STARPU_MAIN_RAM;
|
|
|
+ return starpu_data_acquire_on_node_cb_sequential_consistency(handle, home_node, mode, callback, arg, sequential_consistency);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -335,10 +333,9 @@ int starpu_data_acquire_on_node(starpu_data_handle_t handle, int node, enum star
|
|
|
int starpu_data_acquire(starpu_data_handle_t handle, enum starpu_data_access_mode mode)
|
|
|
{
|
|
|
int home_node = handle->home_node;
|
|
|
- if (home_node >= 0 && (starpu_node_get_kind(home_node) == STARPU_CPU_RAM))
|
|
|
- return starpu_data_acquire_on_node(handle, home_node, mode);
|
|
|
- else
|
|
|
- return starpu_data_acquire_on_node(handle, STARPU_MAIN_RAM, mode);
|
|
|
+ if (home_node < 0 || starpu_node_get_kind(home_node) != STARPU_CPU_RAM)
|
|
|
+ home_node = STARPU_MAIN_RAM;
|
|
|
+ return starpu_data_acquire_on_node(handle, home_node, mode);
|
|
|
}
|
|
|
|
|
|
/* This function must be called after starpu_data_acquire so that the
|
|
@@ -371,10 +368,9 @@ void starpu_data_release_on_node(starpu_data_handle_t handle, int node)
|
|
|
void starpu_data_release(starpu_data_handle_t handle)
|
|
|
{
|
|
|
int home_node = handle->home_node;
|
|
|
- if (home_node >= 0 && (starpu_node_get_kind(home_node) == STARPU_CPU_RAM))
|
|
|
- return starpu_data_release_on_node(handle, home_node);
|
|
|
- else
|
|
|
- starpu_data_release_on_node(handle, STARPU_MAIN_RAM);
|
|
|
+ if (home_node < 0 || starpu_node_get_kind(home_node) != STARPU_CPU_RAM)
|
|
|
+ home_node = STARPU_MAIN_RAM;
|
|
|
+ starpu_data_release_on_node(handle, home_node);
|
|
|
}
|
|
|
|
|
|
static void _prefetch_data_on_node(void *arg)
|