alf_task_handle_t - This data structure is a handle to a specific compute task running on the accelerators.
It is created by calling the alf_task_create function and destroyed by either calling the alf_task_destroy function or when the alf_exit function is called. Call the alf_task_wait function to wait for the task to finish processing all queued work blocks. The alf_task_finalize API is also used to indicate to the ALF runtime that no new work blocks will be added to the work queue of the corresponding task in the future.