Глава 1 Архитектура OpenCL и Ускоренная параллельная обработка AMD
В этой главе представлен общий обзор программного и аппаратного обеспечения реализации ускоренной параллельной обработки AMD стандарта OpenCL. Это объясняет структуру памяти и дает простые примеры программирования.
1.1 Обзор Программного Обеспечения
Модель программирования OpenCL состоит из создания сложных графиков задач из узлов параллельного выполнения данных.
В данном параллельном выполнении данных, известном как запуск ядра, вычисление определяется в терминах последовательности инструкций, которые выполняются в
каждой точке в N-мерном пространстве индексов. Общая, несмотря на требования, формулировка алгоритма, в котором каждый вычислительный индекс сопоставляется
с элементом в наборе входных данных.
Модель OpenCL для параллельного программирования данных является иерархической. Иерархическую структуру разбиения можно указать двумя способами:
- А.) Явным образом - Разработчик определяет общее количество рабочих элементов для выполнения параллельного программирования, а также разделение рабочих элементов на конкретные рабочие группы.
- Б.) Неявно - Разработчик указывает общее число рабочих элементов для выполнения
параллельного программирования, и OpenCL управляет разделением на рабочие группы.
API для технологии OpenCL также поддерживает концепцию задач диспетчеризации. Это эквивалентно выполнением ядра на компьютерном устройстве с рабочей группой и NDRange,
содержим отдельный рабочий элемент. Параллелизм выражается с помощью типов векторных данных, реализованных устройством, постановкой в очередь нескольких задач и / или постановка в очередь собственных ядер, разработанных с использованием модели программирования, ортогональной OpenCL.