Intel® FPGA AI Suite: PCIe-based Design Example User Guide

ID 768977
Date 9/06/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

5.7. Running the Ported OpenVINO™ Demonstration Applications

Some of the sample demonstration applications from the OpenVINO™ toolkit for Linux Version 2022.3.1 have been ported to work with the Intel® FPGA AI Suite. These applications are built at the same time as the runtime when using the -build_demo flag to build_runtime.sh.

The Intel® FPGA AI Suite runtime includes customized versions of the following demo applications for use with the Intel® FPGA AI Suite IP and plugins:

  • classification_sample_async
  • object_detection_demo_yolov3_async

Each demonstration application uses a different graph. The OpenVINO™ HETERO plugin can fall-back to the CPU for portions of the graph that are not supported with FPGA-based acceleration. However, in a production environment, it may be more efficient to use alternate graphs that execute exclusively on the FPGA.

You can use the example .arch files supplied with the Intel® FPGA AI Suite can be used with the demonstration applications. However, certain example .arch files do not enable some of the layer-types used by the graphs associated with the demonstration applications. Using these .arch files cause portions of the graph to needlessly execute on the CPU. To minimize the number of layers that are executed on the CPU by the demonstration application, use the following architecture description files located in the example_architectures/ directory of the Intel® FPGA AI Suite installation package to run the demos:
  • Intel® Arria® 10: A10_Generic.arch
  • Intel Agilex® 7: AGX7_Generic.arch

As specified in Programming the FPGA Device ( Intel Arria 10), you must program the FPGA device with the bitstream for the architecture being used. Each demonstration application includes a README.md file specifying how to use it.

When the OpenVINO™ sample applications are modified to support the Intel® FPGA AI Suite, the Intel® FPGA AI Suite plugin used by OpenVINO™ needs to know how to find the .arch file describing the IP parameterization by using the following configuration key. The following C++ code is used in the demo for this purpose:

ie.SetConfig({ { DLIA_CONFIG_KEY(ARCH_PATH), FLAGS_arch_file } }, "FPGA");

The OpenVINO™ demonstration application hello_query_device does not work with the Intel® FPGA AI Suite due to low-level hardware identification assumptions.