Arax -8d09c51940345c86062e8ef2427c705ae66e5926
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
Loading...
Searching...
No Matches
arax_data_private.h File Reference
#include "arax_data.h"
+ Include dependency graph for arax_data_private.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void arax_data_shm_sync (arax_accel *accel, const char *func, arax_data_s *data, int block)
 
void arax_data_migrate_accel (arax_data_s *data, arax_accel *accel)
 
void arax_data_allocate_remote (arax_data_s *data, arax_accel *accel)
 
void * arax_data_deref (arax_data *data)
 
arax_dataarax_data_ref (void *data)
 
arax_dataarax_data_ref_offset (arax_pipe_s *vpipe, void *data)
 
int arax_data_has_remote (arax_data *data)
 

Function Documentation

◆ arax_data_allocate_remote()

void arax_data_allocate_remote ( arax_data_s * data,
arax_accel * accel )

Initialize data remote (accelerator) buffer.

Parameters
dataArax data.

Definition at line 162 of file arax_data.c.

References arax_data_s::accel, arax_accel_size_dec(), arax_assert, arax_assert_obj, arax_data_size(), arax_object_ref_inc(), arax_proc_get(), arax_task_free(), arax_task_issue(), arax_task_wait(), ARAX_THROTTLE_DEBUG_PRINT, ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, CPU, arax_data_s::remote, and task_completed.

+ Here is the call graph for this function:

◆ arax_data_deref()

void * arax_data_deref ( arax_data * data)

Get pointer to buffer for use from CPU.

Parameters
dataValid arax_data pointer.
Returns
Ram point to arax_data buffer.NULL on failure.

Definition at line 260 of file arax_data.c.

References arax_assert_obj, ARAX_THROTTLE_DEBUG_PRINT, ARAX_TYPE_DATA, and arax_data_s::buffer.

Referenced by arax_data_memcpy(), arax_data_ref_offset(), and arax_data_stat().

+ Here is the caller graph for this function:

◆ arax_data_has_remote()

int arax_data_has_remote ( arax_data * data)

Returns true if data has been allocated on the remote accelerator.

Parameters
dataData to be queried.
Returns
1 if data has a remote accelerator allocation, 0 otherwise.

Definition at line 334 of file arax_data.c.

References arax_assert_obj, ARAX_TYPE_DATA, and arax_data_s::remote.

◆ arax_data_migrate_accel()

void arax_data_migrate_accel ( arax_data_s * data,
arax_accel * accel )

Migrate data accelerator location to accel.

\NOTE: Does not yet support migration across physical devices.

Definition at line 117 of file arax_data.c.

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_object_ref_dec(), arax_object_ref_inc(), arax_object_type_to_str(), ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_s::phys, arax_data_s::remote, and TYPE_MASK.

Referenced by arax_data_arg_init(), arax_data_input_init(), and arax_data_output_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arax_data_ref()

arax_data * arax_data_ref ( void * data)

Get pointer to arax_data object from related CPU buffer data. Undefined behaviour if data is not a value returned by arax_data_deref.

Returns
pointer to arax_data.NULL on failure.

Definition at line 274 of file arax_data.c.

References arax_assert, arax_ptr_valid(), ARAX_TYPE_DATA, arax_data_s::obj, arax_object_s::type, and VD_BUFF_OWNER.

Referenced by arax_data_ref_offset().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arax_data_ref_offset()

arax_data * arax_data_ref_offset ( arax_pipe_s * vpipe,
void * data )

Get pointer to arax_data object from data that points 'inside' related CPU buffer .

Returns
pointer to arax_data.NULL on failure.

Definition at line 295 of file arax_data.c.

References arax_assert, arax_data_deref(), arax_data_ref(), arax_data_size(), arax_object_list_lock(), arax_object_list_unlock(), arax_ptr_valid(), ARAX_TYPE_DATA, utils_list_node::owner, utils_list_for_each, and vpipe.

+ Here is the call graph for this function:

◆ arax_data_shm_sync()

void arax_data_shm_sync ( arax_accel * accel,
const char * func,
arax_data_s * data,
int block )

Transfer data between shm and remote.

Parameters
accelAccelerator/fifo to use.
funcSync function to use. Can be "syncTo" or "syncFrom"
dataData to be moved with func.
blockIf !=0 this call will block until data are moved.

References vpipe.