Максимальное количество одновременных рабочих групп - PullRequest
3 голосов
/ 22 марта 2012

Мне было интересно, существует ли стандартный способ программного определения количества максимально одновременных рабочих групп, которые могут работать на графическом процессоре.

Например, на карте NVIDIA с 5 вычислительными блоками (или SM) может быть максимум 8 рабочих групп (или блоков) на вычислительную единицу, поэтому максимальное количество рабочих групп, которые могут быть запущены одновременно, равно 40.

Поскольку с помощью clGetDeviceInfo я могу найти количество вычислительных блоков, все, что мне нужно, - это максимальное количество рабочих групп, которое можно запустить на вычислительной единице.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 11 августа 2015

Максимальное количество групп на исполнительный блок / SM ограничено аппаратными ресурсами.Позвольте мне взять пример графического процессора Intel Gen8.Он содержит 16 барьерных регистров на субслайс.Таким образом, одновременно может быть запущено не более 16 рабочих групп.

Кроме того, объем общей локальной памяти, доступной для каждого среза (64 КБ).Например, если рабочей группе требуется 32 КБ общей локальной памяти, только 2 из этих рабочих групп могут работать одновременно, независимо от размера рабочей группы.

0 голосов
/ 23 марта 2012

Я обычно использую количество вычислительных единиц в качестве количества рабочих групп. Мне нравится увеличивать размер групп для насыщения оборудования, а не заставлять gpu планировать множество рабочих групп «одновременно».

Я не знаю, как определить максимальное количество групп, не посмотрев его в спецификации производителя.

...