Ограничить количество вычислительных единиц, используемых OpenCL - PullRequest
1 голос
/ 19 сентября 2011

Мне нужно ограничить количество вычислительных блоков, используемых моим приложением opencl.Я запускаю его на процессоре, который имеет 8 вычислительных блоков, я видел это с CL_DEVICE_MAX_COMPUTE_UNITS.

Время выполнения, которое я получаю с OpenCL, в 8 раз меньше обычного алгоритма без OpenCL (как 600время быстрее).Я хочу использовать только 1 вычислительную единицу, потому что мне нужно увидеть реальное улучшение с тем же кодом, оптимизированным OpenCL.

Это только для тестирования, реальное приложение будет продолжать использовать все вычислительные единицы.

Спасибо за вашу помощь

1 Ответ

5 голосов
/ 21 сентября 2011

Если вы используете ЦП, почему вы не пытаетесь использовать расширение деления устройств OpenCL?

Device Fission позволяет вам разделить компьютерный блок на подустройства.Затем вы можете создать очередь команд для подустройства и ставить ядра в очередь только для этого подмножества ядер вашего процессора,

Вы можете разделить ваше 8-ядерное устройство на 8 подустройств по 1 ядру, например, каждое.

Взгляните на пример деления устройства в AMD APP SDK.

...