Intel® FPGA AI Suite: IP Reference Manual

ID 768974
Date 4/05/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. Intel® FPGA AI Suite IP Block Configuration

The Intel® FPGA AI Suite IP block has many important parameters that describe arithmetic precision, feature set, size of various modules (such as the PE Array), and details regarding the internal buses and the external AXI interface.

Configurable parameters are specified in the Architecture Description (.arch) file, as described in Architecture Description File Format for Instance Parameterization and Architecture Description File Parameters.

The table below shows the major parameters, some of which are not configurable, that describe the IP block.

Common Parameter Name

Description

Valid Range

c_vector

(CVEC)

Size of the dot product performed by each PE in the PE Array.

Typically optimized when generating an optimized architecture with the Intel® FPGA AI Suite compiler.

[4,8,16,32]

k_vector

(PE KVEC)

Number of PEs in the PE Array

[4-128]

Must be a multiple of c_vector

N/A

Number of auxiliary modules connecting to the crossbar (XBAR)

[1,2]

pool k_vector

(Pool KVEC)

Width of the pool interface.

Typically optimized when generating an optimized architecture with the Intel® FPGA AI Suite compiler.

[1,2,4,8,16,32]

max_window_height

max_window_width

Size of the pooling window

[3-7]

activation k_vector

(Activation KVEC)

Width of the activation interface.

Typically optimized when generating an optimized architecture with the Intel® FPGA AI Suite compiler.

[2,4,8,16,32]

enable_clamp Enables clamp activation function [true, false]
enable_relu Enables ReLU activation function [true, false]
enable_leaky_relu Enables Leaky ReLU activation function [true, false]
enable_prelu Enables PReLU activation function [true, false]
enable_round_clamp Enables round clamp activation function [true, false]

arch_precision

(PE precision)

Precision of features and weights in the PE Array.

"FP11" (INT7-BFP / 1s.6m.5e)

"FP13AGX" (INT9-BFP / 9m.5e, twos complement)

"FP16" (INT12-BFP / 1s.10m.5e)

"INT8AGX" (8m, signed)

PE bias add precision

Precision of accumulator bias value in the PE Array.

fp16

PE accumulator precision

Precision of the accumulators in the PE Array.

fp32

PE drain precision

Precision of values drained from the PE Accumulators to the XBAR and AUX Modules.

fp16

PE drain width

Width of the output bus from the PE Array.

[2,4,8,16,32]

PE interleave factor

Multi-threading factor for the features x filters in the PE array accumulators.

Intel Agilex® 7 devices: 2x3, 3x2, 5x1, 1x5

Intel® Arria® 10 devices: 2x2, 4x1, 1x4

Intel® Stratix® 10 devices: 2x3, 3x2, 5x1, 1x5

1×1 supported for graphs with no bias

Aux module precision

Precision of the Aux Modules

fp16

Memory port width

Width of memory port

[64, 128, 256, 512]

enable_debug Toggle the Intel® FPGA AI Suite debug network that includes interface profiling counters that can be queried with the CSR.

Enabled by default.

[true, false]

The major constraints include:

  • PE KVEC must be a multiple of CVEC
  • PE KVEC must be divisible by XBAR and AUX KVECs
  • PE drain width must be equal to XBAR KVEC

Graph limitations include:

  • Convolution filter size: 1×1 -> 28×28, including asymmetric
  • Convolution filter stride: 1 .. 15
  • No limitation on convolution padding
  • The limits of the depthwise layers are the same as normal convolution. Depthwise convolution is handled with software emulation using regular convolution passes.

The maximum supported DDR size is 4GB.