OpenCL enqueTask против enqueNDRangeKernel - PullRequest
1 голос
/ 15 марта 2012

Я пишу OpenCL, используя привязки c ++, пытаюсь создать небольшую библиотеку.

NDRange offset(0);
NDRange global_size(numWorkItems);
NDRange local_size(1);

//this call fails with error code -56
err = queue.enqueueNDRangeKernel(kernelReduction, offset, global_size, local_size);
//this call works:
err = queue.enqueueTask(kernelReduction);

Теперь код ошибки -56 - CL_INVALID_GLOBAL_OFFSET. И я понятия не имею, почему первый вызов потерпит неудачу. Есть предложения?

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Если вы используете OpenCL 1.0, вы не можете использовать глобальные смещения afaik (вам нужно обойти, используя постоянный счетчик памяти или что-то в этом роде).Попробуйте обновить привязки к OpenCL 1.1, если они не адаптируются автоматически, и убедитесь, что вы также обновили свои драйверы.

1 голос
/ 15 марта 2012

global_work_offset должно быть NULL.Любое значение здесь должно создать CL_INVALID_GLOBAL_OFFSET.

проверить это: clEnqueueNDRangeKernel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...