17#ifndef __STARPU_DATA_INTERFACES_H__
18#define __STARPU_DATA_INTERFACES_H__
24#include <cuda_runtime.h>
25typedef cudaStream_t starpu_cudaStream_t;
30#pragma GCC diagnostic push
31#pragma GCC diagnostic ignored "-Wundef"
32#pragma GCC diagnostic ignored "-Wunused-result"
33#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
35#pragma GCC diagnostic ignored "-Wimplicit-int"
37#pragma GCC diagnostic ignored "-Wreturn-type"
38#include <hip/hip_runtime.h>
39#pragma GCC diagnostic pop
40typedef hipStream_t starpu_hipStream_t;
113 int (*
can_copy)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node,
unsigned handling_node);
120 int (*
ram_to_ram)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
127 int (*
ram_to_cuda)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
134 int (*
ram_to_hip)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
141 int (*
ram_to_opencl)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
148 int (*
ram_to_max_fpga)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
155 int (*
cuda_to_ram)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
162 int (*
cuda_to_cuda)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
169 int (*
hip_to_ram)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
176 int (*
hip_to_hip)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
183 int (*
opencl_to_ram)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
190 int (*
opencl_to_opencl)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
197 int (*
max_fpga_to_ram)(
void *src_interface,
unsigned srd_node,
void *dst_interface,
unsigned dst_node);
199#ifdef STARPU_USE_CUDA
208 int (*
ram_to_cuda_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, starpu_cudaStream_t stream);
218 int (*
cuda_to_ram_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, starpu_cudaStream_t stream);
228 int (*
cuda_to_cuda_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, starpu_cudaStream_t stream);
244 int (*
ram_to_hip_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, starpu_hipStream_t stream);
254 int (*
hip_to_ram_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, starpu_hipStream_t stream);
264 int (*
hip_to_hip_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, starpu_hipStream_t stream);
271#if defined(STARPU_USE_OPENCL) && !defined(__CUDACC__)
281 int (*
ram_to_opencl_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, cl_event *event);
291 int (*
opencl_to_ram_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, cl_event *event);
301 int (*
opencl_to_opencl_async)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node, cl_event *event);
345 int (*
any_to_any)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node,
void *async_data);
484 int (*
map_data)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
491 int (*
unmap_data)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
498 int (*
update_map)(
void *src_interface,
unsigned src_node,
void *dst_interface,
unsigned dst_node);
505 void (*
init)(
void *data_interface);
533 void *(*to_pointer)(
void *data_interface,
unsigned node);
579 int (*
compare)(
void *data_interface_a,
void *data_interface_b);
602 starpu_ssize_t (*
describe)(
void *data_interface,
char *buf,
size_t size);
668 int (*
pack_meta)(
void *data_interface,
void **ptr, starpu_ssize_t *count);
676 int (*
unpack_meta)(
void **data_interface,
void *ptr, starpu_ssize_t *count);
868 uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
869 size_t size,
void *async_data);
890 uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
892 size_t numblocks,
size_t ld_src,
size_t ld_dst,
918 uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
920 size_t numblocks1,
size_t ld1_src,
size_t ld1_dst,
921 size_t numblocks2,
size_t ld2_src,
size_t ld2_dst,
951 uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
953 size_t numblocks1,
size_t ld1_src,
size_t ld1_dst,
954 size_t numblocks2,
size_t ld2_src,
size_t ld2_dst,
955 size_t numblocks3,
size_t ld3_src,
size_t ld3_dst,
977 uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
978 size_t elemsize,
size_t ndim,
979 uint32_t *nn, uint32_t *ldn_src, uint32_t *ldn_dst,
1061uintptr_t
starpu_interface_map(uintptr_t src,
size_t src_offset,
unsigned src_node,
unsigned dst_node,
size_t size,
int *ret);
1066int starpu_interface_unmap(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
unsigned dst_node,
size_t size);
1071int starpu_interface_update_map(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
size_t dst_offset,
unsigned dst_node,
size_t size);
1168#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
1169#define STARPU_MATRIX_CHECK(interface) STARPU_ASSERT_MSG((((struct starpu_matrix_interface *)(interface))->id) == STARPU_MATRIX_INTERFACE_ID, "Error. The given data is not a matrix.")
1170#define STARPU_MATRIX_GET_PTR(interface) ( \
1172 STARPU_MATRIX_CHECK(interface); \
1173 (((struct starpu_matrix_interface *)(interface))->ptr); \
1175#define STARPU_MATRIX_GET_DEV_HANDLE(interface) ( \
1177 STARPU_MATRIX_CHECK(interface); \
1178 (((struct starpu_matrix_interface *)(interface))->dev_handle); \
1180#define STARPU_MATRIX_GET_OFFSET(interface) ( \
1182 STARPU_MATRIX_CHECK(interface); \
1183 (((struct starpu_matrix_interface *)(interface))->offset); \
1185#define STARPU_MATRIX_GET_NX(interface) ( \
1187 STARPU_MATRIX_CHECK(interface); \
1188 (((struct starpu_matrix_interface *)(interface))->nx); \
1190#define STARPU_MATRIX_GET_NY(interface) ( \
1192 STARPU_MATRIX_CHECK(interface); \
1193 (((struct starpu_matrix_interface *)(interface))->ny); \
1195#define STARPU_MATRIX_GET_LD(interface) ( \
1197 STARPU_MATRIX_CHECK(interface); \
1198 (((struct starpu_matrix_interface *)(interface))->ld); \
1200#define STARPU_MATRIX_GET_ELEMSIZE(interface) ( \
1202 STARPU_MATRIX_CHECK(interface); \
1203 (((struct starpu_matrix_interface *)(interface))->elemsize); \
1205#define STARPU_MATRIX_GET_ALLOCSIZE(interface) ( \
1207 STARPU_MATRIX_CHECK(interface); \
1208 (((struct starpu_matrix_interface *)(interface))->allocsize); \
1216#define STARPU_MATRIX_GET_PTR(interface) (((struct starpu_matrix_interface *)(interface))->ptr)
1223#define STARPU_MATRIX_GET_DEV_HANDLE(interface) (((struct starpu_matrix_interface *)(interface))->dev_handle)
1228#define STARPU_MATRIX_GET_OFFSET(interface) (((struct starpu_matrix_interface *)(interface))->offset)
1233#define STARPU_MATRIX_GET_NX(interface) (((struct starpu_matrix_interface *)(interface))->nx)
1238#define STARPU_MATRIX_GET_NY(interface) (((struct starpu_matrix_interface *)(interface))->ny)
1243#define STARPU_MATRIX_GET_LD(interface) (((struct starpu_matrix_interface *)(interface))->ld)
1248#define STARPU_MATRIX_GET_ELEMSIZE(interface) (((struct starpu_matrix_interface *)(interface))->elemsize)
1252#define STARPU_MATRIX_GET_ALLOCSIZE(interface) (((struct starpu_matrix_interface *)(interface))->allocsize)
1259#define STARPU_MATRIX_SET_NX(interface, newnx) \
1261 STARPU_MATRIX_CHECK(interface); \
1262 (((struct starpu_matrix_interface *)(interface))->nx) = (newnx); \
1269#define STARPU_MATRIX_SET_NY(interface, newny) \
1271 STARPU_MATRIX_CHECK(interface); \
1272 (((struct starpu_matrix_interface *)(interface))->ny) = (newny); \
1280#define STARPU_MATRIX_SET_LD(interface, newld) \
1282 STARPU_MATRIX_CHECK(interface); \
1283 (((struct starpu_matrix_interface *)(interface))->ld) = (newld); \
1324#define STARPU_COO_GET_COLUMNS(interface) (((struct starpu_coo_interface *)(interface))->columns)
1331#define STARPU_COO_GET_COLUMNS_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->columns)
1336#define STARPU_COO_GET_ROWS(interface) (((struct starpu_coo_interface *)(interface))->rows)
1342#define STARPU_COO_GET_ROWS_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->rows)
1347#define STARPU_COO_GET_VALUES(interface) (((struct starpu_coo_interface *)(interface))->values)
1353#define STARPU_COO_GET_VALUES_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->values)
1358#define STARPU_COO_GET_OFFSET 0
1363#define STARPU_COO_GET_NX(interface) (((struct starpu_coo_interface *)(interface))->nx)
1368#define STARPU_COO_GET_NY(interface) (((struct starpu_coo_interface *)(interface))->ny)
1373#define STARPU_COO_GET_NVALUES(interface) (((struct starpu_coo_interface *)(interface))->n_values)
1378#define STARPU_COO_GET_ELEMSIZE(interface) (((struct starpu_coo_interface *)(interface))->elemsize)
1475#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
1476#define STARPU_BLOCK_CHECK(interface) STARPU_ASSERT_MSG((((struct starpu_block_interface *)(interface))->id) == STARPU_BLOCK_INTERFACE_ID, "Error. The given data is not a block.")
1477#define STARPU_BLOCK_GET_PTR(interface) ( \
1479 STARPU_BLOCK_CHECK(interface); \
1480 (((struct starpu_block_interface *)(interface))->ptr); \
1482#define STARPU_BLOCK_GET_DEV_HANDLE(interface) ( \
1484 STARPU_BLOCK_CHECK(interface); \
1485 (((struct starpu_block_interface *)(interface))->dev_handle); \
1487#define STARPU_BLOCK_GET_OFFSET(interface) ( \
1489 STARPU_BLOCK_CHECK(interface); \
1490 (((struct starpu_block_interface *)(interface))->offset); \
1492#define STARPU_BLOCK_GET_NX(interface) ( \
1494 STARPU_BLOCK_CHECK(interface); \
1495 (((struct starpu_block_interface *)(interface))->nx); \
1497#define STARPU_BLOCK_GET_NY(interface) ( \
1499 STARPU_BLOCK_CHECK(interface); \
1500 (((struct starpu_block_interface *)(interface))->ny); \
1502#define STARPU_BLOCK_GET_NZ(interface) ( \
1504 STARPU_BLOCK_CHECK(interface); \
1505 (((struct starpu_block_interface *)(interface))->nz); \
1507#define STARPU_BLOCK_GET_LDY(interface) ( \
1509 STARPU_BLOCK_CHECK(interface); \
1510 (((struct starpu_block_interface *)(interface))->ldy); \
1512#define STARPU_BLOCK_GET_LDZ(interface) ( \
1514 STARPU_BLOCK_CHECK(interface); \
1515 (((struct starpu_block_interface *)(interface))->ldz); \
1517#define STARPU_BLOCK_GET_ELEMSIZE(interface) ( \
1519 STARPU_BLOCK_CHECK(interface); \
1520 (((struct starpu_block_interface *)(interface))->elemsize); \
1526#define STARPU_BLOCK_GET_PTR(interface) (((struct starpu_block_interface *)(interface))->ptr)
1533#define STARPU_BLOCK_GET_DEV_HANDLE(interface) (((struct starpu_block_interface *)(interface))->dev_handle)
1538#define STARPU_BLOCK_GET_OFFSET(interface) (((struct starpu_block_interface *)(interface))->offset)
1543#define STARPU_BLOCK_GET_NX(interface) (((struct starpu_block_interface *)(interface))->nx)
1548#define STARPU_BLOCK_GET_NY(interface) (((struct starpu_block_interface *)(interface))->ny)
1553#define STARPU_BLOCK_GET_NZ(interface) (((struct starpu_block_interface *)(interface))->nz)
1558#define STARPU_BLOCK_GET_LDY(interface) (((struct starpu_block_interface *)(interface))->ldy)
1564#define STARPU_BLOCK_GET_LDZ(interface) (((struct starpu_block_interface *)(interface))->ldz)
1569#define STARPU_BLOCK_GET_ELEMSIZE(interface) (((struct starpu_block_interface *)(interface))->elemsize)
1618void starpu_tensor_data_register(
starpu_data_handle_t *handle,
int home_node, uintptr_t ptr, uint32_t ldy, uint32_t ldz, uint32_t ldt, uint32_t nx, uint32_t ny, uint32_t nz, uint32_t nt,
size_t elemsize);
1681#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
1682#define STARPU_TENSOR_CHECK(interface) STARPU_ASSERT_MSG((((struct starpu_tensor_interface *)(interface))->id) == STARPU_TENSOR_INTERFACE_ID, "Error. The given data is not a tensor.")
1683#define STARPU_TENSOR_GET_PTR(interface) ( \
1685 STARPU_TENSOR_CHECK(interface); \
1686 (((struct starpu_tensor_interface *)(interface))->ptr); \
1688#define STARPU_TENSOR_GET_DEV_HANDLE(interface) ( \
1690 STARPU_TENSOR_CHECK(interface); \
1691 (((struct starpu_tensor_interface *)(interface))->dev_handle); \
1693#define STARPU_TENSOR_GET_OFFSET(interface) ( \
1695 STARPU_TENSOR_CHECK(interface); \
1696 (((struct starpu_tensor_interface *)(interface))->offset); \
1698#define STARPU_TENSOR_GET_NX(interface) ( \
1700 STARPU_TENSOR_CHECK(interface); \
1701 (((struct starpu_tensor_interface *)(interface))->nx); \
1703#define STARPU_TENSOR_GET_NY(interface) ( \
1705 STARPU_TENSOR_CHECK(interface); \
1706 (((struct starpu_tensor_interface *)(interface))->ny); \
1708#define STARPU_TENSOR_GET_NZ(interface) ( \
1710 STARPU_TENSOR_CHECK(interface); \
1711 (((struct starpu_tensor_interface *)(interface))->nz); \
1713#define STARPU_TENSOR_GET_NT(interface) ( \
1715 STARPU_TENSOR_CHECK(interface); \
1716 (((struct starpu_tensor_interface *)(interface))->nt); \
1718#define STARPU_TENSOR_GET_LDY(interface) ( \
1720 STARPU_TENSOR_CHECK(interface); \
1721 (((struct starpu_tensor_interface *)(interface))->ldy); \
1723#define STARPU_TENSOR_GET_LDZ(interface) ( \
1725 STARPU_TENSOR_CHECK(interface); \
1726 (((struct starpu_tensor_interface *)(interface))->ldz); \
1728#define STARPU_TENSOR_GET_LDT(interface) ( \
1730 STARPU_TENSOR_CHECK(interface); \
1731 (((struct starpu_tensor_interface *)(interface))->ldt); \
1733#define STARPU_TENSOR_GET_ELEMSIZE(interface) ( \
1735 STARPU_TENSOR_CHECK(interface); \
1736 (((struct starpu_tensor_interface *)(interface))->elemsize); \
1742#define STARPU_TENSOR_GET_PTR(interface) (((struct starpu_tensor_interface *)(interface))->ptr)
1749#define STARPU_TENSOR_GET_DEV_HANDLE(interface) (((struct starpu_tensor_interface *)(interface))->dev_handle)
1754#define STARPU_TENSOR_GET_OFFSET(interface) (((struct starpu_tensor_interface *)(interface))->offset)
1759#define STARPU_TENSOR_GET_NX(interface) (((struct starpu_tensor_interface *)(interface))->nx)
1764#define STARPU_TENSOR_GET_NY(interface) (((struct starpu_tensor_interface *)(interface))->ny)
1769#define STARPU_TENSOR_GET_NZ(interface) (((struct starpu_tensor_interface *)(interface))->nz)
1774#define STARPU_TENSOR_GET_NT(interface) (((struct starpu_tensor_interface *)(interface))->nt)
1779#define STARPU_TENSOR_GET_LDY(interface) (((struct starpu_tensor_interface *)(interface))->ldy)
1785#define STARPU_TENSOR_GET_LDZ(interface) (((struct starpu_tensor_interface *)(interface))->ldz)
1791#define STARPU_TENSOR_GET_LDT(interface) (((struct starpu_tensor_interface *)(interface))->ldt)
1796#define STARPU_TENSOR_GET_ELEMSIZE(interface) (((struct starpu_tensor_interface *)(interface))->elemsize)
1893#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
1894#define STARPU_NDIM_CHECK(interface) STARPU_ASSERT_MSG((((struct starpu_ndim_interface *)(interface))->id) == STARPU_NDIM_INTERFACE_ID, "Error. The given data is not a ndim.")
1895#define STARPU_NDIM_GET_PTR(interface) ( \
1897 STARPU_NDIM_CHECK(interface); \
1898 (((struct starpu_ndim_interface *)(interface))->ptr); \
1900#define STARPU_NDIM_GET_DEV_HANDLE(interface) ( \
1902 STARPU_NDIM_CHECK(interface); \
1903 (((struct starpu_ndim_interface *)(interface))->dev_handle); \
1905#define STARPU_NDIM_GET_OFFSET(interface) ( \
1907 STARPU_NDIM_CHECK(interface); \
1908 (((struct starpu_ndim_interface *)(interface))->offset); \
1910#define STARPU_NDIM_GET_NN(interface) ( \
1912 STARPU_NDIM_CHECK(interface); \
1913 (((struct starpu_ndim_interface *)(interface))->nn); \
1915#define STARPU_NDIM_GET_LDN(interface) ( \
1917 STARPU_NDIM_CHECK(interface); \
1918 (((struct starpu_ndim_interface *)(interface))->ldn); \
1920#define STARPU_NDIM_GET_NDIM(interface) ( \
1922 STARPU_NDIM_CHECK(interface); \
1923 (((struct starpu_ndim_interface *)(interface))->ndim); \
1925#define STARPU_NDIM_GET_ELEMSIZE(interface) ( \
1927 STARPU_NDIM_CHECK(interface); \
1928 (((struct starpu_ndim_interface *)(interface))->elemsize); \
1934#define STARPU_NDIM_GET_PTR(interface) (((struct starpu_ndim_interface *)(interface))->ptr)
1941#define STARPU_NDIM_GET_DEV_HANDLE(interface) (((struct starpu_ndim_interface *)(interface))->dev_handle)
1946#define STARPU_NDIM_GET_OFFSET(interface) (((struct starpu_ndim_interface *)(interface))->offset)
1951#define STARPU_NDIM_GET_NN(interface) (((struct starpu_ndim_interface *)(interface))->nn)
1956#define STARPU_NDIM_GET_LDN(interface) (((struct starpu_ndim_interface *)(interface))->ldn)
1961#define STARPU_NDIM_GET_NDIM(interface) (((struct starpu_ndim_interface *)(interface))->ndim)
1966#define STARPU_NDIM_GET_ELEMSIZE(interface) (((struct starpu_ndim_interface *)(interface))->elemsize)
2042#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
2043#define STARPU_VECTOR_CHECK(interface) STARPU_ASSERT_MSG((((struct starpu_vector_interface *)(interface))->id) == STARPU_VECTOR_INTERFACE_ID, "Error. The given data is not a vector.")
2044#define STARPU_VECTOR_GET_PTR(interface) ( \
2046 STARPU_VECTOR_CHECK(interface); \
2047 (((struct starpu_vector_interface *)(interface))->ptr); \
2049#define STARPU_VECTOR_GET_DEV_HANDLE(interface) ( \
2051 STARPU_VECTOR_CHECK(interface); \
2052 (((struct starpu_vector_interface *)(interface))->dev_handle); \
2054#define STARPU_VECTOR_GET_OFFSET(interface) ( \
2056 STARPU_VECTOR_CHECK(interface); \
2057 (((struct starpu_vector_interface *)(interface))->offset); \
2059#define STARPU_VECTOR_GET_NX(interface) ( \
2061 STARPU_VECTOR_CHECK(interface); \
2062 (((struct starpu_vector_interface *)(interface))->nx); \
2064#define STARPU_VECTOR_GET_ELEMSIZE(interface) ( \
2066 STARPU_VECTOR_CHECK(interface); \
2067 (((struct starpu_vector_interface *)(interface))->elemsize); \
2069#define STARPU_VECTOR_GET_ALLOCSIZE(interface) ( \
2071 STARPU_VECTOR_CHECK(interface); \
2072 (((struct starpu_vector_interface *)(interface))->allocsize); \
2074#define STARPU_VECTOR_GET_SLICE_BASE(interface) ( \
2076 STARPU_VECTOR_CHECK(interface); \
2077 (((struct starpu_vector_interface *)(interface))->slice_base); \
2085#define STARPU_VECTOR_GET_PTR(interface) (((struct starpu_vector_interface *)(interface))->ptr)
2091#define STARPU_VECTOR_GET_DEV_HANDLE(interface) (((struct starpu_vector_interface *)(interface))->dev_handle)
2096#define STARPU_VECTOR_GET_OFFSET(interface) (((struct starpu_vector_interface *)(interface))->offset)
2101#define STARPU_VECTOR_GET_NX(interface) (((struct starpu_vector_interface *)(interface))->nx)
2106#define STARPU_VECTOR_GET_ELEMSIZE(interface) (((struct starpu_vector_interface *)(interface))->elemsize)
2111#define STARPU_VECTOR_GET_ALLOCSIZE(interface) (((struct starpu_vector_interface *)(interface))->allocsize)
2116#define STARPU_VECTOR_GET_SLICE_BASE(interface) (((struct starpu_vector_interface *)(interface))->slice_base)
2123#define STARPU_VECTOR_SET_NX(interface, newnx) \
2125 STARPU_VECTOR_CHECK(interface); \
2126 (((struct starpu_vector_interface *)(interface))->nx) = (newnx); \
2185#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
2186#define STARPU_VARIABLE_CHECK(interface) STARPU_ASSERT_MSG((((struct starpu_variable_interface *)(interface))->id) == STARPU_VARIABLE_INTERFACE_ID, "Error. The given data is not a variable.")
2187#define STARPU_VARIABLE_GET_PTR(interface) ( \
2189 STARPU_VARIABLE_CHECK(interface); \
2190 (((struct starpu_variable_interface *)(interface))->ptr); \
2192#define STARPU_VARIABLE_GET_OFFSET(interface) ( \
2194 STARPU_VARIABLE_CHECK(interface); \
2195 (((struct starpu_variable_interface *)(interface))->offset); \
2197#define STARPU_VARIABLE_GET_ELEMSIZE(interface) ( \
2199 STARPU_VARIABLE_CHECK(interface); \
2200 (((struct starpu_variable_interface *)(interface))->elemsize); \
2202#define STARPU_VARIABLE_GET_DEV_HANDLE(interface) ( \
2204 STARPU_VARIABLE_CHECK(interface); \
2205 (((struct starpu_variable_interface *)(interface))->ptr); \
2211#define STARPU_VARIABLE_GET_PTR(interface) (((struct starpu_variable_interface *)(interface))->ptr)
2216#define STARPU_VARIABLE_GET_OFFSET(interface) (((struct starpu_variable_interface *)(interface))->offset)
2220#define STARPU_VARIABLE_GET_ELEMSIZE(interface) (((struct starpu_variable_interface *)(interface))->elemsize)
2227#define STARPU_VARIABLE_GET_DEV_HANDLE(interface) (((struct starpu_variable_interface *)(interface))->ptr)
2332#define STARPU_CSR_GET_NNZ(interface) (((struct starpu_csr_interface *)(interface))->nnz)
2337#define STARPU_CSR_GET_NROW(interface) (((struct starpu_csr_interface *)(interface))->nrow)
2342#define STARPU_CSR_GET_NZVAL(interface) (((struct starpu_csr_interface *)(interface))->nzval)
2348#define STARPU_CSR_GET_NZVAL_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->nnz)
2353#define STARPU_CSR_GET_COLIND(interface) (((struct starpu_csr_interface *)(interface))->colind)
2358#define STARPU_CSR_GET_RAM_COLIND(interface) (((struct starpu_csr_interface *)(interface))->ram_colind)
2364#define STARPU_CSR_GET_COLIND_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->colind)
2369#define STARPU_CSR_GET_ROWPTR(interface) (((struct starpu_csr_interface *)(interface))->rowptr)
2374#define STARPU_CSR_GET_RAM_ROWPTR(interface) (((struct starpu_csr_interface *)(interface))->ram_rowptr)
2380#define STARPU_CSR_GET_ROWPTR_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->rowptr)
2385#define STARPU_CSR_GET_OFFSET 0
2390#define STARPU_CSR_GET_FIRSTENTRY(interface) (((struct starpu_csr_interface *)(interface))->firstentry)
2395#define STARPU_CSR_GET_ELEMSIZE(interface) (((struct starpu_csr_interface *)(interface))->elemsize)
2513void starpu_bcsr_data_register(
starpu_data_handle_t *handle,
int home_node, uint32_t nnz, uint32_t nrow, uintptr_t nzval, uint32_t *colind, uint32_t *rowptr, uint32_t firstentry, uint32_t r, uint32_t c,
size_t elemsize);
2571#define STARPU_BCSR_GET_NNZ(interface) (((struct starpu_bcsr_interface *)(interface))->nnz)
2576#define STARPU_BCSR_GET_NROW(interface) (((struct starpu_bcsr_interface *)(interface))->nrow)
2581#define STARPU_BCSR_GET_NZVAL(interface) (((struct starpu_bcsr_interface *)(interface))->nzval)
2587#define STARPU_BCSR_GET_NZVAL_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->nnz)
2592#define STARPU_BCSR_GET_COLIND(interface) (((struct starpu_bcsr_interface *)(interface))->colind)
2597#define STARPU_BCSR_GET_RAM_COLIND(interface) (((struct starpu_bcsr_interface *)(interface))->ram_colind)
2603#define STARPU_BCSR_GET_COLIND_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->colind)
2608#define STARPU_BCSR_GET_ROWPTR(interface) (((struct starpu_bcsr_interface *)(interface))->rowptr)
2613#define STARPU_BCSR_GET_RAM_ROWPTR(interface) (((struct starpu_bcsr_interface *)(interface))->ram_rowptr)
2619#define STARPU_BCSR_GET_ROWPTR_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->rowptr)
2624#define STARPU_BCSR_GET_FIRSTENTRY(interface) (((struct starpu_bcsr_interface *)(interface))->firstentry)
2629#define STARPU_BCSR_GET_R(interface) (((struct starpu_bcsr_interface *)(interface))->r)
2634#define STARPU_BCSR_GET_C(interface) (((struct starpu_bcsr_interface *)(interface))->c)
2638#define STARPU_BCSR_GET_ELEMSIZE(interface) (((struct starpu_bcsr_interface *)(interface))->elemsize)
2643#define STARPU_BCSR_GET_OFFSET 0
2695#define STARPU_MULTIFORMAT_GET_CPU_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->cpu_ptr)
2699#define STARPU_MULTIFORMAT_GET_CUDA_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->cuda_ptr)
2703#define STARPU_MULTIFORMAT_GET_HIP_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->hip_ptr)
2708#define STARPU_MULTIFORMAT_GET_OPENCL_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->opencl_ptr)
2712#define STARPU_MULTIFORMAT_GET_NX(interface) (((struct starpu_multiformat_interface *)(interface))->nx)
Definition starpu_task.h:338
int(* peek_data)(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count)
Definition starpu_data_interfaces.h:653
size_t cuda_elemsize
Definition starpu_data_interfaces.h:2661
uintptr_t dev_handle
Definition starpu_data_interfaces.h:2148
uint32_t(* footprint)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:561
size_t offset
Definition starpu_data_interfaces.h:1400
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:2145
void(* unregister_data_handle)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:399
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1588
size_t(* get_size)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:538
int(* can_copy)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, unsigned handling_node)
Definition starpu_data_interfaces.h:113
uint32_t nrow
Definition starpu_data_interfaces.h:2420
int(* ram_to_max_fpga)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:148
size_t elemsize
Definition starpu_data_interfaces.h:2442
size_t ndim
Definition starpu_data_interfaces.h:1821
int(* update_map)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:498
uint32_t nnz
Definition starpu_data_interfaces.h:2419
int(* cuda_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:155
int(* alloc_compare)(void *data_interface_a, void *data_interface_b)
Definition starpu_data_interfaces.h:588
uintptr_t ptr
Definition starpu_data_interfaces.h:2147
uintptr_t ptr
Definition starpu_data_interfaces.h:1815
uint32_t * nn
Definition starpu_data_interfaces.h:1819
char dontcache
Definition starpu_data_interfaces.h:625
int(* map_data)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:484
uint32_t nz
Definition starpu_data_interfaces.h:1595
size_t allocsize
Definition starpu_data_interfaces.h:1098
uintptr_t values
Definition starpu_data_interfaces.h:1305
int(* ram_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:120
uint32_t * colind
Definition starpu_data_interfaces.h:2270
size_t elemsize
Definition starpu_data_interfaces.h:1600
size_t elemsize
Definition starpu_data_interfaces.h:2277
size_t elemsize
Definition starpu_data_interfaces.h:1097
uint32_t firstentry
Definition starpu_data_interfaces.h:2275
uintptr_t ptr
Definition starpu_data_interfaces.h:1088
size_t offset
Definition starpu_data_interfaces.h:1817
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1986
uint32_t ldy
Definition starpu_data_interfaces.h:1404
uint32_t * ram_rowptr
Definition starpu_data_interfaces.h:2435
uint32_t nz
Definition starpu_data_interfaces.h:1403
int(* ram_to_cuda_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_cudaStream_t stream)
Definition starpu_data_interfaces.h:208
uint32_t * colind
Definition starpu_data_interfaces.h:2423
int(* free_meta)(void *data_interface)
Definition starpu_data_interfaces.h:681
size_t elemsize
Definition starpu_data_interfaces.h:2150
uint32_t ld
Definition starpu_data_interfaces.h:1093
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1301
uint32_t * rows
Definition starpu_data_interfaces.h:1304
int(* pack_data)(starpu_data_handle_t handle, unsigned node, void **ptr, starpu_ssize_t *count)
Definition starpu_data_interfaces.h:647
int(* hip_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:169
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1816
int(* ram_to_cuda)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:127
size_t cpu_elemsize
Definition starpu_data_interfaces.h:2657
int(* pack_meta)(void *data_interface, void **ptr, starpu_ssize_t *count)
Definition starpu_data_interfaces.h:668
uint32_t ldz
Definition starpu_data_interfaces.h:1598
uintptr_t nzval
Definition starpu_data_interfaces.h:2269
int(* hip_to_hip_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream)
Definition starpu_data_interfaces.h:264
enum starpu_data_interface_id interfaceid
Definition starpu_data_interfaces.h:607
uintptr_t ptr
Definition starpu_data_interfaces.h:1985
int(* compare)(void *data_interface_a, void *data_interface_b)
Definition starpu_data_interfaces.h:579
size_t offset
Definition starpu_data_interfaces.h:1592
size_t opencl_elemsize
Definition starpu_data_interfaces.h:2658
size_t elemsize
Definition starpu_data_interfaces.h:1822
uint32_t * ldn
Definition starpu_data_interfaces.h:1820
uintptr_t ptr
Definition starpu_data_interfaces.h:1398
uint32_t n_values
Definition starpu_data_interfaces.h:1308
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1399
uint32_t * rowptr
Definition starpu_data_interfaces.h:2424
size_t interface_size
Definition starpu_data_interfaces.h:612
uint32_t * ram_rowptr
Definition starpu_data_interfaces.h:2273
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1591
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:2265
uint32_t slice_base
Definition starpu_data_interfaces.h:1990
uint32_t nrow
Definition starpu_data_interfaces.h:2268
int(* opencl_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:183
uint32_t ny
Definition starpu_data_interfaces.h:1402
int(* opencl_to_opencl)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:190
size_t(* get_max_size)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:554
uint32_t nt
Definition starpu_data_interfaces.h:1596
size_t elemsize
Definition starpu_data_interfaces.h:1989
uintptr_t ptr
Definition starpu_data_interfaces.h:1590
int(* hip_to_hip)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:176
char * name
Definition starpu_data_interfaces.h:686
size_t(* get_alloc_size)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:546
int(* hip_to_ram_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream)
Definition starpu_data_interfaces.h:254
uint32_t firstentry
Definition starpu_data_interfaces.h:2437
int(* cuda_to_cuda)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:162
uint32_t ldz
Definition starpu_data_interfaces.h:1405
uint32_t r
Definition starpu_data_interfaces.h:2439
struct starpu_codelet * cpu_to_cuda_cl
Definition starpu_data_interfaces.h:2662
int(* cuda_to_cuda_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_cudaStream_t stream)
Definition starpu_data_interfaces.h:228
uint32_t nnz
Definition starpu_data_interfaces.h:2267
size_t offset
Definition starpu_data_interfaces.h:1090
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1087
size_t offset
Definition starpu_data_interfaces.h:1987
int(* ram_to_hip)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:134
void(* display)(starpu_data_handle_t handle, FILE *f)
Definition starpu_data_interfaces.h:594
int(* max_fpga_to_ram_async)(void *src_interface, unsigned srd_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:326
int(* unpack_data)(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count)
Definition starpu_data_interfaces.h:660
uint32_t ny
Definition starpu_data_interfaces.h:1594
uint32_t(* alloc_footprint)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:571
size_t allocsize
Definition starpu_data_interfaces.h:1991
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1983
uint32_t * columns
Definition starpu_data_interfaces.h:1303
int(* ram_to_max_fpga_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:316
struct starpu_codelet * cpu_to_opencl_cl
Definition starpu_data_interfaces.h:2659
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1089
void(* register_data_handle)(starpu_data_handle_t handle, int home_node, void *data_interface)
Definition starpu_data_interfaces.h:386
int(* cuda_to_ram_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_cudaStream_t stream)
Definition starpu_data_interfaces.h:218
void(* init)(void *data_interface)
Definition starpu_data_interfaces.h:505
void(* free_data_on_node)(void *data_interface, unsigned node)
Definition starpu_data_interfaces.h:425
void(* reuse_data_on_node)(void *dst_data_interface, const void *cached_interface, unsigned node)
Definition starpu_data_interfaces.h:477
size_t elemsize
Definition starpu_data_interfaces.h:1309
int(* opencl_to_opencl_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, cl_event *event)
Definition starpu_data_interfaces.h:301
uint32_t c
Definition starpu_data_interfaces.h:2440
starpu_ssize_t(* describe)(void *data_interface, char *buf, size_t size)
Definition starpu_data_interfaces.h:602
struct starpu_codelet * cuda_to_cpu_cl
Definition starpu_data_interfaces.h:2663
int(* unpack_meta)(void **data_interface, void *ptr, starpu_ssize_t *count)
Definition starpu_data_interfaces.h:676
struct starpu_codelet * opencl_to_cpu_cl
Definition starpu_data_interfaces.h:2660
uint32_t ny
Definition starpu_data_interfaces.h:1092
uint32_t nx
Definition starpu_data_interfaces.h:1988
int(* any_to_any)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, void *async_data)
Definition starpu_data_interfaces.h:345
size_t allocsize
Definition starpu_data_interfaces.h:1818
int(* opencl_to_ram_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, cl_event *event)
Definition starpu_data_interfaces.h:291
int(* unmap_data)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:491
uint32_t * ram_colind
Definition starpu_data_interfaces.h:2434
int(* ram_to_hip_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream)
Definition starpu_data_interfaces.h:244
int(* max_fpga_to_ram)(void *src_interface, unsigned srd_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:197
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1396
size_t elemsize
Definition starpu_data_interfaces.h:1406
uint32_t ny
Definition starpu_data_interfaces.h:1307
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:2417
uint32_t * rowptr
Definition starpu_data_interfaces.h:2271
size_t offset
Definition starpu_data_interfaces.h:2149
uint32_t * ram_colind
Definition starpu_data_interfaces.h:2272
uint32_t ldy
Definition starpu_data_interfaces.h:1597
int(* ram_to_opencl)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:141
uint32_t nx
Definition starpu_data_interfaces.h:1091
uintptr_t nzval
Definition starpu_data_interfaces.h:2422
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1813
void(* cache_data_on_node)(void *cached_interface, void *src_interface, unsigned node)
Definition starpu_data_interfaces.h:455
uint32_t nx
Definition starpu_data_interfaces.h:1401
uint32_t ldt
Definition starpu_data_interfaces.h:1599
uint32_t nx
Definition starpu_data_interfaces.h:1306
uint32_t nx
Definition starpu_data_interfaces.h:1593
starpu_ssize_t(* allocate_data_on_node)(void *data_interface, unsigned node)
Definition starpu_data_interfaces.h:416
int(* ram_to_opencl_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, cl_event *event)
Definition starpu_data_interfaces.h:281
const struct starpu_data_copy_methods * copy_methods
Definition starpu_data_interfaces.h:515
void * starpu_data_handle_to_pointer(starpu_data_handle_t handle, unsigned node)
uint32_t starpu_tensor_get_local_ldt(starpu_data_handle_t handle)
void starpu_free_on_node_flags(unsigned dst_node, uintptr_t addr, size_t size, int flags)
uint32_t starpu_tensor_get_local_ldy(starpu_data_handle_t handle)
void starpu_vector_data_register_allocsize(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t nx, size_t elemsize, size_t allocsize)
uint32_t starpu_vector_get_nx(starpu_data_handle_t handle)
void starpu_ndim_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset, uint32_t *ldn)
void starpu_tensor_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset, uint32_t ldy, uint32_t ldz, uint32_t ldt)
void starpu_data_register_same(starpu_data_handle_t *handledst, starpu_data_handle_t handlesrc)
void starpu_data_ptr_register(starpu_data_handle_t handle, unsigned node)
uintptr_t starpu_ndim_get_local_ptr(starpu_data_handle_t handle)
void starpu_matrix_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset, uint32_t ld)
int starpu_interface_copynd(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, size_t dst_offset, unsigned dst_node, size_t elemsize, size_t ndim, uint32_t *nn, uint32_t *ldn_src, uint32_t *ldn_dst, void *async_data)
void starpu_malloc_on_node_set_default_flags(unsigned node, int flags)
starpu_ssize_t starpu_data_get_max_size(starpu_data_handle_t handle)
int starpu_data_pack_node(starpu_data_handle_t handle, unsigned node, void **ptr, starpu_ssize_t *count)
int starpu_data_get_home_node(starpu_data_handle_t handle)
void starpu_bcsr_data_register(starpu_data_handle_t *handle, int home_node, uint32_t nnz, uint32_t nrow, uintptr_t nzval, uint32_t *colind, uint32_t *rowptr, uint32_t firstentry, uint32_t r, uint32_t c, size_t elemsize)
void starpu_matrix_data_register_allocsize(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t ld, uint32_t nx, uint32_t ny, size_t elemsize, size_t allocsize)
void starpu_multiformat_data_register(starpu_data_handle_t *handle, int home_node, void *ptr, uint32_t nobjects, struct starpu_multiformat_data_interface_ops *format_ops)
void starpu_ndim_data_register(starpu_data_handle_t *handleptr, int home_node, uintptr_t ptr, uint32_t *ldn, uint32_t *nn, size_t ndim, size_t elemsize)
size_t starpu_vector_get_allocsize(starpu_data_handle_t handle)
uint32_t starpu_tensor_get_local_ldz(starpu_data_handle_t handle)
uint32_t starpu_csr_get_firstentry(starpu_data_handle_t handle)
size_t starpu_bcsr_get_elemsize(starpu_data_handle_t handle)
void starpu_vector_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t nx, size_t elemsize)
uint32_t starpu_matrix_get_nx(starpu_data_handle_t handle)
size_t starpu_block_get_elemsize(starpu_data_handle_t handle)
int starpu_interface_copy3d(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, size_t dst_offset, unsigned dst_node, size_t blocksize, size_t numblocks1, size_t ld1_src, size_t ld1_dst, size_t numblocks2, size_t ld2_src, size_t ld2_dst, void *async_data)
int starpu_data_unpack_node(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count)
uintptr_t starpu_csr_get_local_nzval(starpu_data_handle_t handle)
void starpu_interface_start_driver_copy_async(unsigned src_node, unsigned dst_node, double *start)
uintptr_t starpu_variable_get_local_ptr(starpu_data_handle_t handle)
uint32_t * starpu_bcsr_get_local_colind(starpu_data_handle_t handle)
void starpu_data_print(starpu_data_handle_t handle, unsigned node, FILE *stream)
uint32_t starpu_matrix_get_local_ld(starpu_data_handle_t handle)
void starpu_interface_end_driver_copy_async(unsigned src_node, unsigned dst_node, double start)
uint32_t starpu_tensor_get_nx(starpu_data_handle_t handle)
uint32_t starpu_csr_get_nnz(starpu_data_handle_t handle)
uint32_t starpu_block_get_local_ldz(starpu_data_handle_t handle)
uintptr_t starpu_block_get_local_ptr(starpu_data_handle_t handle)
uint32_t * starpu_ndim_get_nn(starpu_data_handle_t handle)
uint32_t starpu_bcsr_get_c(starpu_data_handle_t handle)
int starpu_interface_copy4d(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, size_t dst_offset, unsigned dst_node, size_t blocksize, size_t numblocks1, size_t ld1_src, size_t ld1_dst, size_t numblocks2, size_t ld2_src, size_t ld2_dst, size_t numblocks3, size_t ld3_src, size_t ld3_dst, void *async_data)
uint32_t starpu_matrix_get_ny(starpu_data_handle_t handle)
uint32_t starpu_csr_get_nrow(starpu_data_handle_t handle)
uint32_t starpu_tensor_get_nz(starpu_data_handle_t handle)
uint32_t * starpu_csr_get_local_rowptr(starpu_data_handle_t handle)
int starpu_interface_copy(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, size_t dst_offset, unsigned dst_node, size_t size, void *async_data)
void starpu_free_on_node(unsigned dst_node, uintptr_t addr, size_t size)
void starpu_data_register(starpu_data_handle_t *handleptr, int home_node, void *data_interface, struct starpu_data_interface_ops *ops)
uint32_t starpu_tensor_get_ny(starpu_data_handle_t handle)
uint32_t starpu_block_get_ny(starpu_data_handle_t handle)
void starpu_matrix_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t ld, uint32_t nx, uint32_t ny, size_t elemsize)
void starpu_data_register_ops(struct starpu_data_interface_ops *ops)
uint32_t starpu_block_get_nx(starpu_data_handle_t handle)
uint32_t starpu_tensor_get_nt(starpu_data_handle_t handle)
uint32_t starpu_bcsr_get_nnz(starpu_data_handle_t handle)
void starpu_block_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset, uint32_t ldy, uint32_t ldz)
uint32_t starpu_bcsr_get_firstentry(starpu_data_handle_t handle)
void starpu_coo_data_register(starpu_data_handle_t *handleptr, int home_node, uint32_t nx, uint32_t ny, uint32_t n_values, uint32_t *columns, uint32_t *rows, uintptr_t values, size_t elemsize)
uint32_t * starpu_bcsr_get_local_rowptr(starpu_data_handle_t handle)
int starpu_data_unpack(starpu_data_handle_t handle, void *ptr, size_t count)
size_t starpu_variable_get_elemsize(starpu_data_handle_t handle)
size_t starpu_matrix_get_allocsize(starpu_data_handle_t handle)
uintptr_t starpu_matrix_get_local_ptr(starpu_data_handle_t handle)
void starpu_block_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t ldy, uint32_t ldz, uint32_t nx, uint32_t ny, uint32_t nz, size_t elemsize)
void starpu_tensor_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t ldy, uint32_t ldz, uint32_t ldt, uint32_t nx, uint32_t ny, uint32_t nz, uint32_t nt, size_t elemsize)
starpu_data_interface_id
Definition starpu_data_interfaces.h:352
void starpu_interface_data_copy(unsigned src_node, unsigned dst_node, size_t size)
uintptr_t starpu_malloc_on_node_flags(unsigned dst_node, size_t size, int flags)
size_t starpu_csr_get_elemsize(starpu_data_handle_t handle)
uint32_t starpu_ndim_get_ni(starpu_data_handle_t handle, size_t i)
uint32_t starpu_bcsr_get_nrow(starpu_data_handle_t handle)
void * starpu_data_get_interface_on_node(starpu_data_handle_t handle, unsigned memory_node)
uint32_t * starpu_ndim_get_local_ldn(starpu_data_handle_t handle)
void starpu_void_data_register(starpu_data_handle_t *handle)
uintptr_t starpu_malloc_on_node(unsigned dst_node, size_t size)
void starpu_csr_data_register(starpu_data_handle_t *handle, int home_node, uint32_t nnz, uint32_t nrow, uintptr_t nzval, uint32_t *colind, uint32_t *rowptr, uint32_t firstentry, size_t elemsize)
void * starpu_data_get_local_ptr(starpu_data_handle_t handle)
int starpu_interface_unmap(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, unsigned dst_node, size_t size)
size_t starpu_data_get_size(starpu_data_handle_t handle)
size_t starpu_data_get_alloc_size(starpu_data_handle_t handle)
int starpu_interface_update_map(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, size_t dst_offset, unsigned dst_node, size_t size)
uint32_t starpu_block_get_nz(starpu_data_handle_t handle)
void starpu_vector_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset)
int starpu_data_peek(starpu_data_handle_t handle, void *ptr, size_t count)
uint32_t starpu_ndim_get_local_ldi(starpu_data_handle_t handle, size_t i)
size_t starpu_ndim_get_elemsize(starpu_data_handle_t handle)
size_t starpu_vector_get_elemsize(starpu_data_handle_t handle)
uintptr_t starpu_vector_get_local_ptr(starpu_data_handle_t handle)
int starpu_interface_copy2d(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, size_t dst_offset, unsigned dst_node, size_t blocksize, size_t numblocks, size_t ld_src, size_t ld_dst, void *async_data)
uint32_t * starpu_csr_get_local_colind(starpu_data_handle_t handle)
enum starpu_data_interface_id starpu_data_get_interface_id(starpu_data_handle_t handle)
int starpu_data_pack(starpu_data_handle_t handle, void **ptr, starpu_ssize_t *count)
uintptr_t starpu_tensor_get_local_ptr(starpu_data_handle_t handle)
uint32_t starpu_bcsr_get_r(starpu_data_handle_t handle)
size_t starpu_tensor_get_elemsize(starpu_data_handle_t handle)
uintptr_t starpu_interface_map(uintptr_t src, size_t src_offset, unsigned src_node, unsigned dst_node, size_t size, int *ret)
uintptr_t starpu_bcsr_get_local_nzval(starpu_data_handle_t handle)
int starpu_data_peek_node(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count)
size_t starpu_matrix_get_elemsize(starpu_data_handle_t handle)
uint32_t starpu_block_get_local_ldy(starpu_data_handle_t handle)
size_t starpu_ndim_get_ndim(starpu_data_handle_t handle)
int starpu_data_interface_get_next_id(void)
void starpu_variable_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset)
void starpu_variable_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, size_t size)
@ STARPU_BCSR_INTERFACE_ID
Definition starpu_data_interfaces.h:358
@ STARPU_MATRIX_INTERFACE_ID
Definition starpu_data_interfaces.h:354
@ STARPU_VARIABLE_INTERFACE_ID
Definition starpu_data_interfaces.h:359
@ STARPU_VECTOR_INTERFACE_ID
Definition starpu_data_interfaces.h:356
@ STARPU_CSR_INTERFACE_ID
Definition starpu_data_interfaces.h:357
@ STARPU_UNKNOWN_INTERFACE_ID
Definition starpu_data_interfaces.h:353
@ STARPU_TENSOR_INTERFACE_ID
Definition starpu_data_interfaces.h:363
@ STARPU_COO_INTERFACE_ID
Definition starpu_data_interfaces.h:362
@ STARPU_MAX_INTERFACE_ID
Definition starpu_data_interfaces.h:365
@ STARPU_MULTIFORMAT_INTERFACE_ID
Definition starpu_data_interfaces.h:361
@ STARPU_VOID_INTERFACE_ID
Definition starpu_data_interfaces.h:360
@ STARPU_NDIM_INTERFACE_ID
Definition starpu_data_interfaces.h:364
@ STARPU_BLOCK_INTERFACE_ID
Definition starpu_data_interfaces.h:355
Definition starpu_data_interfaces.h:2416
Definition starpu_data_interfaces.h:1395
Definition starpu_data_interfaces.h:1300
Definition starpu_data_interfaces.h:2264
Definition starpu_data_interfaces.h:105
Definition starpu_data_interfaces.h:372
Definition starpu_data_interfaces.h:1086
Definition starpu_data_interfaces.h:1812
Definition starpu_data_interfaces.h:1587
Definition starpu_data_interfaces.h:2144
Definition starpu_data_interfaces.h:1982
struct _starpu_data_state * starpu_data_handle_t
Definition starpu_data.h:45