Set Event Callback in OpenCL

这个 API 用来注册回调函数,在(Event 对应的)Command 执行到指定状态时,回调函数会被触发。这个 API 在使用及实现上不是很复杂。 以下是原型:

cl_int clSetEventCallback(
    cl_event event,
    cl_int command_exec_callback_type,
    void (CL_CALLBACK  *pfn_event_notify) (cl_event event,
                                           cl_int event_command_exec_status,
                                           void *user_data),
    void *user_data)

其中 command_exec_callback_type 参数在不同版本里有 差异

  • OpenCL 1.1: The command execution callback value for which a callback can be registered is CL_COMPLETE.
  • OpenCL 1.2 and later: The command execution callback value for which a callback can be registered is CL_SUBMITTED, CL_RUNNING, or CL_COMPLETE.

这个需要注意。

Read More: