Неверный адрес памяти при выделении буфера OpenCL

У меня есть программа, выполняющая некоторую обработку изображений с помощью OpenCL, иногда у меня происходит сбой, потому что она пытается записать что-то в адрес памяти (с помощью clCreateBuffer), который равен нулю.

Могу ли я использовать какой-либо вызов OpenCL, чтобы отложить эту запись в память, или можно ли проверить через С++, действителен ли адрес памяти?


person TurnsCoffeeIntoScripts    schedule 01.11.2011    source источник


Ответы (1)


Вероятно, вы можете использовать события OpenCL.

cl_int clWaitForEvents (cl_uint num_events,
    const cl_event *event_list)

Вы можете создать событие из вызова или операции, которую хотите дождаться, а затем перед созданием буфера дождаться завершения этого события.

Тем не менее, не могли бы вы предоставить немного информации. Например, что именно вы хотите сделать? Может быть, есть другой способ. Также было бы лучше, если бы у вас был код, показывающий ваши операции.

person Community    schedule 01.11.2011
comment
Из-за некоторых ограничений я не могу показать какой-либо код, но я попробовал функцию clWaitForEvents, и она, похоже, решила мою проблему. - person TurnsCoffeeIntoScripts; 01.11.2011