The following table shows the revision history for this document.
Section | Revision Summary |
---|---|
06/23/2023 Version 2023.1 | |
General | Editorial update; no technical update. |
05/23/2023 Version 2023.1 | |
General | Editorial update; no technical update. |
05/16/2023 Version 2023.1 | |
General | Updated window to buffer, as in input_window to input_buffer and
output_window to output_buffer . |
Vector Data Types | Added uint16 and uint32 to Supported Vector Types and Sizes table. |
Input and Output Buffers | Added chapter to introduce the input and output buffers. These buffers are a replacement for windows, which are deprecated in 2023.1. |
Introduction to Scalar and Vector Programming | Updated code examples to use buffers throughout the chapter. |
AI Engine API Overview | Added aie::print_matrix . |
Iterators | Added aie::begin_restrict_vector and aie::cbegin_restrict_vector . |
Example Designs Using the AI Engine API | Updated for the 2023.1 release and to use buffers. |
Recommended Project Directory Structure | Added guidance that only one source file is allowed to be
specified as kernel source via adf::source . |
Streaming Data API | Updated for the 2023.1 release. |
Reading and Advancing an Input Stream and Writing and Advancing an Output Stream | Added note about how to indicate the end of the stream, with command example. |
Packet Split and Merge Connections | Added new section. |
Multicast Support | Added note to indicate that the compiler supports multirate processing for multicast connections. |
Conditional Ports | Added section to describe the compiler feature that allows for conditional ports on template functions. |
Array of Graph Objects | Added section to describe how to conditionally instantiate an array of graph objects. |
Graph Programming Model | Updated code snippets, and screenshots throughout chapter. |
Data Throughput Estimate in Hardware | Added new section to describe ways to measure interface throughput of the AI Engine in hardware. |
Throughput Measurement Using Timers | Added new section to describe the way to measure interface throughput using timers. |
Throughput Measurements Using Events | Added new section to describe the way to measure interface throughput using events. |
Throughput Measurements Using Event Trace | Added new section. |
Connection Constructor Templates | Added new section that describes how to specify templated connect statements in a graph.. |
Design Analysis and Programming using Intrinsics | Added note about input_window and
output_window being deprecated, and when these are found in code
examples in this appendix, to use input_buffer and
output_buffer instead. |
10/19/2022 Version 2022.2 | |
Document title | Changed title to AI Engine Kernel and Graph Programming Guide. |
Document-wide changes | Added graph programming content from AI Engine Tools and Flows User Guide (UG1076). |
Vector Arithmetic Operations | Updated examples syntax. |
Rounding and Saturation Modes | Changed truncate to saturate . |
Casting and Datatype Conversion | Updated the conversion functions (to_float() and to_fixed() )
example. |
Operator Overloading | Updated operators example code. |
Data Reshaping | Updated to include aie::vector<int32,8> . |
Matrix Multiplication | Updated section for the release. |
Window-Based Access | Made clarifying updates. |
Stream-Based Access | Added Stream Connection for Multi-Rate Processing subsection. |
Relative Constraints | New topic. |
MAC on 16x16 bits | Made clarifying updates. |
Relative Constraints | New topic. |
Graph Topologies | New section. |
Other Constraints | Added async_repetition
constraint. |
05/25/2022 Version 2022.1 | |
Vector Data Types | Highlighted data type sizes supported natively by the AI Engine. |
Vector Registers | Added the grow_replicate
function on aie::vector . |
Loops | Added Loop Flattening and Unrolling section. |
Scheduling Separator | Added information about scheduling separator pragma. |
Parallel Streams Access | Added information about accessing two input and/or output streams in parallel. |
Profiling Kernel Code | Added information about profiling kernel code using cycles() API. |
Runtime Parameter Specification | Removed section about AI Engine-to-AI Engine runtime parameter support. |
Data Communication via AXI4-Stream Interconnect | Updated the section. |
Buffer vs. Stream in Data Communication | Updated section to reflect wIndow multicast support. |
Example Designs Using the AI Engine API | New chapter. Added new FIR Filter and Matrix Multiplication example designs. |
Update, Extract, and Shift | Added information about using the update API on accumulators. |
11/10/2021 Version 2021.2 | |
Scalar Processing Unit | Updated for AI Engine API. |
AI Engine Memory | Added information about heap and stack size. |
AI Engine API | New section. |
Introduction to Scalar and Vector Programming | Updated for AI Engine API. |
AI Engine API Overview | New section. |
Vector Arithmetic Operations | |
Vector Reduction | |
Bitwise Operations | |
Data Comparison | |
Data Reshaping | |
Iterators | |
Operator Overloading | |
Multiple Lanes Multiplication - sliding_mul | |
Matrix Multiplication - mmul | |
API Operation Examples | |
Loops | Updated information. |
Floating-Point Operations | Updated for AI Engine API. |
Single Kernel Programming using Intrinsics | Appendix describing programming using intrinsics. |
Design Analysis and Programming using Intrinsics | Appendix describing design analysis and programming using intrinsics. |
07/19/2021 Version 2021.1 | |
Accumulator Registers | Added information about print acc
value , as well as streaming data APIs. |
Casting and Datatype Conversion | Added a note about the AI Engine floating-point. |
Initialization | Added information about the static keyword. |
Load and Store with Virtual Resource Annotations | Added new section. |
Buffer vs. Stream in Data Communication | Added information. |
DDR Memory Access through GMIO | Removed information related to PL GMIO. |
Mapping Algorithm onto the AI Engine | Clarified description. |
Coding with Intrinsics | Added information about the (always_inline) attribute. |
02/04/2021 Version 2020.2 | |
Initial release. | N/A |