Skip to content

Latest commit

 

History

History
45 lines (27 loc) · 2.15 KB

File metadata and controls

45 lines (27 loc) · 2.15 KB

Programming Examples

These programming examples are provided so that application programmers can learn how to leverage the IRON design flow with mlir-aie python bindings, and the mlir-aie intermediate representation directly to build applications targeting AI Engines.

Most examples are a single <example_name>.py design driven by @iron.jit — one file describes the AIE-array dataflow, JIT-compiles to xclbin/insts, and runs end-to-end (or feeds the prebuilt artifacts to a C++ host). A few examples additionally provide an <example_name>_placed.py variant written against a lower-level form of IRON for the cases where explicit tile/core placement is the pedagogical point.

They are organized into the following directories:

Designs tailored to the new user experience that span from basic applications such as SAXPY to more complicated ones such as tiled matrix multiplication, for the NPU in Ryzen™ AI.

Higher-level algorithm templates (transform, for_each, and parallel variants) that handle Workers, ObjectFIFOs, and data movement automatically for common element-wise dataflow patterns on the NPU in Ryzen™ AI.

Basic building blocks to understand the NPU architecture and first steps towards building applications for the NPU in Ryzen™ AI.

Machine learning building blocks, design components, and reference designs for the NPU in Ryzen™ AI.

Computer vision processing pipeline designs for the NPU in Ryzen™ AI.

MLIR-based reference designs expressed in the MLIR-AIE dialect intermediate representation.

Utilty functions leveraged in the programming examples.