2010-10-20 6 views
1

Я просто хотел спросить, может ли кто-нибудь дать мне понять, на что обратить внимание при использовании нескольких простых ядер после друг друга.Несколько ядер OpenCl

Могу ли я использовать то же самое CommandQueue? Могу ли я просто запустить несколько раз clCreateProgramWithSource + cl_program с другим cl_program? Что я забыл?

Спасибо!

ответ

9

Вы можете создавать и скомпилировать несколько программ (и создавать объекты ядра из них), или вы можете поместить все ядра в одну и ту же программу (clCreateProgramWithSource берет несколько строк в конце концов) и создавать все ваши ядра из этого. Либо должен работать нормально, используя тот же CommandQueue. Использование более одного CommandQueue для выполнения ядер, которые должны выполняться последовательно на одном и том же устройстве, в любом случае не является хорошей идеей, потому что в этом случае вам придется вручную дождаться завершения события вместо асинхронного включения всех ядер, а затем ожидания результата (в по крайней мере, некоторые операции должны выполняться параллельно на устройстве и хосте, поэтому ожидание в последний момент обычно выполняется быстрее и проще).

Смежные вопросы