Следует учитывать влияние регистра на нагрузку на оборудование и производительность.
Как правило, большие ядра имеют большие регистры. Типичные устройства OpenCL (т. Е. Графические процессоры) имеют очень ограниченные размеры файлов регистров, и большие ядра могут привести к снижению параллелизма (меньшему количеству одновременных перекосов / волновых фронтов), меньшим возможностям скрытия задержек и снижению общей производительности. С другой стороны, затраты на запуск ядра на большинстве платформ довольно низкие, поэтому, если у вашего алгоритма нет огромного количества состояний для сохранения между «фазами» выполнения, штраф за использование нескольких ядер может быть довольно низким.
Использование нескольких ядер также имеет еще одно дополнительное преимущество - вы получаете неявную синхронизацию между всеми рабочими модулями бесплатно. Зачастую это может устранить необходимость в элементарных операциях памяти и примитивах синхронизации, что может отрицательно сказаться на производительности кода.
Конечное руководство должно быть измерено производительность. Для такого рода вещей не существует универсального эмпирического правила. Бенчмаркинг - это единственный способ узнать наверняка.