Могу ли я получить максимальную деформацию/рабочую группу на одном вычислительном блоке с помощью некоторой функции, такой как clGetDeviceInfo. Из того, что я нашел, число зависит только от возможности вычисления. Есть ли какая-нибудь функция, которая может ее обнаружить?OpenCl max warp и рабочая группа на единицу расчета
ТНХ jikra
Спасибо за ваш ответ, но мне нужно что-нибудь еще: Мне нужно установить желаемое занятие для некоторого тестирования. Так что мне нужно знать максимум. warp, который может работать на моем HW и рассчитать распределение размеров NDRange вблизи требуемой занятости. Поэтому мне нужно максимально возможное количество активных потоков в вычислительной единице, которая позволяет аппаратное обеспечение. Могу ли я найти это? – cizek
по ссылке: «CL_KERNEL_WORK_GROUP_SIZE \t size_t \t - Это обеспечивает механизм для приложения для запроса максимального размера рабочей группы, который может использоваться для выполнения ядра на определенном устройстве, заданном устройством. Реализация OpenCL использует ресурс требования к ядру (использование регистра и т. д.), чтобы определить, какой должен быть этот размер рабочей группы. " – mfa
Да, я понимаю это. Пример. У меня есть NVidia Qadro 3000M, поэтому я могу иметь максимум 48 бит и 8 рабочих групп на единицу измерения. Если у меня есть ядро с регистрацией 63, CL_KERNEL_WORK_GROUP_SIZE возвращает 512. Если я выполняю NDRange (1,1,1) (1,32,16), будет в одном вычислительном блоке всего 16 активных деформаций. занятость будет 16/48 = 0,33 (33%), но если я выйду NDRange (2,1,1) (1,24,16), будет в одном вычислительном блоке всего 12 активных деформаций. Занятие будет 12/48 = 0,25 (25%). Для этого расчета мне нужно знать максимальную активную деформацию на вычислительной единице – cizek