Глоссарий ИИ
Полный словарь искусственного интеллекта
Work-item
Элементарная единица выполнения в OpenCL, аналог потоку в других моделях параллелизма. Каждый work-item выполняет экземпляр ядра с уникальными идентификаторами для доступа к различным частям данных.
Work-group
Коллекция work-items, которые разделяют определенные ресурсы и могут синхронизировать свое выполнение через барьеры. Work-groups являются единицей планирования для вычислительных блоков OpenCL и оптимизируют использование локальной памяти.
NDRange
N-мерное пространство индексации, определяющее полную сетку work-items для выполнения ядра. NDRange определяет, как данные разделяются на work-groups и work-items для параллельного вычисления.
Context
Среда выполнения OpenCL, содержащая устройства, объекты памяти и связанные команды. Контекст обеспечивает согласованность общих ресурсов между устройствами на одной платформе OpenCL.
Command Queue
Механизм упорядочивания операций OpenCL (передачи памяти, выполнение ядер) на определенное устройство. Команды могут выполняться в порядке или вне порядка в зависимости от параметров создания очереди.
Memory Model
Иерархическая структура памяти OpenCL, включающая глобальное, локальное, приватное и постоянное пространства памяти. Эта модель оптимизирует доступ к данным в зависимости от их расположения и частоты использования work-items.
Local Memory
Память, разделяемая между work-items одной work-group, обеспечивающая очень быстрый доступ для сотрудничества. Она позволяет реализовывать эффективные алгоритмы, такие как редукции и паттерны нерегулярного доступа.
Private Memory
Пространство памяти, эксклюзивное для каждого work-item, обычно реализованное с регистрами или локальным стеком. Она хранит временные переменные и гарантирует изоляцию между конкурентными work-items.
Объекты событий
Тонкая синхронизация команд OpenCL, позволяющая определять зависимости между операциями. События способствуют оптимизации параллелизма путем создания сложных графов выполнения.
Модель платформы
Абстракция OpenCL, определяющая хост, подключенный к одному или нескольким устройствам через драйвер. Модель платформы стандартизирует взаимодействие между хост-процессором и ускорителями для обеспечения переносимости кода.
Буферный объект
Контейнер памяти OpenCL для хранения линейных данных, доступных для ядер. Буферы поддерживают различные стратегии выделения и передачи между хостом и устройством для оптимизации производительности.
SVM (Разделяемая виртуальная память)
Расширение OpenCL 2.0, позволяющее совместно использовать указатели между хостом и устройством с единым виртуальным адресным пространством. SVM устраняет явные передачи и упрощает программирование для встроенных архитектур.
SPIR (Стандартное переносимое промежуточное представление)
Двоичный промежуточный формат OpenCL, позволяющий распространять ядра без исходного кода. SPIR обеспечивает переносимость между различными реализациями OpenCL, сохраняя при этом оптимизации, специфичные для устройств.
Векторные типы
Встроенные SIMD-типы данных OpenCL (float4, int8 и т. д.), оптимизирующие векторные операции на параллельных архитектурах. Векторные типы нативно используют SIMD-блоки графических процессоров для максимальной производительности вычислений.
Барьерная синхронизация
Примитив синхронизации, заставляющий все рабочие элементы рабочей группы достичь определенной точки перед продолжением. Барьеры обеспечивают согласованность общих данных в локальной памяти при совместных алгоритмах.