2015-04-17 4 views
0

Я получаю ошибку openCL CL_INVALID_WORK_GROUP_SIZE с локальным размером работы 512. Программа работает с более низкими степенями 2, поэтому я предполагаю, что причина ошибки превышает CL_DEVICE_MAX_WORK_GROUP_SIZE.Программно определить максимальный размер рабочей группы, поддерживаемый устройством openCL

Есть ли способ запросить openCL для этого точного значения?

+0

[Очень первый результат в Google для 'CL_DEVICE_MAX_WORK_GROUP_SIZE'] (https://www.khronos.org/message_boards/showthread.php/7494-CL_DEVICE_MAX_WORK_GROUP_SIZE) –

+0

Уже найдено, что, спасибо! Нигде в этой статье не говорится, как получить атрибут. – mike

+1

Нет, но он описывает то, что звучит как одна и та же основная проблема, которую вы испытываете, и предлагает как причины, так и исправления. –

ответ

2

Вы можете запросить максимальный размер работы, группа устройства, как это:

size_t maxWorkGroupSize; 
clGetDeviceInfo(device, CL_DEVICE_MAX_WORK_GROUP_SIZE, 
       sizeof(size_t), &maxWorkGroupSize, NULL); 

Обратите внимание, что конкретное ядро ​​может иметь другой (нижний) максимум, который вы можете запросить так:

size_t maxWorkGroupSize; 
clGetKernelWorkGroupInfo(kernel, device, CL_KERNEL_WORK_GROUP_SIZE, 
         sizeof(size_t), &maxWorkGroupSize, NULL); 
+0

Thx! И вот связанная справочная страница: [clGetDeviceInfo] (https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clGetDeviceInfo.html) – mike

Смежные вопросы