OpenCL™ - BSP - Центр поддержки

Intel® FPGA SDK для OpenCL™ позволяет разработчикам программного обеспечения ускорить работу своих приложений, ориентируясь на гетерогенные платформы с процессорами Intel и FPGA. Intel® FPGA SDK для OpenCL™ может быть установлен как часть программного обеспечения Intel® Quartus® Prime или как отдельный пакет. Вы можете загрузить Intel FPGA SDK для OpenCL по ссылке ниже.

Загрузить Intel® FPGA SDK для OpenCL™

Добро пожаловать на страницу поддержки OpenCL™ BSP! Здесь вы найдете информацию о том, как планировать, проектировать и реализовывать openCL™ BSP, а также узнаете несколько советов и трюков для целей отладки.

Эта страница предназначена для того, чтобы провести вас от начала до конца процесса разработки пакета поддержки Плат OpenCL™ (BSP) (или проектирования/переноса ядра/алгоритмов OpenCL). В разделе Изменение эталонного проекта вы найдете ресурсы о том, как модифицировать эталонную платформу Intel® в свою собственную пользовательскую платформу, а также как компилировать плоские проекты без сбоев во времени. В разделе «Планировка и сроки закрытия» приведены рекомендации о том, как разделить вашу конструкцию и достичь максимальной рабочей частоты. В нем также описываются методы закрытия тайминга на вашем проекте и гарантированного закрытия времени при создании BSP. В разделе Утилиты MMD и OpenCL описаны шаги по перестройке MMD и подробные сведения об утилитах OpenCL. В разделе Отладка представлены некоторые средства и ресурсы для отладки проблем, с которыми вы можете столкнуться. Во всех разделах перечислены документы и учебные курсы, которые полезны в процессе разработки BSP.

1. Изменение эталонного дизайна

Начало работы

Чтобы начать разработку BSP, убедитесь, что вы выполнили следующие действия.

  1. Убедитесь, что установлен пакет Intel® FPGA SDK для OpenCL™ и Intel® Quartus®.
  2. Убедитесь, что доступна версия средства, соответствующая справочной BSP OpenCL™.
  3. Подтвердите доступ к полной лицензии на программное обеспечение Intel® Quartus®.

Выбор эталонного проекта

Выберите эталонный дизайн, который подходит для вашей пользовательской платформы

Корпорация Intel поддерживает OpenCL™ эталонные конструкции BSP для следующих платформ. Вы также можете просмотреть руководство по переносу OpenCL™ BSP для конкретной платформы:

Изменение эталонного проекта

Начните изменять эталонный дизайн для вашего platfrom, выполнив действия, описанные в руководствах по переносу OpenCL BSP. Рекомендуется, чтобы после внесения изменений в конструкцию вы попробовали скомпилировать свое первое ядро. Как правило, мы используем ядро под названием Boardtest,которое тестирует различные интерфейсы BSP. Информация о шагах построения Boardtest и общих BSP приведена в следующем руководстве:

Intel® FPGA SDK для OpenCL™ Руководство пользователя инструментария для пользовательских платформ (PDF) ›

Рекомендуемые шаги для создания BSP:

  1. Скомпилируйте Boardtest в "плоском" потоке для создания временно закрытого файла ".aocx"
  2. Проверьте ".aocx", запустив Boardtest и перепроверьте ожидаемые от теста значения пропускной способности интерфейса
  3. Начните работу над планировкой этажей для «базовой» сборки, чтобы создать гарантированно закрытый по срокам OpenCL BSP

2. Планировка этажей и сроки закрытия

Начало работы

В OpenCL нам нужно работать над сроками для двух разных ревизий проекта - плоской и базовой ревизий. Плоская ревизия - это версия без каких-либо разделов или областей логической блокировки, которая использует файл hardware/flat.qsf для ее реализации. В то время как базовая ревизия включает в себя секционирование и логические блокировки, и использует файл hardware/base.qsf для ее реализации. Мы рекомендуем вам сначала получить ревизию квартиры с временным временем в качестве хорошего начала, а затем поработать над планировкой пола, чтобы получить пересмотр проекта с чистым временем основания.

Для получения более подробной информации о потоке компиляции обратитесь к разделу OpenCL™ BSP Compilation Flow в Intel® FPGA SDK для OpenCL™ Руководство по оптимизации плана плана плана.

Перегородка поэтажного плана

Начните с плоской компиляции, чтобы понять, где естественным образом размещаются все основные компоненты BSP (особенно блоки интеллектуальной собственности (IP) с соединениями ввода-вывода, такие как память PCIe* или DDR).

Для получения дополнительных рекомендаций по этому вопросу обратитесь к разделу Руководство по планированию этажей OpenCL™ BSP в Intel® FPGA SDK для OpenCL™ Руководство по оптимизации плана этажа пакета поддержки плат.

Для получения дополнительной информации вы также можете обратиться к Руководству пользователя частичной перенастройки.

Изменение региона PR

Во время базовой компиляции начните с области логической блокировки ядра, содержащей freeze_wrapper_inst|kernel_system_inst. Используйте плоскую компиляцию и планировщик чипов для определения размера и расположения оборудования BSP. Попытайтесь зарезервировать дополнительные ресурсы для kernel_system с помощью области логической блокировки.

Для получения дополнительных рекомендаций по этому вопросу обратитесь к разделу Руководство по планированию этажей OpenCL™ BSP в Intel® FPGA SDK для OpenCL™ Руководство по оптимизации плана этажа пакета поддержки плат.

Исправление нарушений сроков

Чтобы исправить нарушения времени в проекте, может потребоваться добавить этапы конвейера между IP-ядрами.

Для получения дополнительных рекомендаций обратитесь к следующим ссылкам:

Ограничения установки/удержания

В .failing_paths.rpt и .failing_clocks.rpt в выходном каталоге перечислены основные сбои в проектировании. При постоянном сбое в некоторых путях может потребоваться установить ограничение минимальной или максимальной задержки для этого критического пути внутри файла /hardware/top.sdc.

Для решения связанных с этим вопросов вы можете обратиться к следующему методу обхода на странице Базы знаний —Как закрыть время для конкурирующих нарушений удержания и настройки в Arria 10?

3. Утилиты MMD и OpenCL™

Разработка или модификация источника MMD

Программная библиотека MMD реализует базовый ввод-вывод (I/O) между хостом и платой ускорения и предоставляет интерфейсы, такие как открытие, чтение и запись. Драйвер библиотеки MMD хранится в форматах Windows* 64 или Linux* 64, а исходный код хранится в исходной папке.

Для получения дополнительной информации обратитесь к разделу Создание библиотеки MMD в Руководстве пользователя Intel® FPGA SDK для OpenCL™ Custom Platform Toolkit.

Поддержка утилит

Утилиты OpenCL™ позволяют осуществлять доступ к плате с помощью Intel® FPGA SDK для OpenCL™. Это включает в себя установку aocl, удаление aocl, диагностику aocl, программу aocl и флэш-память aocl.

Для получения дополнительной информации обратитесь к разделу Предоставление Intel® FPGA SDK для OpenCL™ Утилиты поддержка в Руководстве пользователя Intel® FPGA SDK для OpenCL™ Custom Platform Toolkit.

После создания программных утилит и уровня MMD необходимо протестировать конструкцию оборудования. Стандартным способом является генерация ядра boardtest и запуск на плате.

Для получения дополнительной информации обратитесь к разделу Тестирование проектирования аппаратного обеспечения в Intel® FPGA SDK для OpenCL™ Руководство пользователя Custom Platform Toolkit.

4. Отладка

Поднятие доски

Этот раздел поможет Вам устранить неполадки при поиске комплектов intel® FPGA или Ваших собственных системных плат.

Чтобы узнать о некоторых известных проблемах, с которыми вы можете столкнуться при поднятии ваших системных плат, обратитесь к следующим разделам в AN 807: Настройка Intel® Arria® 10 GX FPGA Development Kit для Intel® FPGA SDK для OpenCL™ Примечание по применению:

План этажа и сроки

Для получения советов и рекомендаций по использованию минимальной площади для статической логики и оставлению большего пространства для вашего ядра OpenCL™ вы можете обратиться к AN 824: Intel® FPGA SDK для OpenCL™ Руководство по оптимизации планаплана установки.

Отладка во время выполнения

Существуют определенные переменные среды, которые можно задать для получения дополнительной отладочной информации при запуске ведущего приложения. Это Intel® FPGA SDK для OpenCL™ специфические переменные среды, которые могут помочь диагностировать проблемы с пользовательскими конструкциями платформ.

В следующей таблице перечислены все эти переменные среды, а также подробно описаны.

Переменная среды

Описание

ACL_HAL_DEBUG

Задайте для этой переменной значение от 1 до 5, чтобы увеличить выходные данные отладки из уровня абстракции оборудования (HAL), который взаимодействует непосредственно с уровнем MMD.

ACL_PCIE_DEBUG

Задайте для этой переменной значение от 1 до 10000, чтобы увеличить выходные данные отладки mmD. Эта переменная полезна для подтверждения правильности считывания регистра идентификаторов версий и калибровки IP-ядер UniPHY.

ACL_PCIE_JTAG_CABLE

Задайте эту переменную для переопределения аргумента quartus_pgm по умолчанию, указывая номер кабеля. По умолчанию используется кабель 1. Если имеется несколько загрузок кабеля Intel® FPGA, Вы можете указать конкретный кабель, установив эту переменную.

ACL_PCIE_JTAG_DEVICE_INDEX

Задайте эту переменную для переопределения аргумента quartus_pgm по умолчанию, задающее индекс устройства FPGA. По умолчанию эта переменная имеет значение 1. Если FPGA не является первым устройством в цепочке JTAG, можно настроить значение.

ACL_PCIE_USE_JTAG_PROGRAMMING

Задайте эту переменную, чтобы заставить MMD перепрограммировать FPGA с помощью кабеля JTAG вместо частичной перенастройки.

ACL_PCIE_DMA_USE_MSI

Задайте эту переменную, если вы хотите использовать MSI для передачи прямого доступа к памяти (DMA) в Windows*.

Сигнал Касание Отладка

Поскольку проекты OpenCL™ не поддерживают функцию моделирования, использование логического анализатора Signal Tap является лучшим способом отладки этих проектов.

Для отладки любой конструкции, в которой есть зависание ядра или проблема, связанная с интерфейсом памяти или ошибкой диагностики aocl, рекомендуется использовать logic Analyzer Signal Tap.

Дополнительные сведения о логическом анализаторе Signal Tap см. в разделе Отладка проекта с помощью логического анализатора касания сигналов в Руководстве пользователя средств отладки.

Чтобы добавить файл Signal Tap в конструкцию BSP, выполните следующие действия.

1. Откройте графический интерфейс Signal Tap и добавьте все сигналы для анализа.

2. Сохраните файл STP в том же каталоге, что и файл проекта программного обеспечения Intel® Quartus®.

3. Добавьте следующие командные строки в свой flat.qsf:

  • set_global_assignment -имя ENABLE_SIGNALTAP ВК
  • set_global_assignment -имя USE_SIGNALTAP_FILE <file_name>.stp
  • set_global_assignment -имя SIGNALTAP_FILE <file_name>.stp

4. Перекомпилировать ядро из командной строки AOCL.

Известные проблемы

5. Рекомендуемое чтение и обучение

OpenCL™ Видео

Титул

Описание

Начало работы с OpenCL™ часть 1

В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ быстрого преобразования Фурье (FFT) на SoC Cyclone® V с помощью компьютера Windows*.

Начало работы с OpenCL™ часть 2

В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ FFT на SoC Cyclone® V с помощью компьютера Windows*.

Начало работы с OpenCL часть 3

В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ FFT на SoC Cyclone® V с помощью компьютера Windows*.

Начало работы с OpenCL Часть 4

В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ FFT на SoC Cyclone® V с помощью компьютера Windows*.

Начало работы с OpenCL часть 5

В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ FFT на SoC Cyclone® V с помощью компьютера Windows*.

Как упаковать пользовательские модули Verilog /проекты в библиотеки OpenCL™

В видео обсуждается, почему клиенты могут потенциально использовать эту функцию для использования своих пользовательских блоков обработки (RTL) в OpenCL™ код ядра. В видео объясняется пример проектирования, например файлы make, файлы конфигурации и описывается процесс компиляции. В видео также показана демонстрация примера дизайна.

OpenCL™ на Intel FPGA SoC FPGA (Linux Host) – Часть 1 – Загрузка и настройка инструментов

В этом видео показано, как загрузить, установить и настроить инструменты, необходимые для разработки ядер OpenCL™ и хост-кода, предназначенного для Intel FPGA SoC FPGA FPGA.

OpenCL™ на Intel FPGA SoC FPGA (Linux Host) – Часть 2 – Запуск примера векторного добавления с эмулятором

В этом видео показано, как загрузить и скомпилировать пример приложения OpenCL™ предназначенного для эмулятора, встроенного в Intel FPGA OpenCL™.

OpenCL™ на Intel FPGA SoC FPGA (Linux Host) – Часть 3 – Компиляция ядра и хост-кода для SoC FPGA

В этом видео показано, как скомпилировать ядро OpenCL™ и хост-код, предназначенный для FPGA и процессора Cyclone® V SoC FPGA.

OpenCL™ на Intel FPGA SoC FPGA (Linux Host) – Часть 4 – Настройка среды выполнения

В этом видео показано, как настроить плату SoC Cyclone® V для запуска примера OpenCL™ и выполнения хост-кода и ядра на плате.

6. Получить помощь

Сертифицированные поставщики услуг OpenCL

Корпорация Intel рекомендует следующих сертифицированных поставщиков услуг, которые могут помочь в разработке пакета поддержки плат OpenCL™ для системных плат Intel® FPGA. Эти поставщики имеют большой опыт в разработке высококачественных пакетов поддержки плат OpenCL, драйверов и миграции конструкций для плат Intel FPGA:

Терасик Инк

OpenCL и логотип OpenCL являются товарными знаками Apple Inc., используемыми с разрешения Khronos.

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