OpenCL барьер ряда подгрупп - PullRequest
       83

OpenCL барьер ряда подгрупп

1 голос
/ 26 сентября 2019

В OpenGL 2.1 рабочая группа подразделяется на подгруппы.work_group_barrier() синхронизирует все рабочие элементы в рабочей группе, sub_group_barrier() только рабочие элементы в одной подгруппе.

Возможно ли синхронизировать рабочие элементы в диапазоне подгрупп?

Например, рабочая группа состоит из 5 подгрупп, каждая из которых содержит 64 рабочих элемента.Подгруппы 0 и 1 (= рабочие элементы 0 - 128) должны синхронизироваться, чтобы после барьера рабочие элементы из подгруппы 0 могли получить доступ к данным, записанным подгруппой 1).В то же время подгруппы 2, 3 и 4 могут продолжаться без участия в этой синхронизации, возможно, выполняя другую часть кода.

В CUDA это возможно для перекосов (эквивалент подгруппы, 32 потока) с использованием встроенногоСборка PTX: CUDA: как использовать барьер.sync

Есть ли способ сделать это с OpenCL на платформе AMD, возможно, с использованием встроенного кода сборки?Если нет, есть ли другой API / язык GPGPU для платформы AMD, который позволил бы это?

...