Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sb98628.pdf
Скачиваний:
6
Добавлен:
13.02.2021
Размер:
978.17 Кб
Скачать

МИНОБРНАУКИ РОССИИ

–––––––——————————–––––––

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В. И. Ульянова (Ленина)

————————————————————

ЯЗЫК OPENCL.

ПРАКТИЧЕСКОЕ ЗНАКОМСТВО

Учебно-методическое пособие

Санкт-Петербург Издательство СПбГЭТУ «ЛЭТИ»

2019

УДК 004.43 (075) ББК 32.973.2

Я41

Грушвицкий Р. И., Кондорский Я. А., Перевертайло У. В., Шарагина Н. С.

Я41 Язык OpenCL. Практическое знакомство: учеб.-метод. пособие. СПб: Изд-во СПбГЭТУ «ЛЭТИ», 2019. 46 с.

ISBN 978-5-7629-2565-5

Содержит несколько тесно связанных частей: первая знакомит с языковыми конструкциями языка OpenCL, позволяющими в ходе выполнения лабораторных работ создавать и отлаживать простейшие программы на языке, вторая конкретизирует последовательность действий по использованию языка при создании и отладке примеров систем на кристалле на базе Embedded про-

цессора ARM Cortex-A9 Altera Cyclone VSoC FPGA, находящихся на отладоч-

ной плате DE1-SoC.

Предназначено для подготовки магистров техники и технологии по программе «Микросистемные компьютерные технологии: системы на кристалле» по дисциплине «Проектирование реконфигурируемых систем на кристалле».

УДК 004.43 (075) ББК 32.973.2

Рецензент кандидат технических наук, доцент высшей школы интеллектуальных систем и суперкомпьютерных технологий института компьютерных наук и технологий Санкт-Петербургского политехнического университета Петра Великого А. С. Филиппов.

Утверждено редакционно-издательским советом университета

в качестве учебно-методического пособия

ISBN 978-5-7629-2565-5

© СПбГЭТУ «ЛЭТИ», 2019

ВВЕДЕНИЕ

Необходимость языка OpenCL продиктована самой жизнью. Несмотря на молодой возраст языка (стандарт опубликован в 2008 г.), интерес к немуочень велик. Список литературы (в основном англоязычных изданий) значителен. Объема пособия даже для раскрытия одного из аспектов феномена OpenCL мало. Остановимся на варианте ознакомления с языком на частном примере системы проектирования (SDK), предлагаемой фирмой Altera.

Цикл лабораторных работ ориентирован на овладение возможностями языка проектирования OpenCL. В процессе выполнения работ студенты на стандартной демо-плате реализуют аппаратно-программные системы, совмещающие и свободную логику, и персональный компьютер.

Когда на рынке впервые появились многоядерные процессорные устройства, стало ясно, что необходима стандартная модель создания программ, которые можно было бы исполнять на множестве ядер и на различных устройствах [1]. Отсутствие стандарта, который можно было бы переносить на разные технологии программирования, беспокоило программистов. Ситуация несколько улучшилась в конце 2008 г., когда компания Apple, прилагая усилия по созданию кроссплатформенного стандарта параллельного программирования, предложила промышленному консорциуму Khronos Group проект спецификации OpenCL.

В данном цикле работ исследуются возможности применения языка OpenCL. Используемая отладочная плата фирмы Terasic типа DE1-SoC включает в свой состав кристалл Cyclone V, который состоит из FPGA подсистемы и программной подсистемы на базе встроенного Dual-core ARM Cortex-A9 (HPS) [2], [3].

Целью цикла работ является изучение особенностей написания программ на языке OpenCL. Выполнение работ предполагает использование САПР

Quartus II с программным пакетом Altera SoC Embedded Design Suite версии 17.0.2, SDK для OpenCL версии 16.0, BSP для SDK OpenCL версии 16.0.

Первая работа связана с изучением полного потока проектирования на языке OpenCL в САПР Quartus II фирмы Altera. Вторая работа призвана научить студентов созданию программного обеспечения для гетерогенных систем, соединяемых средствами Ethernet. Третья работа закрепляет полученные знания при проектировании на языке OpenCL на примере программно-аппа- ратной реализации векторных операций.

3

1. ПРЕДПОСЫЛКИ ВОЗНИКНОВЕНИЯ ЯЗЫКА OPENCL

Стандарт OpenCL предназначен для создания программного обеспечения гетерогенных систем (другими словами, программа, написанная с применением конструкций стандарта, может запускаться практически на любой вычислительнойсистеме:телефонах,графическихпроцессорах ипр.).Основным местом, где можно встретить гетерогенные системы, являются высокопроизводительные вычисления: от моделирования физических процессов в пограничном слое до кодирования видео и рендеринга трехмерных сцен. Раньше подобные задачи решали, применяя суперкомпьютеры. С появлением технологий NVidia CUDA/AMD Stream стало возможным относительно просто писать программы, использующие вычислительные возможности GPU.

Построен OpenCL на основе принципа «ведущий и ведомый» [4]. Разные авторы и компании ожидают совершенно различных выгод от применений языка. Проблема выделения конструкций языка в отдельные направления усложняется взаимным включением разных целей в идеологии каждого из них, а именно возможностями:

описывать на одном и том же языке и аппаратную, и программную составляющие алгоритмов функционирования отдельных параллельных ветвей;

описывать и специфицировать гетерогенные системы;

упрощать и ускорять;

унифицировать описание систем различной природы и организации. Основные изменения спецификации языка включают [5]:

новые типы данных, включая трехкомпонентные векторы и дополнительные графические форматы;

обработку команд и буферов с нескольких хостов и на нескольких устройствах одновременно;

операции на регионах буфера, включая чтение, запись и копирование 1D, 2D и 3D прямоугольных регионов;

расширенное использование события для управления потоком исполнения команд;

дополнительные встроенные Си-функции, такие как целочисленный clamp, shuffle и асинхронные разряженные копии.

Гетерогенные многоядерные системы, сочетающие два или более различных типов микропроцессоров (МП) и микроконтроллеров (МК), сегодня становятся де-факто типичной архитектурой любых сложных систем [6], [7].

4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]