#include <starpu.h>
#include <semaphore.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <stdarg.h>
#include <common/config.h>
#include <common/timing.h>
#include <common/list.h>
#include <common/fxt.h>
#include <core/dependencies/tags.h>
#include <datawizard/datawizard.h>
#include <core/perfmodel/perfmodel.h>
#include <core/errorcheck.h>
#include <common/barrier.h>
#include <common/utils.h>
#include <cuda.h>
Go to the source code of this file.
|
#define | _STARPU_CPU_MAY_PERFORM(j) |
|
#define | _STARPU_CUDA_MAY_PERFORM(j) |
|
#define | _STARPU_OPENCL_MAY_PERFORM(j) |
|
#define | _STARPU_MIC_MAY_PERFORM(j) |
|
#define | _STARPU_JOB_GET_ORDERED_BUFFER_INDEX(job, i) |
|
#define | _STARPU_JOB_GET_ORDERED_BUFFER_HANDLE(job, i) |
|
#define | _STARPU_JOB_GET_ORDERED_BUFFER_MODE(job, i) |
|
#define | _STARPU_JOB_GET_ORDERED_BUFFER_NODE(job, i) |
|
#define | _STARPU_JOB_SET_ORDERED_BUFFER_INDEX(job, __index, i) |
|
#define | _STARPU_JOB_SET_ORDERED_BUFFER_HANDLE(job, __handle, i) |
|
#define | _STARPU_JOB_SET_ORDERED_BUFFER_MODE(job, __mode, i) |
|
#define | _STARPU_JOB_SET_ORDERED_BUFFER_NODE(job, __node, i) |
|
#define | _STARPU_JOB_SET_ORDERED_BUFFER(job, buffer, i) |
|
#define | _STARPU_JOB_GET_ORDERED_BUFFERS(job) |
|
#define | _STARPU_JOB_GET_DEP_SLOTS(job) |
|
|
void | _starpu_job_init (void) |
|
void | _starpu_job_fini (void) |
|
struct _starpu_job * | _starpu_job_create (struct starpu_task *task) STARPU_ATTRIBUTE_MALLOC |
|
void | _starpu_job_destroy (struct _starpu_job *j) |
|
int | _starpu_job_finished (struct _starpu_job *j) |
|
void | _starpu_wait_job (struct _starpu_job *j) |
|
int | _starpu_test_job_termination (struct _starpu_job *j) |
|
void | _starpu_job_prepare_for_continuation_ext (struct _starpu_job *j, unsigned continuation_resubmit, void(*continuation_callback_on_sleep)(void *arg), void *continuation_callback_on_sleep_arg) |
|
void | _starpu_job_prepare_for_continuation (struct _starpu_job *j) |
|
void | _starpu_job_set_omp_cleanup_callback (struct _starpu_job *j, void(*omp_cleanup_callback)(void *arg), void *omp_cleanup_callback_arg) |
|
void | _starpu_exclude_task_from_dag (struct starpu_task *task) |
|
unsigned | _starpu_enforce_deps_and_schedule (struct _starpu_job *j) |
|
unsigned | _starpu_enforce_deps_starting_from_task (struct _starpu_job *j) |
|
unsigned | _starpu_reenforce_task_deps_and_schedule (struct _starpu_job *j) |
|
void | _starpu_enforce_deps_notify_job_ready_soon (struct _starpu_job *j, _starpu_notify_job_start_data *data, int tag) |
|
void | _starpu_handle_job_submission (struct _starpu_job *j) |
|
void | _starpu_handle_job_termination (struct _starpu_job *j) |
|
size_t | _starpu_job_get_data_size (struct starpu_perfmodel *model, struct starpu_perfmodel_arch *arch, unsigned nimpl, struct _starpu_job *j) |
|
struct starpu_task * | _starpu_pop_local_task (struct _starpu_worker *worker) |
|
int | _starpu_push_local_task (struct _starpu_worker *worker, struct starpu_task *task, int prio) |
|
◆ _starpu_data_descr
struct _starpu_data_descr |
Data Fields |
starpu_data_handle_t |
handle |
|
enum starpu_data_access_mode |
mode |
|
int |
node |
|
int |
index |
This is the value actually chosen, only set by _starpu_fetch_task_input for coherency with __starpu_push_task_output
|
int |
orderedindex |
|
◆ _starpu_cl_func_t
typedef void(* _starpu_cl_func_t) (void **, void *) |
◆ _starpu_job_create()
Create an internal struct _starpu_job *structure to encapsulate the task.
◆ _starpu_job_destroy()
Destroy the data structure associated to the job structure
◆ _starpu_job_finished()
Test for the termination of the job
◆ _starpu_wait_job()
Wait for the termination of the job
◆ _starpu_test_job_termination()
Test for the termination of the job
◆ _starpu_job_prepare_for_continuation_ext()
void _starpu_job_prepare_for_continuation_ext |
( |
struct _starpu_job * |
j, |
|
|
unsigned |
continuation_resubmit, |
|
|
void(*)(void *arg) |
continuation_callback_on_sleep, |
|
|
void * |
continuation_callback_on_sleep_arg |
|
) |
| |
Prepare the job for accepting new dependencies before becoming a continuation.
◆ _starpu_exclude_task_from_dag()
void _starpu_exclude_task_from_dag |
( |
struct starpu_task * |
task | ) |
|
Specify that the task should not appear in the DAG generated by debug tools.
◆ _starpu_enforce_deps_and_schedule()
try to submit job j, enqueue it if it's not schedulable yet. The job's sync mutex is supposed to be held already
◆ _starpu_reenforce_task_deps_and_schedule()
When waking up a continuation, we only enforce new task dependencies
◆ _starpu_handle_job_submission()
Called at the submission of the job
◆ _starpu_handle_job_termination()
This function must be called after the execution of a job, this triggers all job's dependencies and perform the callback function if any.
◆ _starpu_job_get_data_size()
size_t _starpu_job_get_data_size |
( |
struct starpu_perfmodel * |
model, |
|
|
struct starpu_perfmodel_arch * |
arch, |
|
|
unsigned |
nimpl, |
|
|
struct _starpu_job * |
j |
|
) |
| |
Get the sum of the size of the data accessed by the job.
◆ _starpu_pop_local_task()
Get a task from the local pool of tasks that were explicitly attributed to that worker.
◆ _starpu_push_local_task()
Put a task into the pool of tasks that are explicitly attributed to the specified worker. If "back" is set, the task is put at the back of the list. Considering the tasks are popped from the back, this value should be 0 to enforce a FIFO ordering.