|
@@ -65,6 +65,7 @@ static const struct starpu_data_copy_methods matrix_copy_data_methods_s = {
|
|
|
};
|
|
|
|
|
|
static void register_matrix_handle(starpu_data_handle handle, uint32_t home_node, void *data_interface);
|
|
|
+static void *matrix_handle_to_pointer(starpu_data_handle data_handle);
|
|
|
static ssize_t allocate_matrix_buffer_on_node(void *data_interface_, uint32_t dst_node);
|
|
|
static void free_matrix_buffer_on_node(void *data_interface, uint32_t node);
|
|
|
static size_t matrix_interface_get_size(starpu_data_handle handle);
|
|
@@ -78,6 +79,7 @@ static int convert_matrix_to_gordon(void *data_interface, uint64_t *ptr, gordon_
|
|
|
struct starpu_data_interface_ops_t _starpu_interface_matrix_ops = {
|
|
|
.register_data_handle = register_matrix_handle,
|
|
|
.allocate_data_on_node = allocate_matrix_buffer_on_node,
|
|
|
+ .handle_to_pointer = matrix_handle_to_pointer,
|
|
|
.free_data_on_node = free_matrix_buffer_on_node,
|
|
|
.copy_methods = &matrix_copy_data_methods_s,
|
|
|
.get_size = matrix_interface_get_size,
|
|
@@ -138,6 +140,12 @@ static void register_matrix_handle(starpu_data_handle handle, uint32_t home_node
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static void *matrix_handle_to_pointer(starpu_data_handle data_handle)
|
|
|
+{
|
|
|
+ return (void *)starpu_matrix_get_local_ptr(data_handle);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
/* declare a new data with the matrix interface */
|
|
|
void starpu_matrix_data_register(starpu_data_handle *handleptr, uint32_t home_node,
|
|
|
uintptr_t ptr, uint32_t ld, uint32_t nx,
|