Intel® FPGA AI Suite: IP Reference Manual

ID 768974
Date 7/03/2023
Public

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

Document Table of Contents

2.4.2.1. Parameter group: Global Parameters

Parameter: family

This parameter specifies the target FPGA device family for the architecture.

Legal Values
Table 3.  Valid Values for family Global Parameter
Value Description
A10 Target Intel® Arria® 10 devices.
AGX7 Target Intel Agilex® 7 devices.
C10 Target Intel® Cyclone® 10 devices.
S10 Target Intel® Stratix® 10 devices.

Parameter: k_vector

This parameter, also called KVEC, describes the number of filters that the PE Array is able to process simultaneously.

Typically the architecture optimizer is used to set this parameter.

Legal values:
[1-128]
  • The k_vector value must be a multiple of the c_vector value.
  • The k_vector value must be divisible by the xbar_k_vector and auxiliary k_vector values.

Parameter: c_vector

This parameter, also called CVEC, describes the size of the dot product within each PE in the PE Array.

Typically the architecture optimizer is used to set this parameter.

Legal values:
[4,8,16,32]

Parameter: arch_precision

This parameter sets the precision (in bits) of the internal numeric representation used by Intel® FPGA AI Suite IP. Lower values increase fps and reduce area, but at the cost of inference accuracy.

Each internal precision option corresponds to a different number of sign and mantissa bits, and uses either two's complement or sign+magnitude. For details, refer to the table in Intel FPGA AI Suite IP Block Configuration.

The FP16 precision significantly increases the size of the resulting IP, but can improve accuracy (particularly in models that have not been retrained for low precision).

The IP core uses block floating point. In this format, each block of size CVEC shares a common exponent. Both CVEC (c_vector) and arch_precision affect the accuracy of the inference. However, the impact of c_vector is generally small, while the impact of the arch_precision setting is relatively large.

For more details about the block floating point format, refer to the Low-Precision Networks for Efficient Inference on FPGAs white paper.

Legal values:
  • FP11
  • FP13AGX (not available on Intel® Arria® 10 or Intel® Cyclone® 10 GX devices)
  • FP16 (less common)
  • INT8AGX ( Intel Agilex® 7 only)

Parameter: stream_buffer_depth

This parameter controls the depth of the stream buffer. The stream buffer is used as the on-chip cache for feature (image) data. Larger values increase area (logic and block RAM) but also increase performance.

Typically the architecture optimizer is used to set this parameter.

Legal values:
[2048-262144]

Parameter: enable_eltwise_mult

This parameter enables the Elementwise multiplication layer. This layer is required for MobileNetV3.

Parameters: filter_size_width_max, filter_size_height_max

These parameters determine the maximum size of a convolution filter, which also relates the maximum window size for Average Pool.

The maximum window size for Average Pool is no larger than the value determined by the following formula: . In addition, the Average Pool window size may be limited by the filter_scratchpad and filter_depth parameters.

Legal values:
[14,28]

Parameter: enable_debug

This parameter toggles the Intel® FPGA AI Suite debug network to allow forwarding of read requests from the CSR to one of many externally-attached debug-capable modules.

Generally not required for production architectures.

Legal values:
[true,false]