Run-time parameters (RTP) is another way to pass data to the kernels. Two types of execution model for run-time parameters are supported.
- Asynchronous parameters can be changed at any time by a controlling processor such as the Arm® processor. They are read each time a kernel is invoked. This means that the update of parameters occurs between different executions of the kernel, but it does not require the update to take place in a specific pattern. For example, these types of parameters are used as filter coefficients that change infrequently.
- Synchronous parameters (triggering parameters) block a kernel from execution until these parameters are written by a controlling processor such as the Arm processor. Upon a write, the kernel reads the new updated value and executes once. After completion, it is blocked from executing until the parameter is updated again. This allows a different type of execution model from the normal streaming model, which can be useful for certain updating operations where blocking synchronization is important.
It is very important to understand that the RTP interaction between AI Engine kernels only happens in kernel execution boundaries. This means that the RTP output of the source kernel can only be read when the source kernel has completed its current iteration.
Note: RTP ports of AI Engine kernels will need to be acquired lock and released lock before and after kernel execution. This will cause a small overhead for each kernel iteration. When thinking of partitioning the data into frames, the overhead must be taken into consideration according to system level performance requirements.
For more information about run-time parameter usage, refer to the Versal ACAP AI Engine Programming Environment User Guide (UG1076).