Loading...
Searching...
No Matches
starpu_data_interfaces.h
Go to the documentation of this file.
/* StarPU --- Runtime system for heterogeneous multicore architectures.
*
* Copyright (C) 2009-2024 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
*
* StarPU is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or (at
* your option) any later version.
*
* StarPU is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU Lesser General Public License in COPYING.LGPL for more details.
*/
#ifndef __STARPU_DATA_INTERFACES_H__
#define __STARPU_DATA_INTERFACES_H__
#include <starpu.h>
#ifdef STARPU_USE_CUDA
/* to use CUDA streams */
#include <cuda_runtime.h>
typedef cudaStream_t starpu_cudaStream_t;
#endif
#ifdef STARPU_USE_HIP
/* to use HIP streams */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wundef"
#pragma GCC diagnostic ignored "-Wunused-result"
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#ifndef __cplusplus
#pragma GCC diagnostic ignored "-Wimplicit-int"
#endif
#pragma GCC diagnostic ignored "-Wreturn-type"
#include <hip/hip_runtime.h>
#pragma GCC diagnostic pop
typedef hipStream_t starpu_hipStream_t;
#endif
#ifdef __cplusplus
extern "C" {
#endif
struct starpu_data_copy_methods
{
int (*can_copy)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, unsigned handling_node);
int (*ram_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*ram_to_cuda)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*ram_to_hip)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*ram_to_opencl)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*ram_to_max_fpga)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*cuda_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*cuda_to_cuda)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*hip_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*hip_to_hip)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*opencl_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*opencl_to_opencl)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*max_fpga_to_ram)(void *src_interface, unsigned srd_node, void *dst_interface, unsigned dst_node);
#ifdef STARPU_USE_CUDA
int (*ram_to_cuda_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_cudaStream_t stream);
int (*cuda_to_ram_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_cudaStream_t stream);
int (*cuda_to_cuda_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_cudaStream_t stream);
#else
int (*ram_to_cuda_async)(void);
int (*cuda_to_ram_async)(void);
int (*cuda_to_cuda_async)(void);
#endif
#ifdef STARPU_USE_HIP
int (*ram_to_hip_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream);
int (*hip_to_ram_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream);
int (*hip_to_hip_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, starpu_hipStream_t stream);
#else
int (*ram_to_hip_async)(void);
int (*hip_to_ram_async)(void);
int (*hip_to_hip_async)(void);
#endif
#if defined(STARPU_USE_OPENCL) && !defined(__CUDACC__)
int (*ram_to_opencl_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, cl_event *event);
int (*opencl_to_ram_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, cl_event *event);
int (*opencl_to_opencl_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, cl_event *event);
#else
int (*ram_to_opencl_async)(void);
int (*opencl_to_ram_async)(void);
int (*opencl_to_opencl_async)(void);
#endif
int (*ram_to_max_fpga_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*max_fpga_to_ram_async)(void *src_interface, unsigned srd_node, void *dst_interface, unsigned dst_node);
int (*any_to_any)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, void *async_data);
};
enum starpu_data_interface_id
{
STARPU_UNKNOWN_INTERFACE_ID = -1,
STARPU_MATRIX_INTERFACE_ID = 0,
STARPU_BLOCK_INTERFACE_ID = 1,
STARPU_VECTOR_INTERFACE_ID = 2,
STARPU_CSR_INTERFACE_ID = 3,
STARPU_BCSR_INTERFACE_ID = 4,
STARPU_VARIABLE_INTERFACE_ID = 5,
STARPU_VOID_INTERFACE_ID = 6,
STARPU_MULTIFORMAT_INTERFACE_ID = 7,
STARPU_COO_INTERFACE_ID = 8,
STARPU_TENSOR_INTERFACE_ID = 9,
STARPU_NDIM_INTERFACE_ID = 10,
STARPU_MAX_INTERFACE_ID = 11
};
struct starpu_data_interface_ops
{
void (*register_data_handle)(starpu_data_handle_t handle, int home_node, void *data_interface);
void (*unregister_data_handle)(starpu_data_handle_t handle);
starpu_ssize_t (*allocate_data_on_node)(void *data_interface, unsigned node);
void (*free_data_on_node)(void *data_interface, unsigned node);
void (*cache_data_on_node)(void *cached_interface, void *src_interface, unsigned node);
void (*reuse_data_on_node)(void *dst_data_interface, const void *cached_interface, unsigned node);
int (*map_data)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*unmap_data)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
int (*update_map)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node);
void (*init)(void *data_interface);
const struct starpu_data_copy_methods *copy_methods;
void *(*handle_to_pointer)(starpu_data_handle_t handle, unsigned node);
void *(*to_pointer)(void *data_interface, unsigned node);
size_t (*get_size)(starpu_data_handle_t handle);
size_t (*get_alloc_size)(starpu_data_handle_t handle);
size_t (*get_max_size)(starpu_data_handle_t handle);
uint32_t (*footprint)(starpu_data_handle_t handle);
uint32_t (*alloc_footprint)(starpu_data_handle_t handle);
int (*compare)(void *data_interface_a, void *data_interface_b);
int (*alloc_compare)(void *data_interface_a, void *data_interface_b);
void (*display)(starpu_data_handle_t handle, FILE *f);
starpu_ssize_t (*describe)(void *data_interface, char *buf, size_t size);
enum starpu_data_interface_id interfaceid;
size_t interface_size;
char is_multiformat;
char dontcache;
struct starpu_multiformat_data_interface_ops *(*get_mf_ops)(void *data_interface);
int (*pack_data)(starpu_data_handle_t handle, unsigned node, void **ptr, starpu_ssize_t *count);
int (*peek_data)(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count);
int (*unpack_data)(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count);
int (*pack_meta)(void *data_interface, void **ptr, starpu_ssize_t *count);
int (*unpack_meta)(void **data_interface, void *ptr, starpu_ssize_t *count);
int (*free_meta)(void *data_interface);
char *name;
};
void starpu_data_register(starpu_data_handle_t *handleptr, int home_node, void *data_interface, struct starpu_data_interface_ops *ops);
void starpu_data_register_ops(struct starpu_data_interface_ops *ops);
void starpu_data_ptr_register(starpu_data_handle_t handle, unsigned node);
void starpu_data_register_same(starpu_data_handle_t *handledst, starpu_data_handle_t handlesrc);
void *starpu_data_handle_to_pointer(starpu_data_handle_t handle, unsigned node);
void *starpu_data_get_local_ptr(starpu_data_handle_t handle);
void *starpu_data_get_interface_on_node(starpu_data_handle_t handle, unsigned memory_node);
enum starpu_data_interface_id starpu_data_get_interface_id(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_pack(starpu_data_handle_t handle, void **ptr, starpu_ssize_t *count);
int starpu_data_peek_node(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count);
int starpu_data_peek(starpu_data_handle_t handle, void *ptr, size_t count);
int starpu_data_unpack_node(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count);
int starpu_data_unpack(starpu_data_handle_t handle, void *ptr, size_t count);
size_t starpu_data_get_size(starpu_data_handle_t handle);
size_t starpu_data_get_alloc_size(starpu_data_handle_t handle);
starpu_ssize_t starpu_data_get_max_size(starpu_data_handle_t handle);
int starpu_data_get_home_node(starpu_data_handle_t handle);
void starpu_data_print(starpu_data_handle_t handle, unsigned node, FILE *stream);
int starpu_data_interface_get_next_id(void);
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);
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);
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_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);
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_interface_start_driver_copy_async(unsigned src_node, unsigned dst_node, double *start);
void starpu_interface_end_driver_copy_async(unsigned src_node, unsigned dst_node, double start);
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);
uintptr_t starpu_malloc_on_node(unsigned dst_node, size_t size);
void starpu_free_on_node_flags(unsigned dst_node, uintptr_t addr, size_t size, int flags);
void starpu_free_on_node(unsigned dst_node, uintptr_t addr, size_t size);
void starpu_malloc_on_node_set_default_flags(unsigned node, int flags);
uintptr_t starpu_interface_map(uintptr_t src, size_t src_offset, unsigned src_node, unsigned dst_node, size_t size, int *ret);
int starpu_interface_unmap(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, unsigned dst_node, size_t size);
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);
extern struct starpu_data_interface_ops starpu_interface_matrix_ops;
struct starpu_matrix_interface
{
enum starpu_data_interface_id id;
uintptr_t ptr;
uintptr_t dev_handle;
size_t offset;
uint32_t nx;
uint32_t ny;
uint32_t ld;
size_t elemsize;
size_t allocsize;
};
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_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_matrix_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset, uint32_t ld);
uint32_t starpu_matrix_get_nx(starpu_data_handle_t handle);
uint32_t starpu_matrix_get_ny(starpu_data_handle_t handle);
uint32_t starpu_matrix_get_local_ld(starpu_data_handle_t handle);
uintptr_t starpu_matrix_get_local_ptr(starpu_data_handle_t handle);
size_t starpu_matrix_get_elemsize(starpu_data_handle_t handle);
size_t starpu_matrix_get_allocsize(starpu_data_handle_t handle);
#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
#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.")
#define STARPU_MATRIX_GET_PTR(interface) ( \
{ \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->ptr); \
})
#define STARPU_MATRIX_GET_DEV_HANDLE(interface) ( \
{ \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->dev_handle); \
})
#define STARPU_MATRIX_GET_OFFSET(interface) ( \
{ \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->offset); \
})
#define STARPU_MATRIX_GET_NX(interface) ( \
{ \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->nx); \
})
#define STARPU_MATRIX_GET_NY(interface) ( \
{ \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->ny); \
})
#define STARPU_MATRIX_GET_LD(interface) ( \
{ \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->ld); \
})
#define STARPU_MATRIX_GET_ELEMSIZE(interface) ( \
{ \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->elemsize); \
})
#define STARPU_MATRIX_GET_ALLOCSIZE(interface) ( \
{ \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->allocsize); \
})
#else
#define STARPU_MATRIX_GET_PTR(interface) (((struct starpu_matrix_interface *)(interface))->ptr)
#define STARPU_MATRIX_GET_DEV_HANDLE(interface) (((struct starpu_matrix_interface *)(interface))->dev_handle)
#define STARPU_MATRIX_GET_OFFSET(interface) (((struct starpu_matrix_interface *)(interface))->offset)
#define STARPU_MATRIX_GET_NX(interface) (((struct starpu_matrix_interface *)(interface))->nx)
#define STARPU_MATRIX_GET_NY(interface) (((struct starpu_matrix_interface *)(interface))->ny)
#define STARPU_MATRIX_GET_LD(interface) (((struct starpu_matrix_interface *)(interface))->ld)
#define STARPU_MATRIX_GET_ELEMSIZE(interface) (((struct starpu_matrix_interface *)(interface))->elemsize)
#define STARPU_MATRIX_GET_ALLOCSIZE(interface) (((struct starpu_matrix_interface *)(interface))->allocsize)
#endif
#define STARPU_MATRIX_SET_NX(interface, newnx) \
do { \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->nx) = (newnx); \
} \
while (0)
#define STARPU_MATRIX_SET_NY(interface, newny) \
do { \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->ny) = (newny); \
} \
while (0)
#define STARPU_MATRIX_SET_LD(interface, newld) \
do { \
STARPU_MATRIX_CHECK(interface); \
(((struct starpu_matrix_interface *)(interface))->ld) = (newld); \
} \
while (0)
extern struct starpu_data_interface_ops starpu_interface_coo_ops;
struct starpu_coo_interface
{
enum starpu_data_interface_id id;
uint32_t *columns;
uint32_t *rows;
uintptr_t values;
uint32_t nx;
uint32_t ny;
uint32_t n_values;
size_t elemsize;
};
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);
#define STARPU_COO_GET_COLUMNS(interface) (((struct starpu_coo_interface *)(interface))->columns)
#define STARPU_COO_GET_COLUMNS_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->columns)
#define STARPU_COO_GET_ROWS(interface) (((struct starpu_coo_interface *)(interface))->rows)
#define STARPU_COO_GET_ROWS_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->rows)
#define STARPU_COO_GET_VALUES(interface) (((struct starpu_coo_interface *)(interface))->values)
#define STARPU_COO_GET_VALUES_DEV_HANDLE(interface) (((struct starpu_coo_interface *)(interface))->values)
#define STARPU_COO_GET_OFFSET 0
#define STARPU_COO_GET_NX(interface) (((struct starpu_coo_interface *)(interface))->nx)
#define STARPU_COO_GET_NY(interface) (((struct starpu_coo_interface *)(interface))->ny)
#define STARPU_COO_GET_NVALUES(interface) (((struct starpu_coo_interface *)(interface))->n_values)
#define STARPU_COO_GET_ELEMSIZE(interface) (((struct starpu_coo_interface *)(interface))->elemsize)
extern struct starpu_data_interface_ops starpu_interface_block_ops;
/* TODO: rename to 3dmatrix? */
/* TODO: add allocsize support */
struct starpu_block_interface
{
enum starpu_data_interface_id id;
uintptr_t ptr;
uintptr_t dev_handle;
size_t offset;
uint32_t nx;
uint32_t ny;
uint32_t nz;
uint32_t ldy;
uint32_t ldz;
size_t elemsize;
};
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_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_block_get_nx(starpu_data_handle_t handle);
uint32_t starpu_block_get_ny(starpu_data_handle_t handle);
uint32_t starpu_block_get_nz(starpu_data_handle_t handle);
uint32_t starpu_block_get_local_ldy(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);
size_t starpu_block_get_elemsize(starpu_data_handle_t handle);
#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
#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.")
#define STARPU_BLOCK_GET_PTR(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->ptr); \
})
#define STARPU_BLOCK_GET_DEV_HANDLE(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->dev_handle); \
})
#define STARPU_BLOCK_GET_OFFSET(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->offset); \
})
#define STARPU_BLOCK_GET_NX(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->nx); \
})
#define STARPU_BLOCK_GET_NY(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->ny); \
})
#define STARPU_BLOCK_GET_NZ(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->nz); \
})
#define STARPU_BLOCK_GET_LDY(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->ldy); \
})
#define STARPU_BLOCK_GET_LDZ(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->ldz); \
})
#define STARPU_BLOCK_GET_ELEMSIZE(interface) ( \
{ \
STARPU_BLOCK_CHECK(interface); \
(((struct starpu_block_interface *)(interface))->elemsize); \
})
#else
#define STARPU_BLOCK_GET_PTR(interface) (((struct starpu_block_interface *)(interface))->ptr)
#define STARPU_BLOCK_GET_DEV_HANDLE(interface) (((struct starpu_block_interface *)(interface))->dev_handle)
#define STARPU_BLOCK_GET_OFFSET(interface) (((struct starpu_block_interface *)(interface))->offset)
#define STARPU_BLOCK_GET_NX(interface) (((struct starpu_block_interface *)(interface))->nx)
#define STARPU_BLOCK_GET_NY(interface) (((struct starpu_block_interface *)(interface))->ny)
#define STARPU_BLOCK_GET_NZ(interface) (((struct starpu_block_interface *)(interface))->nz)
#define STARPU_BLOCK_GET_LDY(interface) (((struct starpu_block_interface *)(interface))->ldy)
#define STARPU_BLOCK_GET_LDZ(interface) (((struct starpu_block_interface *)(interface))->ldz)
#define STARPU_BLOCK_GET_ELEMSIZE(interface) (((struct starpu_block_interface *)(interface))->elemsize)
#endif
extern struct starpu_data_interface_ops starpu_interface_tensor_ops;
/* TODO: rename to 4dtensor? */
/* TODO: add allocsize support */
struct starpu_tensor_interface
{
enum starpu_data_interface_id id;
uintptr_t ptr;
uintptr_t dev_handle;
size_t offset;
uint32_t nx;
uint32_t ny;
uint32_t nz;
uint32_t nt;
uint32_t ldy;
uint32_t ldz;
uint32_t ldt;
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);
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);
uint32_t starpu_tensor_get_nx(starpu_data_handle_t handle);
uint32_t starpu_tensor_get_ny(starpu_data_handle_t handle);
uint32_t starpu_tensor_get_nz(starpu_data_handle_t handle);
uint32_t starpu_tensor_get_nt(starpu_data_handle_t handle);
uint32_t starpu_tensor_get_local_ldy(starpu_data_handle_t handle);
uint32_t starpu_tensor_get_local_ldz(starpu_data_handle_t handle);
uint32_t starpu_tensor_get_local_ldt(starpu_data_handle_t handle);
uintptr_t starpu_tensor_get_local_ptr(starpu_data_handle_t handle);
size_t starpu_tensor_get_elemsize(starpu_data_handle_t handle);
#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
#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.")
#define STARPU_TENSOR_GET_PTR(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->ptr); \
})
#define STARPU_TENSOR_GET_DEV_HANDLE(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->dev_handle); \
})
#define STARPU_TENSOR_GET_OFFSET(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->offset); \
})
#define STARPU_TENSOR_GET_NX(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->nx); \
})
#define STARPU_TENSOR_GET_NY(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->ny); \
})
#define STARPU_TENSOR_GET_NZ(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->nz); \
})
#define STARPU_TENSOR_GET_NT(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->nt); \
})
#define STARPU_TENSOR_GET_LDY(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->ldy); \
})
#define STARPU_TENSOR_GET_LDZ(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->ldz); \
})
#define STARPU_TENSOR_GET_LDT(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->ldt); \
})
#define STARPU_TENSOR_GET_ELEMSIZE(interface) ( \
{ \
STARPU_TENSOR_CHECK(interface); \
(((struct starpu_tensor_interface *)(interface))->elemsize); \
})
#else
#define STARPU_TENSOR_GET_PTR(interface) (((struct starpu_tensor_interface *)(interface))->ptr)
#define STARPU_TENSOR_GET_DEV_HANDLE(interface) (((struct starpu_tensor_interface *)(interface))->dev_handle)
#define STARPU_TENSOR_GET_OFFSET(interface) (((struct starpu_tensor_interface *)(interface))->offset)
#define STARPU_TENSOR_GET_NX(interface) (((struct starpu_tensor_interface *)(interface))->nx)
#define STARPU_TENSOR_GET_NY(interface) (((struct starpu_tensor_interface *)(interface))->ny)
#define STARPU_TENSOR_GET_NZ(interface) (((struct starpu_tensor_interface *)(interface))->nz)
#define STARPU_TENSOR_GET_NT(interface) (((struct starpu_tensor_interface *)(interface))->nt)
#define STARPU_TENSOR_GET_LDY(interface) (((struct starpu_tensor_interface *)(interface))->ldy)
#define STARPU_TENSOR_GET_LDZ(interface) (((struct starpu_tensor_interface *)(interface))->ldz)
#define STARPU_TENSOR_GET_LDT(interface) (((struct starpu_tensor_interface *)(interface))->ldt)
#define STARPU_TENSOR_GET_ELEMSIZE(interface) (((struct starpu_tensor_interface *)(interface))->elemsize)
#endif
extern struct starpu_data_interface_ops starpu_interface_ndim_ops;
struct starpu_ndim_interface
{
enum starpu_data_interface_id id;
uintptr_t ptr;
uintptr_t dev_handle;
size_t offset;
size_t allocsize;
uint32_t *nn;
uint32_t *ldn;
size_t ndim;
size_t elemsize;
};
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);
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);
uint32_t *starpu_ndim_get_nn(starpu_data_handle_t handle);
uint32_t starpu_ndim_get_ni(starpu_data_handle_t handle, size_t i);
uint32_t *starpu_ndim_get_local_ldn(starpu_data_handle_t handle);
uint32_t starpu_ndim_get_local_ldi(starpu_data_handle_t handle, size_t i);
uintptr_t starpu_ndim_get_local_ptr(starpu_data_handle_t handle);
size_t starpu_ndim_get_ndim(starpu_data_handle_t handle);
size_t starpu_ndim_get_elemsize(starpu_data_handle_t handle);
#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
#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.")
#define STARPU_NDIM_GET_PTR(interface) ( \
{ \
STARPU_NDIM_CHECK(interface); \
(((struct starpu_ndim_interface *)(interface))->ptr); \
})
#define STARPU_NDIM_GET_DEV_HANDLE(interface) ( \
{ \
STARPU_NDIM_CHECK(interface); \
(((struct starpu_ndim_interface *)(interface))->dev_handle); \
})
#define STARPU_NDIM_GET_OFFSET(interface) ( \
{ \
STARPU_NDIM_CHECK(interface); \
(((struct starpu_ndim_interface *)(interface))->offset); \
})
#define STARPU_NDIM_GET_NN(interface) ( \
{ \
STARPU_NDIM_CHECK(interface); \
(((struct starpu_ndim_interface *)(interface))->nn); \
})
#define STARPU_NDIM_GET_LDN(interface) ( \
{ \
STARPU_NDIM_CHECK(interface); \
(((struct starpu_ndim_interface *)(interface))->ldn); \
})
#define STARPU_NDIM_GET_NDIM(interface) ( \
{ \
STARPU_NDIM_CHECK(interface); \
(((struct starpu_ndim_interface *)(interface))->ndim); \
})
#define STARPU_NDIM_GET_ELEMSIZE(interface) ( \
{ \
STARPU_NDIM_CHECK(interface); \
(((struct starpu_ndim_interface *)(interface))->elemsize); \
})
#else
#define STARPU_NDIM_GET_PTR(interface) (((struct starpu_ndim_interface *)(interface))->ptr)
#define STARPU_NDIM_GET_DEV_HANDLE(interface) (((struct starpu_ndim_interface *)(interface))->dev_handle)
#define STARPU_NDIM_GET_OFFSET(interface) (((struct starpu_ndim_interface *)(interface))->offset)
#define STARPU_NDIM_GET_NN(interface) (((struct starpu_ndim_interface *)(interface))->nn)
#define STARPU_NDIM_GET_LDN(interface) (((struct starpu_ndim_interface *)(interface))->ldn)
#define STARPU_NDIM_GET_NDIM(interface) (((struct starpu_ndim_interface *)(interface))->ndim)
#define STARPU_NDIM_GET_ELEMSIZE(interface) (((struct starpu_ndim_interface *)(interface))->elemsize)
#endif
extern struct starpu_data_interface_ops starpu_interface_vector_ops;
struct starpu_vector_interface
{
enum starpu_data_interface_id id;
uintptr_t ptr;
uintptr_t dev_handle;
size_t offset;
uint32_t nx;
size_t elemsize;
uint32_t slice_base;
size_t allocsize;
};
void starpu_vector_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t nx, size_t elemsize);
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);
void starpu_vector_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset);
uint32_t starpu_vector_get_nx(starpu_data_handle_t handle);
size_t starpu_vector_get_elemsize(starpu_data_handle_t handle);
size_t starpu_vector_get_allocsize(starpu_data_handle_t handle);
uintptr_t starpu_vector_get_local_ptr(starpu_data_handle_t handle);
#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
#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.")
#define STARPU_VECTOR_GET_PTR(interface) ( \
{ \
STARPU_VECTOR_CHECK(interface); \
(((struct starpu_vector_interface *)(interface))->ptr); \
})
#define STARPU_VECTOR_GET_DEV_HANDLE(interface) ( \
{ \
STARPU_VECTOR_CHECK(interface); \
(((struct starpu_vector_interface *)(interface))->dev_handle); \
})
#define STARPU_VECTOR_GET_OFFSET(interface) ( \
{ \
STARPU_VECTOR_CHECK(interface); \
(((struct starpu_vector_interface *)(interface))->offset); \
})
#define STARPU_VECTOR_GET_NX(interface) ( \
{ \
STARPU_VECTOR_CHECK(interface); \
(((struct starpu_vector_interface *)(interface))->nx); \
})
#define STARPU_VECTOR_GET_ELEMSIZE(interface) ( \
{ \
STARPU_VECTOR_CHECK(interface); \
(((struct starpu_vector_interface *)(interface))->elemsize); \
})
#define STARPU_VECTOR_GET_ALLOCSIZE(interface) ( \
{ \
STARPU_VECTOR_CHECK(interface); \
(((struct starpu_vector_interface *)(interface))->allocsize); \
})
#define STARPU_VECTOR_GET_SLICE_BASE(interface) ( \
{ \
STARPU_VECTOR_CHECK(interface); \
(((struct starpu_vector_interface *)(interface))->slice_base); \
})
#else
#define STARPU_VECTOR_GET_PTR(interface) (((struct starpu_vector_interface *)(interface))->ptr)
#define STARPU_VECTOR_GET_DEV_HANDLE(interface) (((struct starpu_vector_interface *)(interface))->dev_handle)
#define STARPU_VECTOR_GET_OFFSET(interface) (((struct starpu_vector_interface *)(interface))->offset)
#define STARPU_VECTOR_GET_NX(interface) (((struct starpu_vector_interface *)(interface))->nx)
#define STARPU_VECTOR_GET_ELEMSIZE(interface) (((struct starpu_vector_interface *)(interface))->elemsize)
#define STARPU_VECTOR_GET_ALLOCSIZE(interface) (((struct starpu_vector_interface *)(interface))->allocsize)
#define STARPU_VECTOR_GET_SLICE_BASE(interface) (((struct starpu_vector_interface *)(interface))->slice_base)
#endif
#define STARPU_VECTOR_SET_NX(interface, newnx) \
do { \
STARPU_VECTOR_CHECK(interface); \
(((struct starpu_vector_interface *)(interface))->nx) = (newnx); \
} \
while (0)
extern struct starpu_data_interface_ops starpu_interface_variable_ops;
struct starpu_variable_interface
{
enum starpu_data_interface_id id;
uintptr_t ptr;
uintptr_t dev_handle;
size_t offset;
size_t elemsize;
};
void starpu_variable_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, size_t size);
void starpu_variable_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset);
size_t starpu_variable_get_elemsize(starpu_data_handle_t handle);
uintptr_t starpu_variable_get_local_ptr(starpu_data_handle_t handle);
#if defined(STARPU_HAVE_STATEMENT_EXPRESSIONS) && defined(STARPU_DEBUG)
#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.")
#define STARPU_VARIABLE_GET_PTR(interface) ( \
{ \
STARPU_VARIABLE_CHECK(interface); \
(((struct starpu_variable_interface *)(interface))->ptr); \
})
#define STARPU_VARIABLE_GET_OFFSET(interface) ( \
{ \
STARPU_VARIABLE_CHECK(interface); \
(((struct starpu_variable_interface *)(interface))->offset); \
})
#define STARPU_VARIABLE_GET_ELEMSIZE(interface) ( \
{ \
STARPU_VARIABLE_CHECK(interface); \
(((struct starpu_variable_interface *)(interface))->elemsize); \
})
#define STARPU_VARIABLE_GET_DEV_HANDLE(interface) ( \
{ \
STARPU_VARIABLE_CHECK(interface); \
(((struct starpu_variable_interface *)(interface))->ptr); \
})
#else
#define STARPU_VARIABLE_GET_PTR(interface) (((struct starpu_variable_interface *)(interface))->ptr)
#define STARPU_VARIABLE_GET_OFFSET(interface) (((struct starpu_variable_interface *)(interface))->offset)
#define STARPU_VARIABLE_GET_ELEMSIZE(interface) (((struct starpu_variable_interface *)(interface))->elemsize)
#define STARPU_VARIABLE_GET_DEV_HANDLE(interface) (((struct starpu_variable_interface *)(interface))->ptr)
#endif
extern struct starpu_data_interface_ops starpu_interface_void_ops;
void starpu_void_data_register(starpu_data_handle_t *handle);
extern struct starpu_data_interface_ops starpu_interface_csr_ops;
struct starpu_csr_interface
{
enum starpu_data_interface_id id;
uint32_t nnz;
uint32_t nrow;
uintptr_t nzval;
uint32_t *colind;
uint32_t *rowptr;
uint32_t *ram_colind;
uint32_t *ram_rowptr;
uint32_t firstentry;
size_t elemsize;
};
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);
uint32_t starpu_csr_get_nnz(starpu_data_handle_t handle);
uint32_t starpu_csr_get_nrow(starpu_data_handle_t handle);
uint32_t starpu_csr_get_firstentry(starpu_data_handle_t handle);
uintptr_t starpu_csr_get_local_nzval(starpu_data_handle_t handle);
uint32_t *starpu_csr_get_local_colind(starpu_data_handle_t handle);
uint32_t *starpu_csr_get_local_rowptr(starpu_data_handle_t handle);
size_t starpu_csr_get_elemsize(starpu_data_handle_t handle);
#define STARPU_CSR_GET_NNZ(interface) (((struct starpu_csr_interface *)(interface))->nnz)
#define STARPU_CSR_GET_NROW(interface) (((struct starpu_csr_interface *)(interface))->nrow)
#define STARPU_CSR_GET_NZVAL(interface) (((struct starpu_csr_interface *)(interface))->nzval)
#define STARPU_CSR_GET_NZVAL_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->nnz)
#define STARPU_CSR_GET_COLIND(interface) (((struct starpu_csr_interface *)(interface))->colind)
#define STARPU_CSR_GET_RAM_COLIND(interface) (((struct starpu_csr_interface *)(interface))->ram_colind)
#define STARPU_CSR_GET_COLIND_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->colind)
#define STARPU_CSR_GET_ROWPTR(interface) (((struct starpu_csr_interface *)(interface))->rowptr)
#define STARPU_CSR_GET_RAM_ROWPTR(interface) (((struct starpu_csr_interface *)(interface))->ram_rowptr)
#define STARPU_CSR_GET_ROWPTR_DEV_HANDLE(interface) (((struct starpu_csr_interface *)(interface))->rowptr)
#define STARPU_CSR_GET_OFFSET 0
#define STARPU_CSR_GET_FIRSTENTRY(interface) (((struct starpu_csr_interface *)(interface))->firstentry)
#define STARPU_CSR_GET_ELEMSIZE(interface) (((struct starpu_csr_interface *)(interface))->elemsize)
extern struct starpu_data_interface_ops starpu_interface_bcsr_ops;
struct starpu_bcsr_interface
{
enum starpu_data_interface_id id;
uint32_t nnz;
uint32_t nrow;
uintptr_t nzval;
uint32_t *colind;
uint32_t *rowptr;
uint32_t *ram_colind;
uint32_t *ram_rowptr;
uint32_t firstentry;
uint32_t r;
uint32_t c;
size_t elemsize;
};
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);
uint32_t starpu_bcsr_get_nnz(starpu_data_handle_t handle);
uint32_t starpu_bcsr_get_nrow(starpu_data_handle_t handle);
uint32_t starpu_bcsr_get_firstentry(starpu_data_handle_t handle);
uintptr_t starpu_bcsr_get_local_nzval(starpu_data_handle_t handle);
uint32_t *starpu_bcsr_get_local_colind(starpu_data_handle_t handle);
uint32_t *starpu_bcsr_get_local_rowptr(starpu_data_handle_t handle);
uint32_t starpu_bcsr_get_r(starpu_data_handle_t handle);
uint32_t starpu_bcsr_get_c(starpu_data_handle_t handle);
size_t starpu_bcsr_get_elemsize(starpu_data_handle_t handle);
#define STARPU_BCSR_GET_NNZ(interface) (((struct starpu_bcsr_interface *)(interface))->nnz)
#define STARPU_BCSR_GET_NROW(interface) (((struct starpu_bcsr_interface *)(interface))->nrow)
#define STARPU_BCSR_GET_NZVAL(interface) (((struct starpu_bcsr_interface *)(interface))->nzval)
#define STARPU_BCSR_GET_NZVAL_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->nnz)
#define STARPU_BCSR_GET_COLIND(interface) (((struct starpu_bcsr_interface *)(interface))->colind)
#define STARPU_BCSR_GET_RAM_COLIND(interface) (((struct starpu_bcsr_interface *)(interface))->ram_colind)
#define STARPU_BCSR_GET_COLIND_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->colind)
#define STARPU_BCSR_GET_ROWPTR(interface) (((struct starpu_bcsr_interface *)(interface))->rowptr)
#define STARPU_BCSR_GET_RAM_ROWPTR(interface) (((struct starpu_bcsr_interface *)(interface))->ram_rowptr)
#define STARPU_BCSR_GET_ROWPTR_DEV_HANDLE(interface) (((struct starpu_bcsr_interface *)(interface))->rowptr)
#define STARPU_BCSR_GET_FIRSTENTRY(interface) (((struct starpu_bcsr_interface *)(interface))->firstentry)
#define STARPU_BCSR_GET_R(interface) (((struct starpu_bcsr_interface *)(interface))->r)
#define STARPU_BCSR_GET_C(interface) (((struct starpu_bcsr_interface *)(interface))->c)
#define STARPU_BCSR_GET_ELEMSIZE(interface) (((struct starpu_bcsr_interface *)(interface))->elemsize)
#define STARPU_BCSR_GET_OFFSET 0
struct starpu_multiformat_data_interface_ops
{
size_t cpu_elemsize;
size_t opencl_elemsize;
struct starpu_codelet *cpu_to_opencl_cl;
struct starpu_codelet *opencl_to_cpu_cl;
size_t cuda_elemsize;
struct starpu_codelet *cpu_to_cuda_cl;
struct starpu_codelet *cuda_to_cpu_cl;
};
struct starpu_multiformat_interface
{
enum starpu_data_interface_id id;
void *cpu_ptr;
void *cuda_ptr;
void *hip_ptr;
void *opencl_ptr;
uint32_t nx;
struct starpu_multiformat_data_interface_ops *ops;
};
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);
#define STARPU_MULTIFORMAT_GET_CPU_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->cpu_ptr)
#define STARPU_MULTIFORMAT_GET_CUDA_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->cuda_ptr)
#define STARPU_MULTIFORMAT_GET_HIP_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->hip_ptr)
#define STARPU_MULTIFORMAT_GET_OPENCL_PTR(interface) (((struct starpu_multiformat_interface *)(interface))->opencl_ptr)
#define STARPU_MULTIFORMAT_GET_NX(interface) (((struct starpu_multiformat_interface *)(interface))->nx)
#ifdef __cplusplus
}
#endif
#endif /* __STARPU_DATA_INTERFACES_H__ */
starpu_codelet
Definition starpu_task.h:338
starpu_data_interface_ops::peek_data
int(* peek_data)(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count)
Definition starpu_data_interfaces.h:653
starpu_multiformat_data_interface_ops::cuda_elemsize
size_t cuda_elemsize
Definition starpu_data_interfaces.h:2661
starpu_variable_interface::dev_handle
uintptr_t dev_handle
Definition starpu_data_interfaces.h:2148
starpu_data_interface_ops::footprint
uint32_t(* footprint)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:561
starpu_block_interface::offset
size_t offset
Definition starpu_data_interfaces.h:1400
starpu_variable_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:2145
starpu_data_interface_ops::unregister_data_handle
void(* unregister_data_handle)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:399
starpu_tensor_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1588
starpu_data_interface_ops::get_size
size_t(* get_size)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:538
starpu_data_copy_methods::can_copy
int(* can_copy)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node, unsigned handling_node)
Definition starpu_data_interfaces.h:113
starpu_bcsr_interface::nrow
uint32_t nrow
Definition starpu_data_interfaces.h:2420
starpu_data_copy_methods::ram_to_max_fpga
int(* ram_to_max_fpga)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:148
starpu_bcsr_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:2442
starpu_ndim_interface::ndim
size_t ndim
Definition starpu_data_interfaces.h:1821
starpu_data_interface_ops::update_map
int(* update_map)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:498
starpu_bcsr_interface::nnz
uint32_t nnz
Definition starpu_data_interfaces.h:2419
starpu_data_copy_methods::cuda_to_ram
int(* cuda_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:155
starpu_data_interface_ops::alloc_compare
int(* alloc_compare)(void *data_interface_a, void *data_interface_b)
Definition starpu_data_interfaces.h:588
starpu_variable_interface::ptr
uintptr_t ptr
Definition starpu_data_interfaces.h:2147
starpu_ndim_interface::ptr
uintptr_t ptr
Definition starpu_data_interfaces.h:1815
starpu_ndim_interface::nn
uint32_t * nn
Definition starpu_data_interfaces.h:1819
starpu_data_interface_ops::dontcache
char dontcache
Definition starpu_data_interfaces.h:625
starpu_data_interface_ops::map_data
int(* map_data)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:484
starpu_tensor_interface::nz
uint32_t nz
Definition starpu_data_interfaces.h:1595
starpu_matrix_interface::allocsize
size_t allocsize
Definition starpu_data_interfaces.h:1098
starpu_coo_interface::values
uintptr_t values
Definition starpu_data_interfaces.h:1305
starpu_data_copy_methods::ram_to_ram
int(* ram_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:120
starpu_csr_interface::colind
uint32_t * colind
Definition starpu_data_interfaces.h:2270
starpu_tensor_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:1600
starpu_csr_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:2277
starpu_matrix_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:1097
starpu_csr_interface::firstentry
uint32_t firstentry
Definition starpu_data_interfaces.h:2275
starpu_matrix_interface::ptr
uintptr_t ptr
Definition starpu_data_interfaces.h:1088
starpu_ndim_interface::offset
size_t offset
Definition starpu_data_interfaces.h:1817
starpu_vector_interface::dev_handle
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1986
starpu_block_interface::ldy
uint32_t ldy
Definition starpu_data_interfaces.h:1404
starpu_bcsr_interface::ram_rowptr
uint32_t * ram_rowptr
Definition starpu_data_interfaces.h:2435
starpu_block_interface::nz
uint32_t nz
Definition starpu_data_interfaces.h:1403
starpu_data_copy_methods::ram_to_cuda_async
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
starpu_bcsr_interface::colind
uint32_t * colind
Definition starpu_data_interfaces.h:2423
starpu_data_interface_ops::free_meta
int(* free_meta)(void *data_interface)
Definition starpu_data_interfaces.h:681
starpu_variable_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:2150
starpu_matrix_interface::ld
uint32_t ld
Definition starpu_data_interfaces.h:1093
starpu_coo_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1301
starpu_coo_interface::rows
uint32_t * rows
Definition starpu_data_interfaces.h:1304
starpu_data_interface_ops::pack_data
int(* pack_data)(starpu_data_handle_t handle, unsigned node, void **ptr, starpu_ssize_t *count)
Definition starpu_data_interfaces.h:647
starpu_data_copy_methods::hip_to_ram
int(* hip_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:169
starpu_ndim_interface::dev_handle
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1816
starpu_data_copy_methods::ram_to_cuda
int(* ram_to_cuda)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:127
starpu_multiformat_data_interface_ops::cpu_elemsize
size_t cpu_elemsize
Definition starpu_data_interfaces.h:2657
starpu_data_interface_ops::pack_meta
int(* pack_meta)(void *data_interface, void **ptr, starpu_ssize_t *count)
Definition starpu_data_interfaces.h:668
starpu_tensor_interface::ldz
uint32_t ldz
Definition starpu_data_interfaces.h:1598
starpu_csr_interface::nzval
uintptr_t nzval
Definition starpu_data_interfaces.h:2269
starpu_data_copy_methods::hip_to_hip_async
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
starpu_data_interface_ops::interfaceid
enum starpu_data_interface_id interfaceid
Definition starpu_data_interfaces.h:607
starpu_vector_interface::ptr
uintptr_t ptr
Definition starpu_data_interfaces.h:1985
starpu_data_interface_ops::compare
int(* compare)(void *data_interface_a, void *data_interface_b)
Definition starpu_data_interfaces.h:579
starpu_tensor_interface::offset
size_t offset
Definition starpu_data_interfaces.h:1592
starpu_multiformat_data_interface_ops::opencl_elemsize
size_t opencl_elemsize
Definition starpu_data_interfaces.h:2658
starpu_ndim_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:1822
starpu_ndim_interface::ldn
uint32_t * ldn
Definition starpu_data_interfaces.h:1820
starpu_block_interface::ptr
uintptr_t ptr
Definition starpu_data_interfaces.h:1398
starpu_coo_interface::n_values
uint32_t n_values
Definition starpu_data_interfaces.h:1308
starpu_block_interface::dev_handle
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1399
starpu_bcsr_interface::rowptr
uint32_t * rowptr
Definition starpu_data_interfaces.h:2424
starpu_data_interface_ops::interface_size
size_t interface_size
Definition starpu_data_interfaces.h:612
starpu_csr_interface::ram_rowptr
uint32_t * ram_rowptr
Definition starpu_data_interfaces.h:2273
starpu_tensor_interface::dev_handle
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1591
starpu_csr_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:2265
starpu_vector_interface::slice_base
uint32_t slice_base
Definition starpu_data_interfaces.h:1990
starpu_csr_interface::nrow
uint32_t nrow
Definition starpu_data_interfaces.h:2268
starpu_data_copy_methods::opencl_to_ram
int(* opencl_to_ram)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:183
starpu_block_interface::ny
uint32_t ny
Definition starpu_data_interfaces.h:1402
starpu_data_copy_methods::opencl_to_opencl
int(* opencl_to_opencl)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:190
starpu_data_interface_ops::get_max_size
size_t(* get_max_size)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:554
starpu_tensor_interface::nt
uint32_t nt
Definition starpu_data_interfaces.h:1596
starpu_vector_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:1989
starpu_tensor_interface::ptr
uintptr_t ptr
Definition starpu_data_interfaces.h:1590
starpu_data_copy_methods::hip_to_hip
int(* hip_to_hip)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:176
starpu_data_interface_ops::name
char * name
Definition starpu_data_interfaces.h:686
starpu_data_interface_ops::get_alloc_size
size_t(* get_alloc_size)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:546
starpu_data_copy_methods::hip_to_ram_async
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
starpu_bcsr_interface::firstentry
uint32_t firstentry
Definition starpu_data_interfaces.h:2437
starpu_data_copy_methods::cuda_to_cuda
int(* cuda_to_cuda)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:162
starpu_block_interface::ldz
uint32_t ldz
Definition starpu_data_interfaces.h:1405
starpu_bcsr_interface::r
uint32_t r
Definition starpu_data_interfaces.h:2439
starpu_multiformat_data_interface_ops::cpu_to_cuda_cl
struct starpu_codelet * cpu_to_cuda_cl
Definition starpu_data_interfaces.h:2662
starpu_data_copy_methods::cuda_to_cuda_async
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
starpu_csr_interface::nnz
uint32_t nnz
Definition starpu_data_interfaces.h:2267
starpu_matrix_interface::offset
size_t offset
Definition starpu_data_interfaces.h:1090
starpu_matrix_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1087
starpu_vector_interface::offset
size_t offset
Definition starpu_data_interfaces.h:1987
starpu_data_copy_methods::ram_to_hip
int(* ram_to_hip)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:134
starpu_data_interface_ops::display
void(* display)(starpu_data_handle_t handle, FILE *f)
Definition starpu_data_interfaces.h:594
starpu_data_copy_methods::max_fpga_to_ram_async
int(* max_fpga_to_ram_async)(void *src_interface, unsigned srd_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:326
starpu_data_interface_ops::unpack_data
int(* unpack_data)(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count)
Definition starpu_data_interfaces.h:660
starpu_tensor_interface::ny
uint32_t ny
Definition starpu_data_interfaces.h:1594
starpu_data_interface_ops::alloc_footprint
uint32_t(* alloc_footprint)(starpu_data_handle_t handle)
Definition starpu_data_interfaces.h:571
starpu_vector_interface::allocsize
size_t allocsize
Definition starpu_data_interfaces.h:1991
starpu_vector_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1983
starpu_coo_interface::columns
uint32_t * columns
Definition starpu_data_interfaces.h:1303
starpu_data_copy_methods::ram_to_max_fpga_async
int(* ram_to_max_fpga_async)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:316
starpu_multiformat_data_interface_ops::cpu_to_opencl_cl
struct starpu_codelet * cpu_to_opencl_cl
Definition starpu_data_interfaces.h:2659
starpu_matrix_interface::dev_handle
uintptr_t dev_handle
Definition starpu_data_interfaces.h:1089
starpu_data_interface_ops::register_data_handle
void(* register_data_handle)(starpu_data_handle_t handle, int home_node, void *data_interface)
Definition starpu_data_interfaces.h:386
starpu_data_copy_methods::cuda_to_ram_async
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
starpu_data_interface_ops::init
void(* init)(void *data_interface)
Definition starpu_data_interfaces.h:505
starpu_data_interface_ops::free_data_on_node
void(* free_data_on_node)(void *data_interface, unsigned node)
Definition starpu_data_interfaces.h:425
starpu_data_interface_ops::reuse_data_on_node
void(* reuse_data_on_node)(void *dst_data_interface, const void *cached_interface, unsigned node)
Definition starpu_data_interfaces.h:477
starpu_coo_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:1309
starpu_data_copy_methods::opencl_to_opencl_async
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
starpu_bcsr_interface::c
uint32_t c
Definition starpu_data_interfaces.h:2440
starpu_data_interface_ops::describe
starpu_ssize_t(* describe)(void *data_interface, char *buf, size_t size)
Definition starpu_data_interfaces.h:602
starpu_multiformat_data_interface_ops::cuda_to_cpu_cl
struct starpu_codelet * cuda_to_cpu_cl
Definition starpu_data_interfaces.h:2663
starpu_data_interface_ops::unpack_meta
int(* unpack_meta)(void **data_interface, void *ptr, starpu_ssize_t *count)
Definition starpu_data_interfaces.h:676
starpu_multiformat_data_interface_ops::opencl_to_cpu_cl
struct starpu_codelet * opencl_to_cpu_cl
Definition starpu_data_interfaces.h:2660
starpu_matrix_interface::ny
uint32_t ny
Definition starpu_data_interfaces.h:1092
starpu_vector_interface::nx
uint32_t nx
Definition starpu_data_interfaces.h:1988
starpu_data_copy_methods::any_to_any
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
starpu_ndim_interface::allocsize
size_t allocsize
Definition starpu_data_interfaces.h:1818
starpu_data_copy_methods::opencl_to_ram_async
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
starpu_data_interface_ops::unmap_data
int(* unmap_data)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:491
starpu_bcsr_interface::ram_colind
uint32_t * ram_colind
Definition starpu_data_interfaces.h:2434
starpu_data_copy_methods::ram_to_hip_async
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
starpu_data_copy_methods::max_fpga_to_ram
int(* max_fpga_to_ram)(void *src_interface, unsigned srd_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:197
starpu_block_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1396
starpu_block_interface::elemsize
size_t elemsize
Definition starpu_data_interfaces.h:1406
starpu_coo_interface::ny
uint32_t ny
Definition starpu_data_interfaces.h:1307
starpu_bcsr_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:2417
starpu_csr_interface::rowptr
uint32_t * rowptr
Definition starpu_data_interfaces.h:2271
starpu_variable_interface::offset
size_t offset
Definition starpu_data_interfaces.h:2149
starpu_csr_interface::ram_colind
uint32_t * ram_colind
Definition starpu_data_interfaces.h:2272
starpu_tensor_interface::ldy
uint32_t ldy
Definition starpu_data_interfaces.h:1597
starpu_data_copy_methods::ram_to_opencl
int(* ram_to_opencl)(void *src_interface, unsigned src_node, void *dst_interface, unsigned dst_node)
Definition starpu_data_interfaces.h:141
starpu_matrix_interface::nx
uint32_t nx
Definition starpu_data_interfaces.h:1091
starpu_bcsr_interface::nzval
uintptr_t nzval
Definition starpu_data_interfaces.h:2422
starpu_ndim_interface::id
enum starpu_data_interface_id id
Definition starpu_data_interfaces.h:1813
starpu_data_interface_ops::cache_data_on_node
void(* cache_data_on_node)(void *cached_interface, void *src_interface, unsigned node)
Definition starpu_data_interfaces.h:455
starpu_block_interface::nx
uint32_t nx
Definition starpu_data_interfaces.h:1401
starpu_tensor_interface::ldt
uint32_t ldt
Definition starpu_data_interfaces.h:1599
starpu_coo_interface::nx
uint32_t nx
Definition starpu_data_interfaces.h:1306
starpu_tensor_interface::nx
uint32_t nx
Definition starpu_data_interfaces.h:1593
starpu_data_interface_ops::allocate_data_on_node
starpu_ssize_t(* allocate_data_on_node)(void *data_interface, unsigned node)
Definition starpu_data_interfaces.h:416
starpu_data_copy_methods::ram_to_opencl_async
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
starpu_data_interface_ops::copy_methods
const struct starpu_data_copy_methods * copy_methods
Definition starpu_data_interfaces.h:515
starpu_data_handle_to_pointer
void * starpu_data_handle_to_pointer(starpu_data_handle_t handle, unsigned node)
starpu_tensor_get_local_ldt
uint32_t starpu_tensor_get_local_ldt(starpu_data_handle_t handle)
starpu_free_on_node_flags
void starpu_free_on_node_flags(unsigned dst_node, uintptr_t addr, size_t size, int flags)
starpu_tensor_get_local_ldy
uint32_t starpu_tensor_get_local_ldy(starpu_data_handle_t handle)
starpu_vector_data_register_allocsize
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)
starpu_vector_get_nx
uint32_t starpu_vector_get_nx(starpu_data_handle_t handle)
starpu_ndim_ptr_register
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)
starpu_tensor_ptr_register
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)
starpu_data_register_same
void starpu_data_register_same(starpu_data_handle_t *handledst, starpu_data_handle_t handlesrc)
starpu_data_ptr_register
void starpu_data_ptr_register(starpu_data_handle_t handle, unsigned node)
starpu_ndim_get_local_ptr
uintptr_t starpu_ndim_get_local_ptr(starpu_data_handle_t handle)
starpu_matrix_ptr_register
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)
starpu_interface_copynd
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)
starpu_malloc_on_node_set_default_flags
void starpu_malloc_on_node_set_default_flags(unsigned node, int flags)
starpu_data_get_max_size
starpu_ssize_t starpu_data_get_max_size(starpu_data_handle_t handle)
starpu_data_pack_node
int starpu_data_pack_node(starpu_data_handle_t handle, unsigned node, void **ptr, starpu_ssize_t *count)
starpu_data_get_home_node
int starpu_data_get_home_node(starpu_data_handle_t handle)
starpu_bcsr_data_register
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)
starpu_matrix_data_register_allocsize
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)
starpu_multiformat_data_register
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)
starpu_ndim_data_register
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)
starpu_vector_get_allocsize
size_t starpu_vector_get_allocsize(starpu_data_handle_t handle)
starpu_tensor_get_local_ldz
uint32_t starpu_tensor_get_local_ldz(starpu_data_handle_t handle)
starpu_csr_get_firstentry
uint32_t starpu_csr_get_firstentry(starpu_data_handle_t handle)
starpu_bcsr_get_elemsize
size_t starpu_bcsr_get_elemsize(starpu_data_handle_t handle)
starpu_vector_data_register
void starpu_vector_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, uint32_t nx, size_t elemsize)
starpu_matrix_get_nx
uint32_t starpu_matrix_get_nx(starpu_data_handle_t handle)
starpu_block_get_elemsize
size_t starpu_block_get_elemsize(starpu_data_handle_t handle)
starpu_interface_copy3d
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)
starpu_data_unpack_node
int starpu_data_unpack_node(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count)
starpu_csr_get_local_nzval
uintptr_t starpu_csr_get_local_nzval(starpu_data_handle_t handle)
starpu_interface_start_driver_copy_async
void starpu_interface_start_driver_copy_async(unsigned src_node, unsigned dst_node, double *start)
starpu_variable_get_local_ptr
uintptr_t starpu_variable_get_local_ptr(starpu_data_handle_t handle)
starpu_bcsr_get_local_colind
uint32_t * starpu_bcsr_get_local_colind(starpu_data_handle_t handle)
starpu_data_print
void starpu_data_print(starpu_data_handle_t handle, unsigned node, FILE *stream)
starpu_matrix_get_local_ld
uint32_t starpu_matrix_get_local_ld(starpu_data_handle_t handle)
starpu_interface_end_driver_copy_async
void starpu_interface_end_driver_copy_async(unsigned src_node, unsigned dst_node, double start)
starpu_tensor_get_nx
uint32_t starpu_tensor_get_nx(starpu_data_handle_t handle)
starpu_csr_get_nnz
uint32_t starpu_csr_get_nnz(starpu_data_handle_t handle)
starpu_block_get_local_ldz
uint32_t starpu_block_get_local_ldz(starpu_data_handle_t handle)
starpu_block_get_local_ptr
uintptr_t starpu_block_get_local_ptr(starpu_data_handle_t handle)
starpu_ndim_get_nn
uint32_t * starpu_ndim_get_nn(starpu_data_handle_t handle)
starpu_bcsr_get_c
uint32_t starpu_bcsr_get_c(starpu_data_handle_t handle)
starpu_interface_copy4d
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)
starpu_matrix_get_ny
uint32_t starpu_matrix_get_ny(starpu_data_handle_t handle)
starpu_csr_get_nrow
uint32_t starpu_csr_get_nrow(starpu_data_handle_t handle)
starpu_tensor_get_nz
uint32_t starpu_tensor_get_nz(starpu_data_handle_t handle)
starpu_csr_get_local_rowptr
uint32_t * starpu_csr_get_local_rowptr(starpu_data_handle_t handle)
starpu_interface_copy
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)
starpu_free_on_node
void starpu_free_on_node(unsigned dst_node, uintptr_t addr, size_t size)
starpu_data_register
void starpu_data_register(starpu_data_handle_t *handleptr, int home_node, void *data_interface, struct starpu_data_interface_ops *ops)
starpu_tensor_get_ny
uint32_t starpu_tensor_get_ny(starpu_data_handle_t handle)
starpu_block_get_ny
uint32_t starpu_block_get_ny(starpu_data_handle_t handle)
starpu_matrix_data_register
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)
starpu_data_register_ops
void starpu_data_register_ops(struct starpu_data_interface_ops *ops)
starpu_block_get_nx
uint32_t starpu_block_get_nx(starpu_data_handle_t handle)
starpu_tensor_get_nt
uint32_t starpu_tensor_get_nt(starpu_data_handle_t handle)
starpu_bcsr_get_nnz
uint32_t starpu_bcsr_get_nnz(starpu_data_handle_t handle)
starpu_block_ptr_register
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)
starpu_bcsr_get_firstentry
uint32_t starpu_bcsr_get_firstentry(starpu_data_handle_t handle)
starpu_coo_data_register
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)
starpu_bcsr_get_local_rowptr
uint32_t * starpu_bcsr_get_local_rowptr(starpu_data_handle_t handle)
starpu_data_unpack
int starpu_data_unpack(starpu_data_handle_t handle, void *ptr, size_t count)
starpu_variable_get_elemsize
size_t starpu_variable_get_elemsize(starpu_data_handle_t handle)
starpu_matrix_get_allocsize
size_t starpu_matrix_get_allocsize(starpu_data_handle_t handle)
starpu_matrix_get_local_ptr
uintptr_t starpu_matrix_get_local_ptr(starpu_data_handle_t handle)
starpu_block_data_register
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)
starpu_tensor_data_register
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
starpu_data_interface_id
Definition starpu_data_interfaces.h:352
starpu_interface_data_copy
void starpu_interface_data_copy(unsigned src_node, unsigned dst_node, size_t size)
starpu_malloc_on_node_flags
uintptr_t starpu_malloc_on_node_flags(unsigned dst_node, size_t size, int flags)
starpu_csr_get_elemsize
size_t starpu_csr_get_elemsize(starpu_data_handle_t handle)
starpu_ndim_get_ni
uint32_t starpu_ndim_get_ni(starpu_data_handle_t handle, size_t i)
starpu_bcsr_get_nrow
uint32_t starpu_bcsr_get_nrow(starpu_data_handle_t handle)
starpu_data_get_interface_on_node
void * starpu_data_get_interface_on_node(starpu_data_handle_t handle, unsigned memory_node)
starpu_ndim_get_local_ldn
uint32_t * starpu_ndim_get_local_ldn(starpu_data_handle_t handle)
starpu_void_data_register
void starpu_void_data_register(starpu_data_handle_t *handle)
starpu_malloc_on_node
uintptr_t starpu_malloc_on_node(unsigned dst_node, size_t size)
starpu_csr_data_register
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)
starpu_data_get_local_ptr
void * starpu_data_get_local_ptr(starpu_data_handle_t handle)
starpu_interface_unmap
int starpu_interface_unmap(uintptr_t src, size_t src_offset, unsigned src_node, uintptr_t dst, unsigned dst_node, size_t size)
starpu_data_get_size
size_t starpu_data_get_size(starpu_data_handle_t handle)
starpu_data_get_alloc_size
size_t starpu_data_get_alloc_size(starpu_data_handle_t handle)
starpu_interface_update_map
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)
starpu_block_get_nz
uint32_t starpu_block_get_nz(starpu_data_handle_t handle)
starpu_vector_ptr_register
void starpu_vector_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset)
starpu_data_peek
int starpu_data_peek(starpu_data_handle_t handle, void *ptr, size_t count)
starpu_ndim_get_local_ldi
uint32_t starpu_ndim_get_local_ldi(starpu_data_handle_t handle, size_t i)
starpu_ndim_get_elemsize
size_t starpu_ndim_get_elemsize(starpu_data_handle_t handle)
starpu_vector_get_elemsize
size_t starpu_vector_get_elemsize(starpu_data_handle_t handle)
starpu_vector_get_local_ptr
uintptr_t starpu_vector_get_local_ptr(starpu_data_handle_t handle)
starpu_interface_copy2d
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)
starpu_csr_get_local_colind
uint32_t * starpu_csr_get_local_colind(starpu_data_handle_t handle)
starpu_data_get_interface_id
enum starpu_data_interface_id starpu_data_get_interface_id(starpu_data_handle_t handle)
starpu_data_pack
int starpu_data_pack(starpu_data_handle_t handle, void **ptr, starpu_ssize_t *count)
starpu_tensor_get_local_ptr
uintptr_t starpu_tensor_get_local_ptr(starpu_data_handle_t handle)
starpu_bcsr_get_r
uint32_t starpu_bcsr_get_r(starpu_data_handle_t handle)
starpu_tensor_get_elemsize
size_t starpu_tensor_get_elemsize(starpu_data_handle_t handle)
starpu_interface_map
uintptr_t starpu_interface_map(uintptr_t src, size_t src_offset, unsigned src_node, unsigned dst_node, size_t size, int *ret)
starpu_bcsr_get_local_nzval
uintptr_t starpu_bcsr_get_local_nzval(starpu_data_handle_t handle)
starpu_data_peek_node
int starpu_data_peek_node(starpu_data_handle_t handle, unsigned node, void *ptr, size_t count)
starpu_matrix_get_elemsize
size_t starpu_matrix_get_elemsize(starpu_data_handle_t handle)
starpu_block_get_local_ldy
uint32_t starpu_block_get_local_ldy(starpu_data_handle_t handle)
starpu_ndim_get_ndim
size_t starpu_ndim_get_ndim(starpu_data_handle_t handle)
starpu_data_interface_get_next_id
int starpu_data_interface_get_next_id(void)
starpu_variable_ptr_register
void starpu_variable_ptr_register(starpu_data_handle_t handle, unsigned node, uintptr_t ptr, uintptr_t dev_handle, size_t offset)
starpu_variable_data_register
void starpu_variable_data_register(starpu_data_handle_t *handle, int home_node, uintptr_t ptr, size_t size)
STARPU_BCSR_INTERFACE_ID
@ STARPU_BCSR_INTERFACE_ID
Definition starpu_data_interfaces.h:358
STARPU_MATRIX_INTERFACE_ID
@ STARPU_MATRIX_INTERFACE_ID
Definition starpu_data_interfaces.h:354
STARPU_VARIABLE_INTERFACE_ID
@ STARPU_VARIABLE_INTERFACE_ID
Definition starpu_data_interfaces.h:359
STARPU_VECTOR_INTERFACE_ID
@ STARPU_VECTOR_INTERFACE_ID
Definition starpu_data_interfaces.h:356
STARPU_CSR_INTERFACE_ID
@ STARPU_CSR_INTERFACE_ID
Definition starpu_data_interfaces.h:357
STARPU_UNKNOWN_INTERFACE_ID
@ STARPU_UNKNOWN_INTERFACE_ID
Definition starpu_data_interfaces.h:353
STARPU_TENSOR_INTERFACE_ID
@ STARPU_TENSOR_INTERFACE_ID
Definition starpu_data_interfaces.h:363
STARPU_COO_INTERFACE_ID
@ STARPU_COO_INTERFACE_ID
Definition starpu_data_interfaces.h:362
STARPU_MAX_INTERFACE_ID
@ STARPU_MAX_INTERFACE_ID
Definition starpu_data_interfaces.h:365
STARPU_MULTIFORMAT_INTERFACE_ID
@ STARPU_MULTIFORMAT_INTERFACE_ID
Definition starpu_data_interfaces.h:361
STARPU_VOID_INTERFACE_ID
@ STARPU_VOID_INTERFACE_ID
Definition starpu_data_interfaces.h:360
STARPU_NDIM_INTERFACE_ID
@ STARPU_NDIM_INTERFACE_ID
Definition starpu_data_interfaces.h:364
STARPU_BLOCK_INTERFACE_ID
@ STARPU_BLOCK_INTERFACE_ID
Definition starpu_data_interfaces.h:355
starpu_bcsr_interface
Definition starpu_data_interfaces.h:2416
starpu_block_interface
Definition starpu_data_interfaces.h:1395
starpu_coo_interface
Definition starpu_data_interfaces.h:1300
starpu_csr_interface
Definition starpu_data_interfaces.h:2264
starpu_data_copy_methods
Definition starpu_data_interfaces.h:105
starpu_data_interface_ops
Definition starpu_data_interfaces.h:372
starpu_matrix_interface
Definition starpu_data_interfaces.h:1086
starpu_multiformat_data_interface_ops
Definition starpu_data_interfaces.h:2656
starpu_multiformat_interface
Definition starpu_data_interfaces.h:2670
starpu_ndim_interface
Definition starpu_data_interfaces.h:1812
starpu_tensor_interface
Definition starpu_data_interfaces.h:1587
starpu_variable_interface
Definition starpu_data_interfaces.h:2144
starpu_vector_interface
Definition starpu_data_interfaces.h:1982
starpu_data_handle_t
struct _starpu_data_state * starpu_data_handle_t
Definition starpu_data.h:45
starpu.h