Run-Time Parameter Support Summary - 2021.2 English

Versal ACAP AI Engine Programming Environment User Guide (UG1076)

Document ID
UG1076
Release Date
2021-12-17
Version
2021.2 English

This section summarizes the AI Engine run-time parameter (RTP) support status.

Table 1. AI Engine RTP Default and Support Status
AI Engine RTP

(from/to PS)

Input Output
Synchronous Asynchronous Synchronous Asynchronous
Scalar Default Supported Supported Default
Array Default Supported Supported Default

Code snippets for RTP connections from or to the PS:

connect<parameter>(fromPS, first.in[0]); //Synchronous RTP, default for input
connect<parameter>(fromPS, sync(first.in[0])); //Synchronous RTP
connect<parameter>(fromPS, async(first.in[0])); //Asynchronous RTP
connect<parameter>(second.inout[0], toPS); //Asynchronous RTP, default for output
connect<parameter>(async(second.inout[0]), toPS); //Asynchronous RTP
connect<parameter>(sync(second.inout[0]), toPS); //Synchronous RTP
Table 2. AI Engine RTP to AI Engine RTP Connection Support Status
AI Engine RTP to AI Engine RTP To
Synchronous Asynchronous Not Specified
From Synchronous Synchronous Not Supported Synchronous
Asynchronous Not Supported Asynchronous Asynchronous
Not Specified Synchronous Asynchronous Synchronous

Code snippets for RTP connections between AI Engines:

connect<parameter>(first.inout[0], second.in[0]); //Not specified for output and input. Synchronous RTP from first.inout to second.in
connect<parameter>(sync(first.inout[0]), second.in[0]); //Specify “sync” for output. Synchronous RTP from first.inout to second.in
connect<parameter>(first.inout[0], sync(second.in[0])); //Specify “sync” for input. Synchronous RTP from first.inout to second.in
connect<parameter>(sync(first.inout[0]), sync(second.in[0])); //Specify “sync” for both. Synchronous RTP from first.inout to second.in
connect<parameter>(async(first.inout[0]), async(second.in[0])); //Specify “async” for both. Asynchronous RTP from first.inout to second.in
connect<parameter>(first.inout[0], async(second.in[0])); //Specify “async” for input. Asynchronous RTP from first.inout to second.in
connect<parameter>(async(first.inout[0]), second.in[0]); //Specify “async” for output. Asynchronous RTP from first.inout to second.in
connect<parameter>(async(first.inout[0]), sync(second.in[0])); //Not supported
connect<parameter>(sync(first.inout[0]), async(second.in[0])); //Not supported
Note: When using AI Engine RTP to AI Engine RTP connections, the source and destination kernels use shared memory for data communication. DMA is not involved in data communication. So, AI Engine kernels with RTP connections must be placed in the same AI Engine tile or adjacent tiles.
Table 3. AI Engine RTP Broadcast to Multiple AI Engine RTP Destinations Support Status
AI Engine RTP to AI Engine RTP To
D1: Sync

D2:Sync

D1:Async

D2:Async

D1:Sync

D2:Async

D1:Sync

D2:Not Specified

D1:Async

D2:Not Specified

From S1:Sync

S2:Sync

Synchronous Not Supported Not Supported S1-D1:Sync

S2-D2:Sync

Not Supported
S1:Async

S2:Async

Not Supported Asynchronous Not Supported Not Supported S1-D1:Async

S2-D2:Async

S1:Sync

S2:Async

Not Supported Not Supported S1-D1:Sync

S2-D2:Async

S1-D1:Sync

S2-D2:Async

Not Supported
S1:Sync

S2:Not Specified

Not Supported Not Supported S1-D1:Sync

S2-D2:Async

Synchronous Not Supported
S1:Async

S2:Not Specified

Not Supported Asynchronous Not Supported Not Supported S1-D1:Async

S2-D2:Sync

  1. S1 and S2 in this table denote the RTP source for the first and second connections. D1 and D2 denote the RTP ports of multiple destination kernels. Sync and Async denote the synchronous and asynchronous modes specified in the graph. S1-D1:Sync denotes the connection from S1 to D1 is synchronous mode.

Similar to the AI Engine RTP to AI Engine RTP connection, the source and destination kernels for the RTP broadcast must be placed in the same AI Engine tile or adjacent tiles. Code snippets are similar too. Only the source RTP port is used in multiple connections. The RTP buffers are shared for the source and destination kernels.

Note:
  • There is a limitation in this version that only synchronous RTP is allowed between AI Engine kernel to AI Engine kernel when they are placed in the same AI Engine tile.
  • Array RTP broadcast is not supported in the current version.
  • Single buffer is not supported for RTP broadcast.