StarPU Handbook - StarPU FAQs
starpu_data_interfaces.h
Go to the documentation of this file.
1 /* StarPU --- Runtime system for heterogeneous multicore architectures.
2  *
3  * Copyright (C) 2009-2023 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
4  *
5  * StarPU is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation; either version 2.1 of the License, or (at
8  * your option) any later version.
9  *
10  * StarPU is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  *
14  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
15  */
16 
17 #ifndef __STARPU_DATA_INTERFACES_H__
18 #define __STARPU_DATA_INTERFACES_H__
19 
20 #include <starpu.h>
21 
22 #ifdef STARPU_USE_CUDA
23 /* to use CUDA streams */
24 #include <cuda_runtime.h>
25 typedef cudaStream_t starpu_cudaStream_t;
26 #endif
27 
28 #ifdef STARPU_USE_HIP
29 /* to use HIP streams */
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"
34 #ifndef __cplusplus
35 #pragma GCC diagnostic ignored "-Wimplicit-int"
36 #endif
37 #pragma GCC diagnostic ignored "-Wreturn-type"
38 #include <hip/hip_runtime.h>
39 #pragma GCC diagnostic pop
40 typedef hipStream_t starpu_hipStream_t;
41 #endif
42 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46 
105 {
113  int (*can_copy)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, unsigned handling_node);
114 
120  int (*ram_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
121 
127  int (*ram_to_cuda)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
128 
134  int (*ram_to_hip)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
135 
141  int (*ram_to_opencl)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
142 
148  int (*ram_to_max_fpga)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
149 
155  int (*cuda_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
156 
162  int (*cuda_to_cuda)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
163 
169  int (*hip_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
170 
176  int (*hip_to_hip)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
177 
183  int (*opencl_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
184 
190  int (*opencl_to_opencl)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
191 
197  int (*max_fpga_to_ram)(void *src_interface, unsigned srd_node, void *dst_interface, unsigned dst_node);
198 
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);
209 
218  int (*cuda_to_ram_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_cudaStream_t stream);
219 
228  int (*cuda_to_cuda_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_cudaStream_t stream);
229 #else
230  int (*ram_to_cuda_async)(void);
231  int (*cuda_to_ram_async)(void);
232  int (*cuda_to_cuda_async)(void);
233 #endif
234 
235 #ifdef STARPU_USE_HIP
244  int (*ram_to_hip_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream);
245 
254  int (*hip_to_ram_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream);
255 
264  int (*hip_to_hip_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream);
265 #else
266  int (*ram_to_hip_async)(void);
267  int (*hip_to_ram_async)(void);
268  int (*hip_to_hip_async)(void);
269 #endif
270 
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);
302 #else
303  int (*ram_to_opencl_async)(void);
304  int (*opencl_to_ram_async)(void);
305  int (*opencl_to_opencl_async)(void);
306 #endif
307 
316  int (*ram_to_max_fpga_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
317 
326  int (*max_fpga_to_ram_async)(void *src_interface, unsigned srd_node, void *dst_interface, unsigned dst_node);
327 
345  int (*any_to_any)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, void *async_data);
346 };
347 
352 {
366 };
367 
372 {
386  void (*register_data_handle)(starpu_data_handle_t handle, int home_node, void *data_interface);
387 
400 
416  starpu_ssize_t (*allocate_data_on_node)(void *data_interface, unsigned node);
417 
425  void (*free_data_on_node)(void *data_interface, unsigned node);
426 
455  void (*cache_data_on_node)(void *cached_interface, void *src_interface, unsigned node);
456 
477  void (*reuse_data_on_node)(void *dst_data_interface, const void *cached_interface, unsigned node);
478 
484  int (*map_data)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
485 
491  int (*unmap_data)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
492 
498  int (*update_map)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
499 
505  void (*init)(void *data_interface);
506 
516 
525  void *(*handle_to_pointer)(starpu_data_handle_t handle, unsigned node);
526 
533  void *(*to_pointer)(void *data_interface, unsigned node);
534 
538  size_t (*get_size)(starpu_data_handle_t handle);
539 
547 
555 
561  uint32_t (*footprint)(starpu_data_handle_t handle);
562 
572 
579  int (*compare)(void *data_interface_a, void *data_interface_b);
580 
588  int (*alloc_compare)(void *data_interface_a, void *data_interface_b);
589 
594  void (*display)(starpu_data_handle_t handle, FILE *f);
595 
602  starpu_ssize_t (*describe)(void *data_interface, char *buf, size_t size);
603 
608 
613 
616  char is_multiformat;
617 
625  char dontcache;
626 
629  struct starpu_multiformat_data_interface_ops *(*get_mf_ops)(void *data_interface);
630 
647  int (*pack_data)(starpu_data_handle_t handle, unsigned node, void **ptr, starpu_ssize_t *count);
648 
653  int (*peek_data)(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count);
654 
660  int (*unpack_data)(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count);
661 
668  int (*pack_meta)(void *data_interface, void **ptr, starpu_ssize_t *count);
669 
676  int (*unpack_meta)(void **data_interface, void *ptr, starpu_ssize_t *count);
677 
681  int (*free_meta)(void *data_interface);
682 
686  char *name;
687 };
688 
712 void starpu_data_register(starpu_data_handle_t *handleptr, int home_node, void *data_interface, struct starpu_data_interface_ops *ops);
713 
724 
731 void starpu_data_ptr_register(starpu_data_handle_t handle, unsigned node);
732 
739 
747 
754 
759 void *starpu_data_get_interface_on_node(starpu_data_handle_t handle, unsigned memory_node);
760 
767 
779 int starpu_data_pack_node(starpu_data_handle_t handle, unsigned node, void **ptr, starpu_ssize_t *count);
780 
785 int starpu_data_pack(starpu_data_handle_t handle, void **ptr, starpu_ssize_t *count);
786 
794 int starpu_data_peek_node(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count);
795 
803 int starpu_data_peek(starpu_data_handle_t handle, void *ptr, size_t count);
804 
812 int starpu_data_unpack_node(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count);
813 
821 int starpu_data_unpack(starpu_data_handle_t handle, void *ptr, size_t count);
822 
828 
834 
840 
845 
850 void starpu_data_print(starpu_data_handle_t handle, unsigned node, FILE *stream);
851 
857 
867 int starpu_interface_copy(uintptr_t src, size_t src_offset, unsigned src_node,
868  uintptr_t dst, size_t dst_offset, unsigned dst_node,
869  size_t size, void *async_data);
870 
889 int starpu_interface_copy2d(uintptr_t src, size_t src_offset, unsigned src_node,
890  uintptr_t dst, size_t dst_offset, unsigned dst_node,
891  size_t blocksize,
892  size_t numblocks, size_t ld_src, size_t ld_dst,
893  void *async_data);
894 
917 int starpu_interface_copy3d(uintptr_t src, size_t src_offset, unsigned src_node,
918  uintptr_t dst, size_t dst_offset, unsigned dst_node,
919  size_t blocksize,
920  size_t numblocks1, size_t ld1_src, size_t ld1_dst,
921  size_t numblocks2, size_t ld2_src, size_t ld2_dst,
922  void *async_data);
923 
950 int starpu_interface_copy4d(uintptr_t src, size_t src_offset, unsigned src_node,
951  uintptr_t dst, size_t dst_offset, unsigned dst_node,
952  size_t blocksize,
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,
956  void *async_data);
957 
976 int starpu_interface_copynd(uintptr_t src, size_t src_offset, unsigned src_node,
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,
980  void *async_data);
981 
993 void starpu_interface_start_driver_copy_async(unsigned src_node, unsigned dst_node, double *start);
994 
999 void starpu_interface_end_driver_copy_async(unsigned src_node, unsigned dst_node, double start);
1000 
1006 void starpu_interface_data_copy(unsigned src_node, unsigned dst_node, size_t size);
1007 
1015 uintptr_t starpu_malloc_on_node_flags(unsigned dst_node, size_t size, int flags);
1016 
1024 uintptr_t starpu_malloc_on_node(unsigned dst_node, size_t size);
1025 
1032 void starpu_free_on_node_flags(unsigned dst_node, uintptr_t addr, size_t size, int flags);
1033 
1040 void starpu_free_on_node(unsigned dst_node, uintptr_t addr, size_t size);
1041 
1047 void starpu_malloc_on_node_set_default_flags(unsigned node, int flags);
1048 
1060 uintptr_t starpu_interface_map(uintptr_t src, size_t src_offset, unsigned src_node, unsigned dst_node, size_t size, int *ret);
1065 int starpu_interface_unmap(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, unsigned dst_node, size_t size);
1070 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);
1071 
1079 extern struct starpu_data_interface_ops starpu_interface_matrix_ops;
1080 
1085 {
1087  uintptr_t ptr;
1088  uintptr_t dev_handle;
1089  size_t offset;
1090  uint32_t nx;
1091  uint32_t ny;
1092  uint32_t ld;
1096  size_t elemsize;
1097  size_t allocsize;
1098 };
1099 
1116 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);
1117 
1124 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);
1125 
1131 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);
1132 
1138 
1144 
1150 
1155 
1161 
1166 
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) ( \
1170  { \
1171  STARPU_MATRIX_CHECK(interface); \
1172  (((struct starpu_matrix_interface *)(interface))->ptr); \
1173  })
1174 #define STARPU_MATRIX_GET_DEV_HANDLE(interface) ( \
1175  { \
1176  STARPU_MATRIX_CHECK(interface); \
1177  (((struct starpu_matrix_interface *)(interface))->dev_handle); \
1178  })
1179 #define STARPU_MATRIX_GET_OFFSET(interface) ( \
1180  { \
1181  STARPU_MATRIX_CHECK(interface); \
1182  (((struct starpu_matrix_interface *)(interface))->offset); \
1183  })
1184 #define STARPU_MATRIX_GET_NX(interface) ( \
1185  { \
1186  STARPU_MATRIX_CHECK(interface); \
1187  (((struct starpu_matrix_interface *)(interface))->nx); \
1188  })
1189 #define STARPU_MATRIX_GET_NY(interface) ( \
1190  { \
1191  STARPU_MATRIX_CHECK(interface); \
1192  (((struct starpu_matrix_interface *)(interface))->ny); \
1193  })
1194 #define STARPU_MATRIX_GET_LD(interface) ( \
1195  { \
1196  STARPU_MATRIX_CHECK(interface); \
1197  (((struct starpu_matrix_interface *)(interface))->ld); \
1198  })
1199 #define STARPU_MATRIX_GET_ELEMSIZE(interface) ( \
1200  { \
1201  STARPU_MATRIX_CHECK(interface); \
1202  (((struct starpu_matrix_interface *)(interface))->elemsize); \
1203  })
1204 #define STARPU_MATRIX_GET_ALLOCSIZE(interface) ( \
1205  { \
1206  STARPU_MATRIX_CHECK(interface); \
1207  (((struct starpu_matrix_interface *)(interface))->allocsize); \
1208  })
1209 #else
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)
1252 #endif
1253 
1258 #define STARPU_MATRIX_SET_NX(interface, newnx) \
1259  do { \
1260  STARPU_MATRIX_CHECK(interface); \
1261  (((struct starpu_matrix_interface *)(interface))->nx) = (newnx); \
1262  } \
1263  while (0)
1268 #define STARPU_MATRIX_SET_NY(interface, newny) \
1269  do { \
1270  STARPU_MATRIX_CHECK(interface); \
1271  (((struct starpu_matrix_interface *)(interface))->ny) = (newny); \
1272  } \
1273  while (0)
1279 #define STARPU_MATRIX_SET_LD(interface, newld) \
1280  do { \
1281  STARPU_MATRIX_CHECK(interface); \
1282  (((struct starpu_matrix_interface *)(interface))->ld) = (newld); \
1283  } \
1284  while (0)
1285 
1293 extern struct starpu_data_interface_ops starpu_interface_coo_ops;
1294 
1299 {
1302  uint32_t *columns;
1303  uint32_t *rows;
1304  uintptr_t values;
1305  uint32_t nx;
1306  uint32_t ny;
1307  uint32_t n_values;
1308  size_t elemsize;
1309 };
1310 
1317 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);
1318 
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)
1378 
1386 extern struct starpu_data_interface_ops starpu_interface_block_ops;
1387 
1388 /* TODO: rename to 3dmatrix? */
1389 /* TODO: add allocsize support */
1394 {
1397  uintptr_t ptr;
1398  uintptr_t dev_handle;
1399  size_t offset;
1400  uint32_t nx;
1401  uint32_t ny;
1402  uint32_t nz;
1403  uint32_t ldy;
1404  uint32_t ldz;
1405  size_t elemsize;
1406 };
1407 
1423 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);
1424 
1431 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);
1432 
1438 
1444 
1450 
1456 
1462 
1467 
1473 
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) ( \
1477  { \
1478  STARPU_BLOCK_CHECK(interface); \
1479  (((struct starpu_block_interface *)(interface))->ptr); \
1480  })
1481 #define STARPU_BLOCK_GET_DEV_HANDLE(interface) ( \
1482  { \
1483  STARPU_BLOCK_CHECK(interface); \
1484  (((struct starpu_block_interface *)(interface))->dev_handle); \
1485  })
1486 #define STARPU_BLOCK_GET_OFFSET(interface) ( \
1487  { \
1488  STARPU_BLOCK_CHECK(interface); \
1489  (((struct starpu_block_interface *)(interface))->offset); \
1490  })
1491 #define STARPU_BLOCK_GET_NX(interface) ( \
1492  { \
1493  STARPU_BLOCK_CHECK(interface); \
1494  (((struct starpu_block_interface *)(interface))->nx); \
1495  })
1496 #define STARPU_BLOCK_GET_NY(interface) ( \
1497  { \
1498  STARPU_BLOCK_CHECK(interface); \
1499  (((struct starpu_block_interface *)(interface))->ny); \
1500  })
1501 #define STARPU_BLOCK_GET_NZ(interface) ( \
1502  { \
1503  STARPU_BLOCK_CHECK(interface); \
1504  (((struct starpu_block_interface *)(interface))->nz); \
1505  })
1506 #define STARPU_BLOCK_GET_LDY(interface) ( \
1507  { \
1508  STARPU_BLOCK_CHECK(interface); \
1509  (((struct starpu_block_interface *)(interface))->ldy); \
1510  })
1511 #define STARPU_BLOCK_GET_LDZ(interface) ( \
1512  { \
1513  STARPU_BLOCK_CHECK(interface); \
1514  (((struct starpu_block_interface *)(interface))->ldz); \
1515  })
1516 #define STARPU_BLOCK_GET_ELEMSIZE(interface) ( \
1517  { \
1518  STARPU_BLOCK_CHECK(interface); \
1519  (((struct starpu_block_interface *)(interface))->elemsize); \
1520  })
1521 #else
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)
1569 #endif
1570 
1578 extern struct starpu_data_interface_ops starpu_interface_tensor_ops;
1579 
1580 /* TODO: rename to 4dtensor? */
1581 /* TODO: add allocsize support */
1586 {
1589  uintptr_t ptr;
1590  uintptr_t dev_handle;
1591  size_t offset;
1592  uint32_t nx;
1593  uint32_t ny;
1594  uint32_t nz;
1595  uint32_t nt;
1596  uint32_t ldy;
1597  uint32_t ldz;
1598  uint32_t ldt;
1599  size_t elemsize;
1600 };
1601 
1617 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);
1618 
1625 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);
1626 
1632 
1638 
1644 
1650 
1656 
1662 
1668 
1673 
1679 
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) ( \
1683  { \
1684  STARPU_TENSOR_CHECK(interface); \
1685  (((struct starpu_tensor_interface *)(interface))->ptr); \
1686  })
1687 #define STARPU_TENSOR_GET_DEV_HANDLE(interface) ( \
1688  { \
1689  STARPU_TENSOR_CHECK(interface); \
1690  (((struct starpu_tensor_interface *)(interface))->dev_handle); \
1691  })
1692 #define STARPU_TENSOR_GET_OFFSET(interface) ( \
1693  { \
1694  STARPU_TENSOR_CHECK(interface); \
1695  (((struct starpu_tensor_interface *)(interface))->offset); \
1696  })
1697 #define STARPU_TENSOR_GET_NX(interface) ( \
1698  { \
1699  STARPU_TENSOR_CHECK(interface); \
1700  (((struct starpu_tensor_interface *)(interface))->nx); \
1701  })
1702 #define STARPU_TENSOR_GET_NY(interface) ( \
1703  { \
1704  STARPU_TENSOR_CHECK(interface); \
1705  (((struct starpu_tensor_interface *)(interface))->ny); \
1706  })
1707 #define STARPU_TENSOR_GET_NZ(interface) ( \
1708  { \
1709  STARPU_TENSOR_CHECK(interface); \
1710  (((struct starpu_tensor_interface *)(interface))->nz); \
1711  })
1712 #define STARPU_TENSOR_GET_NT(interface) ( \
1713  { \
1714  STARPU_TENSOR_CHECK(interface); \
1715  (((struct starpu_tensor_interface *)(interface))->nt); \
1716  })
1717 #define STARPU_TENSOR_GET_LDY(interface) ( \
1718  { \
1719  STARPU_TENSOR_CHECK(interface); \
1720  (((struct starpu_tensor_interface *)(interface))->ldy); \
1721  })
1722 #define STARPU_TENSOR_GET_LDZ(interface) ( \
1723  { \
1724  STARPU_TENSOR_CHECK(interface); \
1725  (((struct starpu_tensor_interface *)(interface))->ldz); \
1726  })
1727 #define STARPU_TENSOR_GET_LDT(interface) ( \
1728  { \
1729  STARPU_TENSOR_CHECK(interface); \
1730  (((struct starpu_tensor_interface *)(interface))->ldt); \
1731  })
1732 #define STARPU_TENSOR_GET_ELEMSIZE(interface) ( \
1733  { \
1734  STARPU_TENSOR_CHECK(interface); \
1735  (((struct starpu_tensor_interface *)(interface))->elemsize); \
1736  })
1737 #else
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)
1796 #endif
1797 
1805 extern struct starpu_data_interface_ops starpu_interface_ndim_ops;
1806 
1811 {
1814  uintptr_t ptr;
1815  uintptr_t dev_handle;
1816  size_t offset;
1817  size_t allocsize;
1818  uint32_t *nn;
1819  uint32_t *ldn;
1820  size_t ndim;
1821  size_t elemsize;
1822 };
1823 
1843 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);
1849 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);
1850 
1856 
1862 uint32_t starpu_ndim_get_ni(starpu_data_handle_t handle, size_t i);
1863 
1869 
1875 
1880 
1885 
1891 
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) ( \
1895  { \
1896  STARPU_NDIM_CHECK(interface); \
1897  (((struct starpu_ndim_interface *)(interface))->ptr); \
1898  })
1899 #define STARPU_NDIM_GET_DEV_HANDLE(interface) ( \
1900  { \
1901  STARPU_NDIM_CHECK(interface); \
1902  (((struct starpu_ndim_interface *)(interface))->dev_handle); \
1903  })
1904 #define STARPU_NDIM_GET_OFFSET(interface) ( \
1905  { \
1906  STARPU_NDIM_CHECK(interface); \
1907  (((struct starpu_ndim_interface *)(interface))->offset); \
1908  })
1909 #define STARPU_NDIM_GET_NN(interface) ( \
1910  { \
1911  STARPU_NDIM_CHECK(interface); \
1912  (((struct starpu_ndim_interface *)(interface))->nn); \
1913  })
1914 #define STARPU_NDIM_GET_LDN(interface) ( \
1915  { \
1916  STARPU_NDIM_CHECK(interface); \
1917  (((struct starpu_ndim_interface *)(interface))->ldn); \
1918  })
1919 #define STARPU_NDIM_GET_NDIM(interface) ( \
1920  { \
1921  STARPU_NDIM_CHECK(interface); \
1922  (((struct starpu_ndim_interface *)(interface))->ndim); \
1923  })
1924 #define STARPU_NDIM_GET_ELEMSIZE(interface) ( \
1925  { \
1926  STARPU_NDIM_CHECK(interface); \
1927  (((struct starpu_ndim_interface *)(interface))->elemsize); \
1928  })
1929 #else
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)
1966 #endif
1967 
1975 extern struct starpu_data_interface_ops starpu_interface_vector_ops;
1976 
1980 {
1983  uintptr_t ptr;
1984  uintptr_t dev_handle;
1985  size_t offset;
1986  uint32_t nx;
1987  size_t elemsize;
1988  uint32_t slice_base;
1989  size_t allocsize;
1990 };
1991 
2004 void starpu_vector_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t nx, size_t elemsize);
2005 
2011 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);
2012 
2018 void starpu_vector_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset);
2019 
2024 
2029 
2034 
2039 
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) ( \
2043  { \
2044  STARPU_VECTOR_CHECK(interface); \
2045  (((struct starpu_vector_interface *)(interface))->ptr); \
2046  })
2047 #define STARPU_VECTOR_GET_DEV_HANDLE(interface) ( \
2048  { \
2049  STARPU_VECTOR_CHECK(interface); \
2050  (((struct starpu_vector_interface *)(interface))->dev_handle); \
2051  })
2052 #define STARPU_VECTOR_GET_OFFSET(interface) ( \
2053  { \
2054  STARPU_VECTOR_CHECK(interface); \
2055  (((struct starpu_vector_interface *)(interface))->offset); \
2056  })
2057 #define STARPU_VECTOR_GET_NX(interface) ( \
2058  { \
2059  STARPU_VECTOR_CHECK(interface); \
2060  (((struct starpu_vector_interface *)(interface))->nx); \
2061  })
2062 #define STARPU_VECTOR_GET_ELEMSIZE(interface) ( \
2063  { \
2064  STARPU_VECTOR_CHECK(interface); \
2065  (((struct starpu_vector_interface *)(interface))->elemsize); \
2066  })
2067 #define STARPU_VECTOR_GET_ALLOCSIZE(interface) ( \
2068  { \
2069  STARPU_VECTOR_CHECK(interface); \
2070  (((struct starpu_vector_interface *)(interface))->allocsize); \
2071  })
2072 #define STARPU_VECTOR_GET_SLICE_BASE(interface) ( \
2073  { \
2074  STARPU_VECTOR_CHECK(interface); \
2075  (((struct starpu_vector_interface *)(interface))->slice_base); \
2076  })
2077 #else
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)
2115 #endif
2116 
2121 #define STARPU_VECTOR_SET_NX(interface, newnx) \
2122  do { \
2123  STARPU_VECTOR_CHECK(interface); \
2124  (((struct starpu_vector_interface *)(interface))->nx) = (newnx); \
2125  } \
2126  while (0)
2127 
2135 extern struct starpu_data_interface_ops starpu_interface_variable_ops;
2136 
2142 {
2145  uintptr_t ptr;
2146  uintptr_t dev_handle;
2147  size_t offset;
2148  size_t elemsize;
2149 };
2150 
2164 void starpu_variable_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, size_t size);
2165 
2171 void starpu_variable_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset);
2172 
2177 
2182 
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) ( \
2186  { \
2187  STARPU_VARIABLE_CHECK(interface); \
2188  (((struct starpu_variable_interface *)(interface))->ptr); \
2189  })
2190 #define STARPU_VARIABLE_GET_OFFSET(interface) ( \
2191  { \
2192  STARPU_VARIABLE_CHECK(interface); \
2193  (((struct starpu_variable_interface *)(interface))->offset); \
2194  })
2195 #define STARPU_VARIABLE_GET_ELEMSIZE(interface) ( \
2196  { \
2197  STARPU_VARIABLE_CHECK(interface); \
2198  (((struct starpu_variable_interface *)(interface))->elemsize); \
2199  })
2200 #define STARPU_VARIABLE_GET_DEV_HANDLE(interface) ( \
2201  { \
2202  STARPU_VARIABLE_CHECK(interface); \
2203  (((struct starpu_variable_interface *)(interface))->ptr); \
2204  })
2205 #else
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)
2226 #endif
2227 
2235 extern struct starpu_data_interface_ops starpu_interface_void_ops;
2236 
2247 
2255 extern struct starpu_data_interface_ops starpu_interface_csr_ops;
2256 
2262 {
2265  uint32_t nnz;
2266  uint32_t nrow;
2267  uintptr_t nzval;
2268  uint32_t *colind;
2269  uint32_t *rowptr;
2270  uint32_t *ram_colind;
2271  uint32_t *ram_rowptr;
2273  uint32_t firstentry;
2275  size_t elemsize;
2276 };
2277 
2282 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);
2283 
2289 
2295 
2301 
2307 
2313 
2319 
2325 
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)
2394 
2402 extern struct starpu_data_interface_ops starpu_interface_bcsr_ops;
2403 
2414 {
2417  uint32_t nnz;
2418  uint32_t nrow;
2420  uintptr_t nzval;
2421  uint32_t *colind;
2422  uint32_t *rowptr;
2432  uint32_t *ram_colind;
2433  uint32_t *ram_rowptr;
2435  uint32_t firstentry;
2437  uint32_t r;
2438  uint32_t c;
2440  size_t elemsize;
2441 };
2442 
2511 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);
2512 
2518 
2524 
2530 
2536 
2542 
2548 
2553 
2558 
2564 
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
2642 
2654 {
2655  size_t cpu_elemsize;
2659  size_t cuda_elemsize;
2662 };
2663 
2665 {
2666  enum starpu_data_interface_id id;
2667 
2668  void *cpu_ptr;
2669  void *cuda_ptr;
2670  void *hip_ptr;
2671  void *opencl_ptr;
2672  uint32_t nx;
2674 };
2675 
2685 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);
2686 
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)
2699 
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)
2708 
2713 #ifdef __cplusplus
2714 }
2715 #endif
2716 
2717 #endif /* __STARPU_DATA_INTERFACES_H__ */
Definition: starpu_task.h:317
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
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)
uint32_t * starpu_bcsr_get_local_rowptr(starpu_data_handle_t handle)
void starpu_malloc_on_node_set_default_flags(unsigned node, int flags)
uint32_t * starpu_csr_get_local_colind(starpu_data_handle_t handle)
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_data_get_interface_on_node(starpu_data_handle_t handle, unsigned memory_node)
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)
void * starpu_data_get_local_ptr(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)
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_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_bcsr_get_local_colind(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)
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)
uint32_t * starpu_ndim_get_nn(starpu_data_handle_t handle)
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_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)
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)
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)
uint32_t * starpu_ndim_get_local_ldn(starpu_data_handle_t handle)
void * starpu_data_handle_to_pointer(starpu_data_handle_t handle, unsigned node)
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:2654
Definition: starpu_data_interfaces.h:2665
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