|
StarPU Internal Handbook
|
#include <node_ops.h>
Data Fields | |
| copy_interface_func_t | copy_interface_to [STARPU_MAX_RAM+1] |
| copy_interface_func_t | copy_interface_from [STARPU_MAX_RAM+1] |
| copy_data_t | copy_data_to [STARPU_MAX_RAM+1] |
| copy_data_t | copy_data_from [STARPU_MAX_RAM+1] |
| copy2d_data_t | copy2d_data_to [STARPU_MAX_RAM+1] |
| copy2d_data_t | copy2d_data_from [STARPU_MAX_RAM+1] |
| copy3d_data_t | copy3d_data_to [STARPU_MAX_RAM+1] |
| copy3d_data_t | copy3d_data_from [STARPU_MAX_RAM+1] |
| void(* | wait_request_completion )(struct _starpu_async_channel *async_channel) |
| unsigned(* | test_request_completion )(struct _starpu_async_channel *async_channel) |
| int(* | is_direct_access_supported )(unsigned node, unsigned handling_node) |
| uintptr_t(* | malloc_on_node )(unsigned dst_node, size_t size, int flags) |
| void(* | free_on_node )(unsigned dst_node, uintptr_t addr, size_t size, int flags) |
| map_t | map [STARPU_MAX_RAM+1] |
| unmap_t | unmap [STARPU_MAX_RAM+1] |
| update_map_t | update_map [STARPU_MAX_RAM+1] |
| char * | name |
Reference all the methods for copying data from this kind of device to another kind of device.
| copy_interface_func_t _starpu_node_ops::copy_interface_to[STARPU_MAX_RAM+1] |
Request copying a data interface from this type of node to another type of node. As a first start, you can just use the generic _starpu_copy_interface_any_to_any.
| copy_interface_func_t _starpu_node_ops::copy_interface_from[STARPU_MAX_RAM+1] |
Request copying a data interface to this type of node from another type of node. As a first start, you can just use the generic _starpu_copy_interface_any_to_any.
| copy_data_t _starpu_node_ops::copy_data_to[STARPU_MAX_RAM+1] |
Request copying a piece of data from this type of node to another type of node. This method is required at least for STARPU_CPU_RAM.
| copy_data_t _starpu_node_ops::copy_data_from[STARPU_MAX_RAM+1] |
Request copying a piece of data to this type of node from another type of node. This method is required at least for STARPU_CPU_RAM.
| copy2d_data_t _starpu_node_ops::copy2d_data_to[STARPU_MAX_RAM+1] |
Request copying a 2D piece of data (i.e. matrix tile with an ld) from this type of node to another type of node. This method is optional.
| copy2d_data_t _starpu_node_ops::copy2d_data_from[STARPU_MAX_RAM+1] |
Request copying a 2D piece of data (i.e. matrix tile with an ld) to this type of node from another type of node. This method is optional.
| copy3d_data_t _starpu_node_ops::copy3d_data_to[STARPU_MAX_RAM+1] |
Request copying a 3D piece of data (i.e. block piece with ldy and ldz) from this type of node to another type of node. This method is optional.
| copy3d_data_t _starpu_node_ops::copy3d_data_from[STARPU_MAX_RAM+1] |
Request copying a 3D piece of data (i.e. block piece with ldy and ldz) to this type of node from another type of node. This method is optional.
| void(* _starpu_node_ops::wait_request_completion) (struct _starpu_async_channel *async_channel) |
Wait for the completion of asynchronous request async_channel. Only used at starpu_shutdown.
| unsigned(* _starpu_node_ops::test_request_completion) (struct _starpu_async_channel *async_channel) |
Test whether asynchronous request async_channel has completed.
| int(* _starpu_node_ops::is_direct_access_supported) (unsigned node, unsigned handling_node) |
Return whether inter-device transfers are possible between node and handling_node. If this returns 0, copy_interface_to will always be called with CPU RAM as either source or destination. If this returns 1, copy_interface_to may be called with both source and destination in device memory.
handling_node is the node that will initiate the transfer. This allows to prefer starting from the driver itself.
| uintptr_t(* _starpu_node_ops::malloc_on_node) (unsigned dst_node, size_t size, int flags) |
Allocate size bytes of data on node dst_node. flags can contain STARPU_MALLOC_* flags, only useful for CPU memory
| void(* _starpu_node_ops::free_on_node) (unsigned dst_node, uintptr_t addr, size_t size, int flags) |
Free data addr, which was a previous allocation of size bytes of data on node dst_node with flags flags
| map_t _starpu_node_ops::map[STARPU_MAX_RAM+1] |
Map data a piece of data to this type of node from another type of node. This method is optional
| unmap_t _starpu_node_ops::unmap[STARPU_MAX_RAM+1] |
Unmap data a piece of data to this type of node from another type of node. This method is optional
| update_map_t _starpu_node_ops::update_map[STARPU_MAX_RAM+1] |
Update cache coherency for the mapping of a piece of data to this type of node from another type of node. This method is optional
| char* _starpu_node_ops::name |
Name of the type of memory, for debugging