Вы можете использовать процессор в качестве вычислительного устройства.Opencl даже позволяет многоядерным / процессорным системам сегментировать ядра в отдельные вычислительные блоки.Мне нравится использовать эту функцию, чтобы разделить процессор в моей системе на группы, основанные на узлах NUMA.Можно разделить процессор на вычислительные устройства, которые используют один и тот же уровень кэш-памяти (L1, L2, L3 или L4).
Вам нужна платформа, поддерживающая ее, например, SDK AMD.Я знаю, что есть способы иметь платформы Nvidia и AMD на одной машине, но мне никогда не приходилось делать это самостоятельно.
Кроме того, система событий / обратных вызовов opencl позволяет вам использовать ваш процессор так, как вы это обычно делаете во время работы ядер gpu.Таким образом, вы можете использовать openmp или любой другой код на хосте, ожидая завершения работы ядра gpu.