Что такое хост в opencl?

Я начал изучать openCL. Я делаю учебник сейчас, но я не могу понять, что идея хоста может кто-то объяснить.Спасибо

1 ответов


OpenCL-это система, предназначенная для поддержки массивно-параллельной обработки, например, с помощью современных графических чипов (графических процессоров). В парадигме OpenCL "хост-программа" -это внешняя логика управления, которая выполняет конфигурацию для приложения на основе GPU. Эта хост-программа обычно будет работать на ЦП общего назначения (например, x86-совместимый основной процессор в большинстве настольных ПК). Программа OpenCL также содержит одну или несколько функций "ядра", предназначенных для параллельного выполнения на GPU.

после настройки всех буферов и ядер хост-программа вызовет что-то вроде

EnqueueNDRangeKernel()

который начнет выполнение ядра на GPU.

в зависимости от вашей целевой платформы все может быть немного по-другому. Например, OpenCL специально не требует наличия GPU. Вместо этого можно выполнить ядро как несколько потоков на одном процессоре, который запускает хост программа.

сводка номенклатуры OpenCL:

  • Хоста - основной процессор, используемый для настройки выполнения ядра
  • устройства - компонент, который содержит блоки обработки, которые будут выполнять ядро (GPU)