When building large graphs with multiple subgraphs, it is sometimes useful to control the exact mapping of kernels to AI Engines, either relative to other kernels or in an absolute sense. Specifying location constraints provides a powerful mechanism to create a robust, scalable, and predictable mapping of your graph onto the AI Engine array. It also reduces the choices for the mapper to try, which can considerably speed up the mapper.
The kernel location constraint can be specified from the Model Composer Constraints editor window as shown.
- By default, the option Specify Kernel
Location is deselected. Select this to specify the
constraint. Figure 1. Specify Kernel Location
You can choose to either:
- Constrain a kernel to be placed on a specified AI Engine tile.Figure 2. Constrain Kernel
Important: MATLAB variables can be used to specify the kernel locations.Or
- Constrain two kernels to be placed relatively on the same AI Engine. This forces them to be sequenced in
topological order and be able to share memory buffers without synchronization. As
shown, you can select the kernel you want to place relatively on the AI Engine from the drop down.Figure 3. Constrain Two Kernels
-
Vitis Model Composer also supports
specifying two kernels, say k1 and k2. These should not be mapped to the same
AI Engine.Figure 4. Specify Two Kernels