OpenCL™ - BSP - Центр поддержки
Intel® FPGA SDK для OpenCL™ позволяет разработчикам программного обеспечения ускорить работу своих приложений, ориентируясь на гетерогенные платформы с процессорами Intel и FPGA. Intel® FPGA SDK для OpenCL™ может быть установлен как часть программного обеспечения Intel® Quartus® Prime или как отдельный пакет. Вы можете загрузить Intel FPGA SDK для OpenCL по ссылке ниже.
Добро пожаловать на страницу поддержки OpenCL™ BSP! Здесь вы найдете информацию о том, как планировать, проектировать и реализовывать openCL™ BSP, а также узнаете несколько советов и трюков для целей отладки.
Эта страница предназначена для того, чтобы провести вас от начала до конца процесса разработки пакета поддержки Плат OpenCL™ (BSP) (или проектирования/переноса ядра/алгоритмов OpenCL). В разделе Изменение эталонного проекта вы найдете ресурсы о том, как модифицировать эталонную платформу Intel® в свою собственную пользовательскую платформу, а также как компилировать плоские проекты без сбоев во времени. В разделе «Планировка и сроки закрытия» приведены рекомендации о том, как разделить вашу конструкцию и достичь максимальной рабочей частоты. В нем также описываются методы закрытия тайминга на вашем проекте и гарантированного закрытия времени при создании BSP. В разделе Утилиты MMD и OpenCL описаны шаги по перестройке MMD и подробные сведения об утилитах OpenCL. В разделе Отладка представлены некоторые средства и ресурсы для отладки проблем, с которыми вы можете столкнуться. Во всех разделах перечислены документы и учебные курсы, которые полезны в процессе разработки BSP.
1. Изменение эталонного дизайна
Начало работы
Чтобы начать разработку BSP, убедитесь, что вы выполнили следующие действия.
- Убедитесь, что установлен пакет Intel® FPGA SDK для OpenCL™ и Intel® Quartus®.
- Убедитесь, что доступна версия средства, соответствующая справочной BSP OpenCL™.
- Подтвердите доступ к полной лицензии на программное обеспечение Intel® Quartus®.
Выбор эталонного проекта
Выберите эталонный дизайн, который подходит для вашей пользовательской платформы
Корпорация Intel поддерживает OpenCL™ эталонные конструкции BSP для следующих платформ. Вы также можете просмотреть руководство по переносу OpenCL™ BSP для конкретной платформы:
- Комплект разработчика Stratix® V PCIe* - Ознакомьтесь с Intel® FPGA SDK для OpenCL™ Stratix® V Руководство по переносу эталонных сетевых платформ ›
- Комплект разработчика Intel® Arria® 10 PCIe - Просмотреть Intel® FPGA SDK для OpenCL™ Intel® Arria® 10 GX FPGA Руководство по переносу эталонной платформы ›
- Комплект разработчика Для разработки soC Intel® Arria® 10 - Ознакомьтесь с Intel® FPGA SDK для OpenCL™ Intel® Arria® 10 SoC Development Kit Reference Platform Porting Guide ›
- Комплект разработчика Intel® Stratix® 10 PCIe* - Ознакомьтесь с Intel® FPGA SDK для OpenCL™ Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Porting Guide ›
Изменение эталонного проекта
Начните изменять эталонный дизайн для вашего platfrom, выполнив действия, описанные в руководствах по переносу OpenCL BSP. Рекомендуется, чтобы после внесения изменений в конструкцию вы попробовали скомпилировать свое первое ядро. Как правило, мы используем ядро под названием Boardtest,которое тестирует различные интерфейсы BSP. Информация о шагах построения Boardtest и общих BSP приведена в следующем руководстве:
Рекомендуемые шаги для создания BSP:
- Скомпилируйте Boardtest в "плоском" потоке для создания временно закрытого файла ".aocx"
- Проверьте ".aocx", запустив Boardtest и перепроверьте ожидаемые от теста значения пропускной способности интерфейса
- Начните работу над планировкой этажей для «базовой» сборки, чтобы создать гарантированно закрытый по срокам 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.
Решение базы знаний
Intel® Arria® 10 устройств
Устройства Intel® Stratix® 10
Известные проблемы
Дополнительные ресурсы
Проектирование отладки с использованием встроенных источников и зондов в руководстве пользователя средств отладки
5. Рекомендуемое чтение и обучение
Учебные курсы OpenCL™
- Введение в параллельные вычисления с OpenCL™ на intel® FPGAs ›
- Введение в OpenCL™ для FPGA Intel® ›
- Запуск OpenCL™ на FPGA Intel® ›
- Сборка пользовательских платформ для Intel® FPGA SDK для OpenCL™: Содержание пакета поддержки системных плат (BSP) ›
- Разработка пользовательского пакета поддержки плат OpenCL™ (BSP) ›
- Учебные курсы OpenCL™ (BSP) ›
- Другие учебные курсы OpenCL™ ›
OpenCL™ Видео
Титул |
Описание |
|---|---|
В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ быстрого преобразования Фурье (FFT) на SoC Cyclone® V с помощью компьютера Windows*. |
|
В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ FFT на SoC Cyclone® V с помощью компьютера Windows*. |
|
В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ FFT на SoC Cyclone® V с помощью компьютера Windows*. |
|
В этом видео описывается готовая процедура запуска двух приложений, OpenCL™ HelloWorld и OpenCL™ FFT на SoC Cyclone® V с помощью компьютера Windows*. |
|
В этом видео описывается готовая процедура запуска двух приложений, 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 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.
Содержание данной страницы представляет собой сочетание выполненного человеком и компьютерного перевода оригинального содержания на английском языке. Данная информация предоставляется для вашего удобства и в ознакомительных целях и не должна расцениваться как исключительная, либо безошибочная. При обнаружении каких-либо противоречий между версией данной страницы на английском языке и переводом, версия на английском языке будет иметь приоритет и контроль. Посмотреть английскую версию этой страницы.