This section summarizes the AI Engine run-time parameter (RTP) 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
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.
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 |
|
|
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.