VersalAICore系列AI引擎graph应用指南及调试方法论

VersalAICore系列AI引擎graph应用指南及调试方法论

AI 引擎是一款超长指令字 (VLIW) 处理器阵列,具有高度优化的单指令多数据 (SIMD) 向量单元氛围,专为各种计算密集型应用而设计,特别是数字信号处理 (DSP)、5G 无线应用和机器学习(ML)等人工智能(AI)技术。同时,AI引擎也是一个硬化块,可以提供多级并行处理能力,包括指令级并行处理和数据级并行处理。级并行处理。

本指南介绍了编译和模拟 AI 引擎图应用程序、使用 Vitis 工具流程集成应用程序、使用 Vitis IDE、调试 AI 引擎应用程序、映射器/路由器方法、AI 引擎硬件分析和调试方法等。

本文选取AI引擎架构概述部分。

对AI引擎阵列进行编程需要充分了解要实现的算法、AI引擎的功能以及功能单元之间的整体数据流。 AI引擎阵列支持三个级别的并行度:

SIMD:允许通过向量寄存器并行计算多个元素。

指令级:VLIW架构允许在单个时钟周期内执行多条指令。

多核:通过AI引擎阵列,可以并行执行数百个AI引擎。

尽管大多数标准C语言代码都可以针对AI引擎进行编译,但代码可能需要进行大量重构才能在AI引擎阵列上实现最佳性能。 AI引擎的优点是它可以在每个时钟周期执行一次向量MAC运算,为下一个运算加载2 256位向量,存储前一个运算的单个256位向量并递增一个指针或执行另一个标量运算。 AI Engine编译器不执行任何自动矢量化或基于pragma的矢量化。 必须重写代码以使用 SIMD 内在数据类型(例如 v8int32)和向量内在函数(例如 mac(…)),这些数据类型必须全部在单个管道循环内执行以获得最佳性能。 32 位标量 RISC 处理器具有 ALU、一些非线性函数和数据类型转换。 每个人工智能引擎可以访问的内存量是有限的,这意味着大数据集需要分区。

AI引擎内核是运行在AI引擎上的功能。 这些函数构成了数据流图规范的基本构建块。 数据流图是具有确定性行为并且不依赖于各种计算延迟或通信延迟的卡恩过程的网络。 AI引擎内核声明一个空的C/C++函数,并通过提取窗口参数或流参数来建立图形连接。 内核还可以包含静态数据和运行时参数参数ai游戏引擎程序设计技能特效,包括异步参数或触发器参数。 每个内核都应该在其自己的源文件中定义。

为了实现系统整体性能,必须广泛阅读架构、分区、AI引擎数据流图生成、数据流连接优化等知识,积累相关经验。

AMD Xilinx 提供了 DSP 和通信库,其中包含用于 AI 引擎的优化代码,应尽可能多地利用。 提供的源码也为用户了解AI引擎核心编码提供了强大的资源。

AI引擎组件

AI引擎阵列由AI引擎tile的二维数组组成,其中每个AI引擎tile包含一个AI引擎、内存模块和tile互连模块。

AI引擎:每个AI引擎都是一个超长指令字(VLIW)处理器,包含一个标量单元、一个向量单元、两个加载单元和一个存储单元。

AI引擎tile:每个AI引擎tile包含一个AI引擎、一个本地内存模块和多个通信路径,以促进tile之间的数据交换。

AI引擎阵列:AI引擎阵列是指AI引擎瓦片的完整二维阵列。

AI引擎程序:AI引擎程序包含用C/C++编写的数据流图规范。 该程序使用AI引擎工具链编译并执行。

AI Engine 内核:内核使用 AI Engine 矢量数据类型和内在函数以 C/C++ 编写。 这些函数是运行在AI引擎上的计算函数。 内核构成了数据流图规范的基本构建块。

ADF图:ADF图是单个AI引擎核心或多个AI引擎核心通过数据流连接的网络。 它通过特定的结构与可编程逻辑、全局存储器和处理器系统交互,例如:PLIO(图形编程中的端口属性,用于建立与可编程逻辑的流连接)、GMIO(图形编程中的端口属性,用于建立外部连接)。与全局内存之间的内存映射连接)和 RTP。

工具

Vitis 集成设计环境

Vitis 集成设计环境 (IDE) 可用于对 Xilinx 器件执行系统编程ai游戏引擎程序设计,包括具有多个 AI 引擎内核的 Versal 器件。 在此工具中,可以使用以下功能。

优化 C/C++ 编译器,用于编译内核和图形代码并执行所有必要的连接、布局和检查,以确保设备上的所有内容正常工作。

周期性近似模拟器、加速函数模拟器和分析工具。

调试环境可采用仿真环境和硬件环境。

Vitis 命令行工具

命令行工具可用于构建、模拟和生成输出文件和报告。 捕获 IDE 生成的命令行输出有助于随后集成到客户的构建环境中。 Vitis Analyzer IDE 可用于查看报告并分析命令行工具生成的输出文件和报告。

Vitis 模型作曲家

Vitis Model Composer 提供基于 MATLAB 和 Simulink 的高级图形输入环境,用于设计仿真和代码生成,包括 AI 引擎、HLS 和 RTL 组件。

将 AI 引擎内核、图形、HLS 内核和基于 RTL 的模块导入到同一 Simulink 设计中,以进行快速联合仿真。

从 Simulink 库浏览器中,将优化的 AI 引擎功能(例如有限脉冲响应 (FIR) 和 FFT 滤波器)拖放到您的设计中。

使用 MATLAB 或 Simulink 中生成的激励来验证设计、可视化结果并将结果与​​黄金参考结果进行比较。 生成图形代码和测试向量。

组装导入的代码和块库代码以输入下游工具。

文章来源:https://m.elecfans.com/article/1952881.html