У меня есть 2D-матрица, где я хочу изменить каждое значение, применяя функцию, которая зависит только от координат в матрице и значений, установленных во время компиляции. Поскольку между каждым таким расчетом не требуется синхронизация, мне кажется, что размер рабочей группы действительно может быть 1, а количество рабочих групп равно числу элементов в матрице.Рабочие размеры для полностью независимых вычислений в OpenCL
Вопрос в том, действительно ли это приведет к желаемому результату или будут ли другие силы играть здесь, что может улучшить настройку этих значений?
Хмм, какой эффект будет иметь на get_global_id vs get_local_id, чтобы получить координаты в общей матрице? –
Вы можете использовать их, как всегда. get_global_id() всегда будет возвращать глобальный идентификатор. Независимо от местного размера. И get_local_id() вернет локальный идентификатор, который зависит от локального размера, выбранного компилятором. В этом случае вы можете использовать get_local_size(), чтобы получить локальный размер, используемый во время выполнения. Тем не менее, вы заявили, что ваши рабочие элементы не нуждаются в локальной синхронизации, поэтому это совсем не требуется. – DarkZeros