@brief Execute a specified task
@brief Uninitialize MCL.
@ingroup General
@brief Gets information about the specified device
@ingroup DeviceStatus
@brief Gets the number of available devices
@ingroup DeviceStatus
@brief Free MCL handle and associated task
@pre Must be called after task has finished
@brief Initialize MCL
@ingroup General
@brief Invalidates device allocations
@ingroup Args
@brief Complete the task without executing (i.e. trigger dependencies)
@ingroup General
@brief Load a program
@ingroup General
@brief Register a buffer for future use with MCL resident memory
@ingroup Args
@brief Create an empty MCL task
@ingroup General
@brief Create an empty MCL task
@ingroup General
@brief Creates a new task and initializes it with the specified kernel
@ingroup General
@brief Set up an argument associated with a task
@ingroup Args
@brief Same as mcl task set arg, particularly for buffers
@ingroup Args
@brief Initialize a task to run the specified kernel
@ingroup General
@brief Check the status of the handle
@brief Create a transfer task.
A transfer task executes no computation, but can be used to put or remove buffers from devices
(i.e. if a an address needs to be invalidated because it might be reused later in the program
for a different buffer)
@brief Executes a transfer. Asychronously moves data
@brief Frees data associated with the transfer handle
@brief Sets up an argument for a transfer handle. Same as mcl_task_set_arg but for a transfer.
@brief Checks the status of a transfer
@brief Waits for transfers to complete
@brief Unregisters a buffer from MCL Resident memory.
@ingroup Args
@brief Block until the task associated with handle has finished
@brief Wait for all pending mcl tasks