Учебное пособие по обработке событий OpenCl

В моем последнем вопросе очистка OpenCl вызывает segfault. кто-то намекнул, что отсутствует обработка событий, т.е. ожидание завершения кода может привести к ошибкам seg. С тех пор я снова просмотрел учебники, которые использовал, но они не обращают внимания на события (Матричное умножение 1 (OpenCL) и NVIDIA_OpenCL_GettingStartedLinux.pdf) или рассказать об этом подробно и (для меня) понятно.

Знаете ли вы учебник по where and how to wait в OpenCL?

Мерси!


person Jean    schedule 17.09.2010    source источник


Ответы (1)


У меня нет учебника по событиям в OpenCL, и я ни в коем случае не эксперт, но поскольку больше никто не отвечает...

Как правило, вам нужно дождаться выполнения любой функции с именем clEnqueue*. Эти функции возвращаются непосредственно перед выполнением задания. Самый простой способ убедиться, что ваша очередь завершена, — это вызвать clFinish(). Он не вернется, пока вся очередь не будет завершена.

Если вы хотите немного поразмыслить, большинство функций clEnqueue* имеют необязательный параметр cl_event, который вы можете передать. Вы можете проверить конкретное событие с помощью clGetEventInfo(), и вы можете дождаться завершения определенного набора событий с помощью clWaitForEvents().

person Steve Blackwell    schedule 20.09.2010