Как максимально использовать GPU на OpenCL? - PullRequest
0 голосов
/ 02 мая 2018

Я использую OpenCL на AMD Radeon Vega 64. В диспетчере задач я вижу, что GPU использует максимум на 7%. Как максимально использовать графический процессор?

NDRange global(100000);
queue.enqueueNDRangeKernel(kernel, NULL, global));

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Вы можете попытаться вручную установить размер рабочей группы на значение, которое повысит производительность. Обычно значения по умолчанию достаточно хороши, но иногда вы можете использовать clGetKernelWorkGroupInfo для получения значений, специфичных для ядра, таких как CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE. Последний может использоваться как показатель того, каким может быть хороший размер настраиваемой рабочей группы для данного ядра OpenCL.

0 голосов
/ 02 мая 2018

В основном методом проб и ошибок. В зависимости от вашего ядра, самый простой способ - просто увеличить глобальный размер работы. Вы также можете попытаться использовать доступную информацию, такую ​​как CL_DEVICE_MAX_COMPUTE_UNITS или CL_DEVICE_MAX_WORK_ITEM_SIZES, чтобы программно определить размер работы, но это не совсем надежно.

...