- •ВВЕДЕНИЕ
- •1. ПРЕДПОСЫЛКИ ВОЗНИКНОВЕНИЯ ЯЗЫКА OPENCL
- •2. ДИЗАЙН OPENCL
- •2.1. Модель платформы
- •2.2. Модель вычислений
- •2.3. Модель памяти
- •2.4. Модель программирования
- •3. АППАРАТНЫЕ СРЕДСТВА, ПОДДЕРЖИВАЮЩИЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ
- •4. ЛАБОРАТОРНЫЕ РАБОТЫ
- •4.1. Поток проектирования при работе с языком OpenCL
- •4.1.1. Задание
- •4.1.2. Программное и аппаратное обеспечение
- •4.1.3. Последовательность выполнения работы
- •4.1.4. Заключение по практическому эксперименту
- •4.1.5. Содержание отчета
- •4.2. Создание аппаратно-программной системы с ОС Linux. Подключение к Ethernet. Работа с Web-сервером
- •4.2.1. Задание
- •4.2.2. Последовательность выполнения работы
- •4.2.3. Содержание отчета
- •4.3. Оптимизация умножения матриц в OpenCL
- •4.3.1. Базовый алгоритм умножения матриц
- •4.3.2. Использование локальной памяти
- •4.3.3. Увеличение числа одновременно исполняемых рабочих элементов
- •4.3.4. Содержание отчета
- •СПИСОК ЛИТЕРАТУРЫ
- •ИНТЕРНЕТ-РЕСУРСЫ
- •ПРИЛОЖЕНИЯ
- •П1. Код хост-программы для сложения двух векторов
- •П2. Исходный код хост-программы для умножения двух матриц
Необходимость параллелизма по заданиям может возникнуть, если параллелизм уже заключен в самом задании. Например, если в ядре задания производятся векторные операции над векторным типом данных. Также данный тип модели программирования может возникнуть, когда несколько команд запуска ядер помещаются в очередь, где запуск происходит сразу же, как только команда в нее поместилась. В ряде случаев это дает возможность увеличить степень использования OpenCL-устройств, позволяя системе самостоятельно планировать запуск множества различных заданий. Третий вариант параллелизмапозаданиямвозникает,когдамножествозаданийзависимомеждусобой и объединяются в граф с применением OpenCL-событий. Одни команды, помещенные в очередь, могут генерировать события, а другие команды могут ожидать этих событий, чтобы начать свое выполнение.
3. АППАРАТНЫЕ СРЕДСТВА, ПОДДЕРЖИВАЮЩИЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ
Начиная с 2008 г. отечественные разработчики средств вычислительной техники обратились к созданию суперкомпьютеров и их базовых блоков на микросхемах программируемой логики. Реализованные в Таганрогском государственном радиотехническом университете реконфигурируемые мультиконвейерные вычислительные устройства позволили России войти в число стран, обладающих суперкомпьютерами [7].
Наиболее интенсивно работы по внедрению ПЛИС в различные вычислительные средства вела фирма Xilinx. В конце 2018 г. компания анонсировала адаптивную гетерогенную платформу для ускорения компьютерных вычислений ACAP и первое семейство чипов, созданное в соответствие с этой техно-
логией – Everest [8].
ACAP – это высокоинтегрированная многоядерная гетерогенная вычислительная платформа, которая может быть модифицирована на аппаратном уровне для адаптации к потребностям широкого круга приложений. Адаптивность ACAP, которая может быть выполнена динамически во время работы, обеспечивает уровень производительности, не имеющую себе равных среди процессоров общего назначения и графических процессоров.
Платформа ACAP представляет новый класс устройств, содержащий дополнительные узлы: высокопроизводительную сеть, ускорители AI Engine и интегрированную оболочку для взаимодействия с внешним окружением.
Семейство Everest изготавливается по технологическим нормам 7 нм и
9
содержит более 50 млрд транзисторов в одном устройстве.
Одно устройство Everest имеет все современные технологии от Xilinx:
−гетерогенные мультипроцессорные ядра, как в ZYNQ UltraScale+;
−сверхвысокопроизводительная внутричиповая коммуникационная
сеть;
−память HBM со сверхбыстрым доступом;
−ЦАПы и АЦП радиочастотного диапазона;
−сверхбыстрые трансиверы – до 112 Гбайт/с на канал.
Вустройство Everest добавлен новый функциональный модуль – HW/SW Programmable Engines, позволяющий адаптироваться к особенностям решаемой в данный момент задачи, получая для каждой конкретной задачи структуру, оптимальную по производительности и потребляемой мощности.
Такая архитектура ориентирована на обработку больших объемов данных, в том числе в режиме реального времени во всех сегментах рынка:
−центры обработки данных;
−автомобильные приложения;
−беспроводные и проводные коммуникации;
−передача и обработка видеопотоков;
−системы искусственного интеллекта;
−военное применение.
По сравнению с современными технологиями, Xilinx объявляет, что ACAP даст 20-кратное ускорение в области обработки данных и 6-кратное в области их передачи.
Маршрут проектирования базируется на высокоуровневых подходах, в которых программирование на языках высокого уровня играет ведущую роль, а языки описания аппаратуры используются в минимальном объеме, либо не используются вовсе. Для разработки активно применяются продукты Xilinx SDSoc и SDAccel, а также стек Revision. Имеется поддержка библиотек OpenCL и OpenCV. Все это позволяет не только разрабатывать устройства и приложения с рекордной производительностьюи малым энергопотреблением, но и затрачивать на это значительно меньше времени, чем сейчас. Тем самым платформа сиспользованиемматриц FPGAпревращаетсяизтретьестепенного решения для прототипирования или организации интерфейсов в полноценный сопроцессор, функции которого могут подстраиваться под текущую рабочую нагрузку.
10