StarPU Internal Handbook
|
#include <starpu.h>
#include <common/config.h>
#include <core/jobs.h>
#include <common/starpu_spinlock.h>
Go to the source code of this file.
Data Structures | |
struct | _starpu_trs_epoch |
struct | starpu_transaction |
Macros | |
#define | _STARPU_JOB_UNSET |
#define | _STARPU_JOB_SETTING |
#define | _STARPU_TASK_SET_INTERFACE(task, interface, i) |
#define | _STARPU_TASK_GET_INTERFACES(task) |
Enumerations | |
enum | _starpu_trs_state { _starpu_trs_uninitialized , _starpu_trs_initialized } |
enum | _starpu_trs_epoch_state { _starpu_trs_epoch_uninitialized , _starpu_trs_epoch_inactive , _starpu_trs_epoch_confirmed , _starpu_trs_epoch_cancelled , _starpu_trs_epoch_terminated } |
Functions | |
void | _starpu_task_destroy (struct starpu_task *task) |
int | _starpu_task_test_termination (struct starpu_task *task) |
void | _starpu_task_init (void) |
void | _starpu_task_deinit (void) |
void | _starpu_set_current_task (struct starpu_task *task) |
int | _starpu_submit_job (struct _starpu_job *j, int nodeps) |
void | _starpu_task_declare_deps_array (struct starpu_task *task, unsigned ndeps, struct starpu_task *task_array[], int check) |
struct _starpu_job * | _starpu_get_job_associated_to_task_slow (struct starpu_task *task, struct _starpu_job *job) |
static struct _starpu_job * | _starpu_get_job_associated_to_task (struct starpu_task *task) |
int | _starpu_task_submit_internally (struct starpu_task *task) |
int | _starpu_handle_needs_conversion_task (starpu_data_handle_t handle, unsigned int node) |
int | _starpu_handle_needs_conversion_task_for_arch (starpu_data_handle_t handle, enum starpu_node_kind node_kind) |
void | _starpu_task_prepare_for_continuation_ext (unsigned continuation_resubmit, void(*continuation_callback_on_sleep)(void *arg), void *continuation_callback_on_sleep_arg) |
void | _starpu_task_prepare_for_continuation (void) |
void | _starpu_task_set_omp_cleanup_callback (struct starpu_task *task, void(*omp_cleanup_callback)(void *arg), void *omp_cleanup_callback_arg) |
int | _starpu_task_uses_multiformat_handles (struct starpu_task *task) |
int | _starpu_task_submit_conversion_task (struct starpu_task *task, unsigned int workerid) |
void | _starpu_task_check_deprecated_fields (struct starpu_task *task) |
void | _starpu_codelet_check_deprecated_fields (struct starpu_codelet *cl) |
static starpu_cpu_func_t | _starpu_task_get_cpu_nth_implementation (struct starpu_codelet *cl, unsigned nimpl) |
static starpu_cuda_func_t | _starpu_task_get_cuda_nth_implementation (struct starpu_codelet *cl, unsigned nimpl) |
static starpu_hip_func_t | _starpu_task_get_hip_nth_implementation (struct starpu_codelet *cl, unsigned nimpl) |
static starpu_opencl_func_t | _starpu_task_get_opencl_nth_implementation (struct starpu_codelet *cl, unsigned nimpl) |
static starpu_max_fpga_func_t | _starpu_task_get_fpga_nth_implementation (struct starpu_codelet *cl, unsigned nimpl) |
static const char * | _starpu_task_get_cpu_name_nth_implementation (struct starpu_codelet *cl, unsigned nimpl) |
void | _starpu_watchdog_init (void) |
void | _starpu_watchdog_shutdown (void) |
int | _starpu_task_wait_for_all_and_return_nb_waited_tasks (void) |
int | _starpu_task_wait_for_all_in_ctx_and_return_nb_waited_tasks (unsigned sched_ctx) |
struct _starpu_trs_epoch |
Data Fields | ||
---|---|---|
enum _starpu_trs_epoch_state | state | |
int | do_sync |
if 1, the epoch entry task will wait on some user-supplied handle TODO: only used for first epoch on transaction opening for now, add for next epoch |
int | is_begin |
if 1, the epoch is the first of the transaction |
int | is_end |
if 1, the epoch will be the last, and the transaction will be closed after its execution |
void * | do_start_arg |
inline argument supplied by the user and passed to the user function deciding whether to start or cancel the epoch execution |
enum _starpu_trs_state |
transaction states
transaction epoch states
void _starpu_task_destroy | ( | struct starpu_task * | task | ) |
Internal version of starpu_task_destroy: don't check task->destroy flag
int _starpu_task_test_termination | ( | struct starpu_task * | task | ) |
Test for the termination of the task. Call starpu_task_destroy if required and the task is terminated.
void _starpu_task_init | ( | void | ) |
A pthread key is used to store the task currently executed on the thread. _starpu_task_init initializes this pthread key and _starpu_set_current_task updates its current value.
struct _starpu_job * _starpu_get_job_associated_to_task_slow | ( | struct starpu_task * | task, |
struct _starpu_job * | job | ||
) |
Returns the job structure (which is the internal data structure associated to a task).
int _starpu_task_submit_internally | ( | struct starpu_task * | task | ) |
Submits starpu internal tasks to the initial context
void _starpu_task_prepare_for_continuation_ext | ( | unsigned | continuation_resubmit, |
void(*)(void *arg) | continuation_callback_on_sleep, | ||
void * | continuation_callback_on_sleep_arg | ||
) |
Prepare the current task for accepting new dependencies before becoming a continuation.