FPGA AI Suite: IP Reference Manual

ID 768974
Date 9/06/2024
Public
Document Table of Contents

2.4. FPGA AI Suite Layer / Primitive Ranges

The following table lists the hyperparameter ranges supported by key primitive layers:

Layer / Primitive

Hyperparameter

Supported Range

Fully connected

None

n/a

2D Conv

Filter Size

Width = [1..28]

Height = [1..28]

Height does not have to equal width.

Default value for each is 14.

Stride

Maximum stride is 15

Pad

Maximum pad is (216) - 1

3D Conv Filter Size Width = [1..28]

Height = [1..28]

Depth = [1..14]

Filter volume should fit into the filter cache size.

Stride Maximum stride is 15.
Pad Maximum pad is (216) - 1

Depthwise

Filter Size

Same as 2D Conv filter size

Depth = 1

Stride

Same as 2D Conv stride

Depth = 1

Pad

Same as 2D conv padding

Depth = 1

Scale-Shift

Scale factor

FP16 float range

Bias term

FP16 float range

Deconv / Transpose Convolution

Filter Size

Any – Same as convolution, and height/width can be different

Depth = 1

Stride

1, 2, 4, 8 (stride width == stride height)

Depth = 1

Pad

Restricted to filter_[height, width] - 1

Depth = 1

ReLU

n/a

n/a

pReLU

Scaling parameter (a) (1 per filter / conv output channel)

float range

Depth = 1

Leaky ReLU

Scaling parameter (a) (1 per tensor)

float range

Clamp

Limit parameters (a, b) (1 per tensor)

float range

Round_Clamp Limit parameters (a, b) (1 per tensor) float range

H-sigmoid

n/a

n/a

H-swish

n/a

n/a

Sigmoid n/a FP16 float range
Swish n/a FP16 float range
Tanh n/a FP16 float range

Max Pool

Window Size

up to 13x13x13

Pad

1, 2

Stride

1, 2, 3, 4

Average Pool

Window Size

Up to 27x27 (one less than the maximum 2D convolution size)

Width == Height

Depth = 1 or 2

Pad

1, 2

Stride

1, 2, 3, 4

Softmax

Maximum Number of Channels

4096

Elementwise Multiplication of feature * filter and feature * feature tensors.3

n/a

Tensor sizes are expanded if necessary to support the multiplication.

Depth = 1

ChannelToSpace

DepthToSpace

PixelShuffle

block_mode blocks_first or blocks_last
block_size 2, 4, 8
3 This is an element-wise multiplication, not a matrix multiply operation.