У меня есть ядро, у которого есть два аргумента: здоровенный глобальный входной буфер и промежуточный локальный буфер (__local), в который копируются куски данных (примерно 10*256 байт) для их обработки.
В талмуде от Khronos'а пишут про async_work_group_copy, однако не вполне понятно, как её использовать.
Насколько я могу понять, её должны вызывать все workitem'ы и с одними и теми же аргументами, даже если они вызывают её и не одновременно, а система сама рассудит, какой кусок из заявленного должен откопировать конкретный WI. Затем нужно таким же макаром вызвать в каждом WI wait_group_events на тот event, что вернула async_work_group_copy, с тем, чтобы wait_group_events вернулся, когда все кусочки, подлежащие копированию, будут пересунуты.
Всё ли я правильно понял?