MNIST ConvNet: AI Engine Graph View - 2025.2 English - XD100

Vitis Tutorials: AI Engine Development (XD100)

Document ID
XD100
Release Date
2025-12-05
Version
2025.2 English

The overall AI Engine graph of the MNIST ConvNet classifier is shown in the diagram below.

  • Each layer is generally assigned to its own AIE-ML tile as outlined above.

  • Layers with weights & biases contain two AIE-ML tiles. One tile performs the compute workload on the input images. Weights are delivered to this compute tile from a buffer filled once at startup from a second “weight delivery” tile. An asynchronous buffer mechanism reads the weights at design startup from the PLIO and delivers them to the weight input buffer. The compute tile may then access these weights continuously as the design runs.

  • The conv2d_w5() layer is partitioned over four tiles to manage the weight storage which is too large to fit into the available 32 KB of local tile storage (ping/pong buffers are limited to 32 KB since they must be allocated to the same 64 KB local tile memory). Based on its ~74,000 parameters the storage must be split over a minimum of four AIE-ML tiles. Its compute workload is also partitioned over the four tiles, with each tile computing one quarter of the output layer samples. Further details are outlined below.

  • The last AIE-ML tile contains the flatten_w6() layer, the dense_w7() layer, and the softmax() compute workload to produce the final classifier output. The max pooling layers max_pooling2d_w2() and max_pooling2d_w4() do not have any weights and so are implemented using a single AIE-ML tile each.

figure6