Data Movement Between AI Engines - 2025.2 English

AI Engine Kernel and Graph Programming Guide (UG1079)

Document ID
UG1079
Release Date
2025-11-26
Version
2025.2 English

Generally, there are two methods to transfer data between kernels: buffer or stream.

Buffer

When using buffer, you can use ping-pong buffers or a single buffer. The AI Engine tools handle buffer synchronization between the kernels. Designers need to decide the buffer size and optionally buffer location between kernels when partitioning the application. If you need an overlap between different data buffers, AI Engine tools let you set a buffer margin. This margin automatically copies the overlapping data.

Stream

When using streams, data movement uses two input and two output stream ports, plus one dedicated cascade stream input port and one output port. Stream ports can provide 32-bit per cycle or, 128-bit per four cycles on each port. Stream interfaces are bidirectional and can read or write neighboring or non-neighboring AI Engines by stream ports. However, cascade stream ports are unidirectional and only provide a one-way access between the neighboring AI Engines.