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,
1060uintptr_t
starpu_interface_map(uintptr_t src,
size_t src_offset,
unsigned src_node,
unsigned dst_node,
size_t size,
int *ret);
1065int starpu_interface_unmap(uintptr_t src,
size_t src_offset,
unsigned src_node, uintptr_t dst,
unsigned dst_node,
size_t size);
1070int 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);
1167#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
1168#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.")
1169#define STARPU_MATRIX_GET_PTR(interface) ( \
1171 STARPU_MATRIX_CHECK(interface); \
1172 (((struct starpu_matrix_interface *)(interface))->ptr); \
1174#define STARPU_MATRIX_GET_DEV_HANDLE(interface) ( \
1176 STARPU_MATRIX_CHECK(interface); \
1177 (((struct starpu_matrix_interface *)(interface))->dev_handle); \
1179#define STARPU_MATRIX_GET_OFFSET(interface) ( \
1181 STARPU_MATRIX_CHECK(interface); \
1182 (((struct starpu_matrix_interface *)(interface))->offset); \
1184#define STARPU_MATRIX_GET_NX(interface) ( \
1186 STARPU_MATRIX_CHECK(interface); \
1187 (((struct starpu_matrix_interface *)(interface))->nx); \
1189#define STARPU_MATRIX_GET_NY(interface) ( \
1191 STARPU_MATRIX_CHECK(interface); \
1192 (((struct starpu_matrix_interface *)(interface))->ny); \
1194#define STARPU_MATRIX_GET_LD(interface) ( \
1196 STARPU_MATRIX_CHECK(interface); \
1197 (((struct starpu_matrix_interface *)(interface))->ld); \
1199#define STARPU_MATRIX_GET_ELEMSIZE(interface) ( \
1201 STARPU_MATRIX_CHECK(interface); \
1202 (((struct starpu_matrix_interface *)(interface))->elemsize); \
1204#define STARPU_MATRIX_GET_ALLOCSIZE(interface) ( \
1206 STARPU_MATRIX_CHECK(interface); \
1207 (((struct starpu_matrix_interface *)(interface))->allocsize); \
1215#define STARPU_MATRIX_GET_PTR(interface) (((struct starpu_matrix_interface *)(interface))->ptr)
1222#define STARPU_MATRIX_GET_DEV_HANDLE(interface) (((struct starpu_matrix_interface *)(interface))->dev_handle)
1227#define STARPU_MATRIX_GET_OFFSET(interface) (((struct starpu_matrix_interface *)(interface))->offset)
1232#define STARPU_MATRIX_GET_NX(interface) (((struct starpu_matrix_interface *)(interface))->nx)
1237#define STARPU_MATRIX_GET_NY(interface) (((struct starpu_matrix_interface *)(interface))->ny)
1242#define STARPU_MATRIX_GET_LD(interface) (((struct starpu_matrix_interface *)(interface))->ld)
1247#define STARPU_MATRIX_GET_ELEMSIZE(interface) (((struct starpu_matrix_interface *)(interface))->elemsize)
1251#define STARPU_MATRIX_GET_ALLOCSIZE(interface) (((struct starpu_matrix_interface *)(interface))->allocsize)
1258#define STARPU_MATRIX_SET_NX(interface, newnx) \
1260 STARPU_MATRIX_CHECK(interface); \
1261 (((struct starpu_matrix_interface *)(interface))->nx) = (newnx); \
1268#define STARPU_MATRIX_SET_NY(interface, newny) \
1270 STARPU_MATRIX_CHECK(interface); \
1271 (((struct starpu_matrix_interface *)(interface))->ny) = (newny); \
1279#define STARPU_MATRIX_SET_LD(interface, newld) \
1281 STARPU_MATRIX_CHECK(interface); \
1282 (((struct starpu_matrix_interface *)(interface))->ld) = (newld); \
1323#define STARPU_COO_GET_COLUMNS(interface) (((struct starpu_coo_interface *)(interface))->columns)
1330#define STARPU_COO_GET_COLUMNS_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->columns)
1335#define STARPU_COO_GET_ROWS(interface) (((struct starpu_coo_interface *)(interface))->rows)
1341#define STARPU_COO_GET_ROWS_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->rows)
1346#define STARPU_COO_GET_VALUES(interface) (((struct starpu_coo_interface *)(interface))->values)
1352#define STARPU_COO_GET_VALUES_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->values)
1357#define STARPU_COO_GET_OFFSET 0
1362#define STARPU_COO_GET_NX(interface) (((struct starpu_coo_interface *)(interface))->nx)
1367#define STARPU_COO_GET_NY(interface) (((struct starpu_coo_interface *)(interface))->ny)
1372#define STARPU_COO_GET_NVALUES(interface) (((struct starpu_coo_interface *)(interface))->n_values)
1377#define STARPU_COO_GET_ELEMSIZE(interface) (((struct starpu_coo_interface *)(interface))->elemsize)
1474#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
1475#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.")
1476#define STARPU_BLOCK_GET_PTR(interface) ( \
1478 STARPU_BLOCK_CHECK(interface); \
1479 (((struct starpu_block_interface *)(interface))->ptr); \
1481#define STARPU_BLOCK_GET_DEV_HANDLE(interface) ( \
1483 STARPU_BLOCK_CHECK(interface); \
1484 (((struct starpu_block_interface *)(interface))->dev_handle); \
1486#define STARPU_BLOCK_GET_OFFSET(interface) ( \
1488 STARPU_BLOCK_CHECK(interface); \
1489 (((struct starpu_block_interface *)(interface))->offset); \
1491#define STARPU_BLOCK_GET_NX(interface) ( \
1493 STARPU_BLOCK_CHECK(interface); \
1494 (((struct starpu_block_interface *)(interface))->nx); \
1496#define STARPU_BLOCK_GET_NY(interface) ( \
1498 STARPU_BLOCK_CHECK(interface); \
1499 (((struct starpu_block_interface *)(interface))->ny); \
1501#define STARPU_BLOCK_GET_NZ(interface) ( \
1503 STARPU_BLOCK_CHECK(interface); \
1504 (((struct starpu_block_interface *)(interface))->nz); \
1506#define STARPU_BLOCK_GET_LDY(interface) ( \
1508 STARPU_BLOCK_CHECK(interface); \
1509 (((struct starpu_block_interface *)(interface))->ldy); \
1511#define STARPU_BLOCK_GET_LDZ(interface) ( \
1513 STARPU_BLOCK_CHECK(interface); \
1514 (((struct starpu_block_interface *)(interface))->ldz); \
1516#define STARPU_BLOCK_GET_ELEMSIZE(interface) ( \
1518 STARPU_BLOCK_CHECK(interface); \
1519 (((struct starpu_block_interface *)(interface))->elemsize); \
1525#define STARPU_BLOCK_GET_PTR(interface) (((struct starpu_block_interface *)(interface))->ptr)
1532#define STARPU_BLOCK_GET_DEV_HANDLE(interface) (((struct starpu_block_interface *)(interface))->dev_handle)
1537#define STARPU_BLOCK_GET_OFFSET(interface) (((struct starpu_block_interface *)(interface))->offset)
1542#define STARPU_BLOCK_GET_NX(interface) (((struct starpu_block_interface *)(interface))->nx)
1547#define STARPU_BLOCK_GET_NY(interface) (((struct starpu_block_interface *)(interface))->ny)
1552#define STARPU_BLOCK_GET_NZ(interface) (((struct starpu_block_interface *)(interface))->nz)
1557#define STARPU_BLOCK_GET_LDY(interface) (((struct starpu_block_interface *)(interface))->ldy)
1563#define STARPU_BLOCK_GET_LDZ(interface) (((struct starpu_block_interface *)(interface))->ldz)
1568#define STARPU_BLOCK_GET_ELEMSIZE(interface) (((struct starpu_block_interface *)(interface))->elemsize)
1617void 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);
1680#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
1681#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.")
1682#define STARPU_TENSOR_GET_PTR(interface) ( \
1684 STARPU_TENSOR_CHECK(interface); \
1685 (((struct starpu_tensor_interface *)(interface))->ptr); \
1687#define STARPU_TENSOR_GET_DEV_HANDLE(interface) ( \
1689 STARPU_TENSOR_CHECK(interface); \
1690 (((struct starpu_tensor_interface *)(interface))->dev_handle); \
1692#define STARPU_TENSOR_GET_OFFSET(interface) ( \
1694 STARPU_TENSOR_CHECK(interface); \
1695 (((struct starpu_tensor_interface *)(interface))->offset); \
1697#define STARPU_TENSOR_GET_NX(interface) ( \
1699 STARPU_TENSOR_CHECK(interface); \
1700 (((struct starpu_tensor_interface *)(interface))->nx); \
1702#define STARPU_TENSOR_GET_NY(interface) ( \
1704 STARPU_TENSOR_CHECK(interface); \
1705 (((struct starpu_tensor_interface *)(interface))->ny); \
1707#define STARPU_TENSOR_GET_NZ(interface) ( \
1709 STARPU_TENSOR_CHECK(interface); \
1710 (((struct starpu_tensor_interface *)(interface))->nz); \
1712#define STARPU_TENSOR_GET_NT(interface) ( \
1714 STARPU_TENSOR_CHECK(interface); \
1715 (((struct starpu_tensor_interface *)(interface))->nt); \
1717#define STARPU_TENSOR_GET_LDY(interface) ( \
1719 STARPU_TENSOR_CHECK(interface); \
1720 (((struct starpu_tensor_interface *)(interface))->ldy); \
1722#define STARPU_TENSOR_GET_LDZ(interface) ( \
1724 STARPU_TENSOR_CHECK(interface); \
1725 (((struct starpu_tensor_interface *)(interface))->ldz); \
1727#define STARPU_TENSOR_GET_LDT(interface) ( \
1729 STARPU_TENSOR_CHECK(interface); \
1730 (((struct starpu_tensor_interface *)(interface))->ldt); \
1732#define STARPU_TENSOR_GET_ELEMSIZE(interface) ( \
1734 STARPU_TENSOR_CHECK(interface); \
1735 (((struct starpu_tensor_interface *)(interface))->elemsize); \
1741#define STARPU_TENSOR_GET_PTR(interface) (((struct starpu_tensor_interface *)(interface))->ptr)
1748#define STARPU_TENSOR_GET_DEV_HANDLE(interface) (((struct starpu_tensor_interface *)(interface))->dev_handle)
1753#define STARPU_TENSOR_GET_OFFSET(interface) (((struct starpu_tensor_interface *)(interface))->offset)
1758#define STARPU_TENSOR_GET_NX(interface) (((struct starpu_tensor_interface *)(interface))->nx)
1763#define STARPU_TENSOR_GET_NY(interface) (((struct starpu_tensor_interface *)(interface))->ny)
1768#define STARPU_TENSOR_GET_NZ(interface) (((struct starpu_tensor_interface *)(interface))->nz)
1773#define STARPU_TENSOR_GET_NT(interface) (((struct starpu_tensor_interface *)(interface))->nt)
1778#define STARPU_TENSOR_GET_LDY(interface) (((struct starpu_tensor_interface *)(interface))->ldy)
1784#define STARPU_TENSOR_GET_LDZ(interface) (((struct starpu_tensor_interface *)(interface))->ldz)
1790#define STARPU_TENSOR_GET_LDT(interface) (((struct starpu_tensor_interface *)(interface))->ldt)
1795#define STARPU_TENSOR_GET_ELEMSIZE(interface) (((struct starpu_tensor_interface *)(interface))->elemsize)
1892#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
1893#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.")
1894#define STARPU_NDIM_GET_PTR(interface) ( \
1896 STARPU_NDIM_CHECK(interface); \
1897 (((struct starpu_ndim_interface *)(interface))->ptr); \
1899#define STARPU_NDIM_GET_DEV_HANDLE(interface) ( \
1901 STARPU_NDIM_CHECK(interface); \
1902 (((struct starpu_ndim_interface *)(interface))->dev_handle); \
1904#define STARPU_NDIM_GET_OFFSET(interface) ( \
1906 STARPU_NDIM_CHECK(interface); \
1907 (((struct starpu_ndim_interface *)(interface))->offset); \
1909#define STARPU_NDIM_GET_NN(interface) ( \
1911 STARPU_NDIM_CHECK(interface); \
1912 (((struct starpu_ndim_interface *)(interface))->nn); \
1914#define STARPU_NDIM_GET_LDN(interface) ( \
1916 STARPU_NDIM_CHECK(interface); \
1917 (((struct starpu_ndim_interface *)(interface))->ldn); \
1919#define STARPU_NDIM_GET_NDIM(interface) ( \
1921 STARPU_NDIM_CHECK(interface); \
1922 (((struct starpu_ndim_interface *)(interface))->ndim); \
1924#define STARPU_NDIM_GET_ELEMSIZE(interface) ( \
1926 STARPU_NDIM_CHECK(interface); \
1927 (((struct starpu_ndim_interface *)(interface))->elemsize); \
1933#define STARPU_NDIM_GET_PTR(interface) (((struct starpu_ndim_interface *)(interface))->ptr)
1940#define STARPU_NDIM_GET_DEV_HANDLE(interface) (((struct starpu_ndim_interface *)(interface))->dev_handle)
1945#define STARPU_NDIM_GET_OFFSET(interface) (((struct starpu_ndim_interface *)(interface))->offset)
1950#define STARPU_NDIM_GET_NN(interface) (((struct starpu_ndim_interface *)(interface))->nn)
1955#define STARPU_NDIM_GET_LDN(interface) (((struct starpu_ndim_interface *)(interface))->ldn)
1960#define STARPU_NDIM_GET_NDIM(interface) (((struct starpu_ndim_interface *)(interface))->ndim)
1965#define STARPU_NDIM_GET_ELEMSIZE(interface) (((struct starpu_ndim_interface *)(interface))->elemsize)
2040#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
2041#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.")
2042#define STARPU_VECTOR_GET_PTR(interface) ( \
2044 STARPU_VECTOR_CHECK(interface); \
2045 (((struct starpu_vector_interface *)(interface))->ptr); \
2047#define STARPU_VECTOR_GET_DEV_HANDLE(interface) ( \
2049 STARPU_VECTOR_CHECK(interface); \
2050 (((struct starpu_vector_interface *)(interface))->dev_handle); \
2052#define STARPU_VECTOR_GET_OFFSET(interface) ( \
2054 STARPU_VECTOR_CHECK(interface); \
2055 (((struct starpu_vector_interface *)(interface))->offset); \
2057#define STARPU_VECTOR_GET_NX(interface) ( \
2059 STARPU_VECTOR_CHECK(interface); \
2060 (((struct starpu_vector_interface *)(interface))->nx); \
2062#define STARPU_VECTOR_GET_ELEMSIZE(interface) ( \
2064 STARPU_VECTOR_CHECK(interface); \
2065 (((struct starpu_vector_interface *)(interface))->elemsize); \
2067#define STARPU_VECTOR_GET_ALLOCSIZE(interface) ( \
2069 STARPU_VECTOR_CHECK(interface); \
2070 (((struct starpu_vector_interface *)(interface))->allocsize); \
2072#define STARPU_VECTOR_GET_SLICE_BASE(interface) ( \
2074 STARPU_VECTOR_CHECK(interface); \
2075 (((struct starpu_vector_interface *)(interface))->slice_base); \
2083#define STARPU_VECTOR_GET_PTR(interface) (((struct starpu_vector_interface *)(interface))->ptr)
2089#define STARPU_VECTOR_GET_DEV_HANDLE(interface) (((struct starpu_vector_interface *)(interface))->dev_handle)
2094#define STARPU_VECTOR_GET_OFFSET(interface) (((struct starpu_vector_interface *)(interface))->offset)
2099#define STARPU_VECTOR_GET_NX(interface) (((struct starpu_vector_interface *)(interface))->nx)
2104#define STARPU_VECTOR_GET_ELEMSIZE(interface) (((struct starpu_vector_interface *)(interface))->elemsize)
2109#define STARPU_VECTOR_GET_ALLOCSIZE(interface) (((struct starpu_vector_interface *)(interface))->allocsize)
2114#define STARPU_VECTOR_GET_SLICE_BASE(interface) (((struct starpu_vector_interface *)(interface))->slice_base)
2121#define STARPU_VECTOR_SET_NX(interface, newnx) \
2123 STARPU_VECTOR_CHECK(interface); \
2124 (((struct starpu_vector_interface *)(interface))->nx) = (newnx); \
2183#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
2184#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.")
2185#define STARPU_VARIABLE_GET_PTR(interface) ( \
2187 STARPU_VARIABLE_CHECK(interface); \
2188 (((struct starpu_variable_interface *)(interface))->ptr); \
2190#define STARPU_VARIABLE_GET_OFFSET(interface) ( \
2192 STARPU_VARIABLE_CHECK(interface); \
2193 (((struct starpu_variable_interface *)(interface))->offset); \
2195#define STARPU_VARIABLE_GET_ELEMSIZE(interface) ( \
2197 STARPU_VARIABLE_CHECK(interface); \
2198 (((struct starpu_variable_interface *)(interface))->elemsize); \
2200#define STARPU_VARIABLE_GET_DEV_HANDLE(interface) ( \
2202 STARPU_VARIABLE_CHECK(interface); \
2203 (((struct starpu_variable_interface *)(interface))->ptr); \
2209#define STARPU_VARIABLE_GET_PTR(interface) (((struct starpu_variable_interface *)(interface))->ptr)
2214#define STARPU_VARIABLE_GET_OFFSET(interface) (((struct starpu_variable_interface *)(interface))->offset)
2218#define STARPU_VARIABLE_GET_ELEMSIZE(interface) (((struct starpu_variable_interface *)(interface))->elemsize)
2225#define STARPU_VARIABLE_GET_DEV_HANDLE(interface) (((struct starpu_variable_interface *)(interface))->ptr)
2330#define STARPU_CSR_GET_NNZ(interface) (((struct starpu_csr_interface *)(interface))->nnz)
2335#define STARPU_CSR_GET_NROW(interface) (((struct starpu_csr_interface *)(interface))->nrow)
2340#define STARPU_CSR_GET_NZVAL(interface) (((struct starpu_csr_interface *)(interface))->nzval)
2346#define STARPU_CSR_GET_NZVAL_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->nnz)
2351#define STARPU_CSR_GET_COLIND(interface) (((struct starpu_csr_interface *)(interface))->colind)
2356#define STARPU_CSR_GET_RAM_COLIND(interface) (((struct starpu_csr_interface *)(interface))->ram_colind)
2362#define STARPU_CSR_GET_COLIND_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->colind)
2367#define STARPU_CSR_GET_ROWPTR(interface) (((struct starpu_csr_interface *)(interface))->rowptr)
2372#define STARPU_CSR_GET_RAM_ROWPTR(interface) (((struct starpu_csr_interface *)(interface))->ram_rowptr)
2378#define STARPU_CSR_GET_ROWPTR_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->rowptr)
2383#define STARPU_CSR_GET_OFFSET 0
2388#define STARPU_CSR_GET_FIRSTENTRY(interface) (((struct starpu_csr_interface *)(interface))->firstentry)
2393#define STARPU_CSR_GET_ELEMSIZE(interface) (((struct starpu_csr_interface *)(interface))->elemsize)
2511void 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);
2569#define STARPU_BCSR_GET_NNZ(interface) (((struct starpu_bcsr_interface *)(interface))->nnz)
2574#define STARPU_BCSR_GET_NROW(interface) (((struct starpu_bcsr_interface *)(interface))->nrow)
2579#define STARPU_BCSR_GET_NZVAL(interface) (((struct starpu_bcsr_interface *)(interface))->nzval)
2585#define STARPU_BCSR_GET_NZVAL_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->nnz)
2590#define STARPU_BCSR_GET_COLIND(interface) (((struct starpu_bcsr_interface *)(interface))->colind)
2595#define STARPU_BCSR_GET_RAM_COLIND(interface) (((struct starpu_bcsr_interface *)(interface))->ram_colind)
2601#define STARPU_BCSR_GET_COLIND_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->colind)
2606#define STARPU_BCSR_GET_ROWPTR(interface) (((struct starpu_bcsr_interface *)(interface))->rowptr)
2611#define STARPU_BCSR_GET_RAM_ROWPTR(interface) (((struct starpu_bcsr_interface *)(interface))->ram_rowptr)
2617#define STARPU_BCSR_GET_ROWPTR_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->rowptr)
2622#define STARPU_BCSR_GET_FIRSTENTRY(interface) (((struct starpu_bcsr_interface *)(interface))->firstentry)
2627#define STARPU_BCSR_GET_R(interface) (((struct starpu_bcsr_interface *)(interface))->r)
2632#define STARPU_BCSR_GET_C(interface) (((struct starpu_bcsr_interface *)(interface))->c)
2636#define STARPU_BCSR_GET_ELEMSIZE(interface) (((struct starpu_bcsr_interface *)(interface))->elemsize)
2641#define STARPU_BCSR_GET_OFFSET 0
2690#define STARPU_MULTIFORMAT_GET_CPU_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->cpu_ptr)
2694#define STARPU_MULTIFORMAT_GET_CUDA_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->cuda_ptr)
2698#define STARPU_MULTIFORMAT_GET_HIP_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->hip_ptr)
2703#define STARPU_MULTIFORMAT_GET_OPENCL_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->opencl_ptr)
2707#define STARPU_MULTIFORMAT_GET_NX(interface) (((struct starpu_multiformat_interface *)(interface))->nx)
Definition: starpu_task.h:334
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:2659
uintptr_t dev_handle
Definition: starpu_data_interfaces.h:2146
uint32_t(* footprint)(starpu_data_handle_t handle)
Definition: starpu_data_interfaces.h:561
size_t offset
Definition: starpu_data_interfaces.h:1399
enum starpu_data_interface_id id
Definition: starpu_data_interfaces.h:2143
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:1587
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:2418
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:2440
size_t ndim
Definition: starpu_data_interfaces.h:1820
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:2417
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:2145
uintptr_t ptr
Definition: starpu_data_interfaces.h:1814
uint32_t * nn
Definition: starpu_data_interfaces.h:1818
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:1594
size_t allocsize
Definition: starpu_data_interfaces.h:1097
uintptr_t values
Definition: starpu_data_interfaces.h:1304
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:2268
size_t elemsize
Definition: starpu_data_interfaces.h:1599
size_t elemsize
Definition: starpu_data_interfaces.h:2275
size_t elemsize
Definition: starpu_data_interfaces.h:1096
uint32_t firstentry
Definition: starpu_data_interfaces.h:2273
uintptr_t ptr
Definition: starpu_data_interfaces.h:1087
size_t offset
Definition: starpu_data_interfaces.h:1816
uintptr_t dev_handle
Definition: starpu_data_interfaces.h:1984
uint32_t ldy
Definition: starpu_data_interfaces.h:1403
uint32_t * ram_rowptr
Definition: starpu_data_interfaces.h:2433
uint32_t nz
Definition: starpu_data_interfaces.h:1402
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:2421
int(* free_meta)(void *data_interface)
Definition: starpu_data_interfaces.h:681
size_t elemsize
Definition: starpu_data_interfaces.h:2148
uint32_t ld
Definition: starpu_data_interfaces.h:1092
enum starpu_data_interface_id id
Definition: starpu_data_interfaces.h:1300
uint32_t * rows
Definition: starpu_data_interfaces.h:1303
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:1815
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:2655
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:1597
uintptr_t nzval
Definition: starpu_data_interfaces.h:2267
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:1983
int(* compare)(void *data_interface_a, void *data_interface_b)
Definition: starpu_data_interfaces.h:579
size_t offset
Definition: starpu_data_interfaces.h:1591
size_t opencl_elemsize
Definition: starpu_data_interfaces.h:2656
size_t elemsize
Definition: starpu_data_interfaces.h:1821
uint32_t * ldn
Definition: starpu_data_interfaces.h:1819
uintptr_t ptr
Definition: starpu_data_interfaces.h:1397
uint32_t n_values
Definition: starpu_data_interfaces.h:1307
uintptr_t dev_handle
Definition: starpu_data_interfaces.h:1398
uint32_t * rowptr
Definition: starpu_data_interfaces.h:2422
size_t interface_size
Definition: starpu_data_interfaces.h:612
uint32_t * ram_rowptr
Definition: starpu_data_interfaces.h:2271
uintptr_t dev_handle
Definition: starpu_data_interfaces.h:1590
enum starpu_data_interface_id id
Definition: starpu_data_interfaces.h:2263
uint32_t slice_base
Definition: starpu_data_interfaces.h:1988
uint32_t nrow
Definition: starpu_data_interfaces.h:2266
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:1401
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:1595
size_t elemsize
Definition: starpu_data_interfaces.h:1987
uintptr_t ptr
Definition: starpu_data_interfaces.h:1589
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:2435
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:1404
uint32_t r
Definition: starpu_data_interfaces.h:2437
struct starpu_codelet * cpu_to_cuda_cl
Definition: starpu_data_interfaces.h:2660
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:2265
size_t offset
Definition: starpu_data_interfaces.h:1089
enum starpu_data_interface_id id
Definition: starpu_data_interfaces.h:1086
size_t offset
Definition: starpu_data_interfaces.h:1985
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:1593
uint32_t(* alloc_footprint)(starpu_data_handle_t handle)
Definition: starpu_data_interfaces.h:571
size_t allocsize
Definition: starpu_data_interfaces.h:1989
enum starpu_data_interface_id id
Definition: starpu_data_interfaces.h:1981
uint32_t * columns
Definition: starpu_data_interfaces.h:1302
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:2657
uintptr_t dev_handle
Definition: starpu_data_interfaces.h:1088
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:1308
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:2438
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:2661
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:2658
uint32_t ny
Definition: starpu_data_interfaces.h:1091
uint32_t nx
Definition: starpu_data_interfaces.h:1986
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:1817
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:2432
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:1395
size_t elemsize
Definition: starpu_data_interfaces.h:1405
uint32_t ny
Definition: starpu_data_interfaces.h:1306
enum starpu_data_interface_id id
Definition: starpu_data_interfaces.h:2415
uint32_t * rowptr
Definition: starpu_data_interfaces.h:2269
size_t offset
Definition: starpu_data_interfaces.h:2147
uint32_t * ram_colind
Definition: starpu_data_interfaces.h:2270
uint32_t ldy
Definition: starpu_data_interfaces.h:1596
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:1090
uintptr_t nzval
Definition: starpu_data_interfaces.h:2420
enum starpu_data_interface_id id
Definition: starpu_data_interfaces.h:1812
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:1400
uint32_t ldt
Definition: starpu_data_interfaces.h:1598
uint32_t nx
Definition: starpu_data_interfaces.h:1305
uint32_t nx
Definition: starpu_data_interfaces.h:1592
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:2414
Definition: starpu_data_interfaces.h:1394
Definition: starpu_data_interfaces.h:1299
Definition: starpu_data_interfaces.h:2262
Definition: starpu_data_interfaces.h:105
Definition: starpu_data_interfaces.h:372
Definition: starpu_data_interfaces.h:1085
Definition: starpu_data_interfaces.h:1811
Definition: starpu_data_interfaces.h:1586
Definition: starpu_data_interfaces.h:2142
Definition: starpu_data_interfaces.h:1980
struct _starpu_data_state * starpu_data_handle_t
Definition: starpu_data.h:44