Несколько ядер OpenCl

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

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

Спасибо!


person Framester    schedule 20.10.2010    source источник


Ответы (1)


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

person Grizzly    schedule 21.10.2010