Multiple AI Engine kernels can share a single processor and execute in an interleaved manner. Similarly, multiple stream connections can share a single physical channel. This mechanism is known as Packet Switching. The AI Engine architecture and compiler work together providing a programming model where up to 32 stream connections can share the same physical channel.
Explicit Packet Switching allows fine-grain control over how packets are generated, distributed, and consumed in a graph computation. Explicit Packet Switching is typically recommended in cases where many low bandwidth streams from common PL source can be distributed to different AI Engine destinations. Similarly, many low bandwidth streams from different AI Engine sources to a common PL destination can also take advantage of this feature. It uses a minimal number of AI Engine to PL interface streams because multiple streams share a single physical channel.
You can create a packet stream for any of the following configurations:
- One AI Engine kernel to multiple destination kernels.
- Multiple AI Engine kernels to a single destination kernel.
- Between multiple AI Engine kernels and multiple destination kernels.
This section describes graph constructs to create packet-switched streams explicitly in the graph, and provide multiple examples on packet switching use cases.