单内核开发 - 2022.1 简体中文

Versal ACAP AI 引擎编程环境 用户指南 (UG1076)

Document ID
UG1076
Release Date
2022-05-25
Version
2022.1 简体中文

为了在 AI 引擎上达成最高性能,单内核编程的主要目标是确保使用的矢量处理器可达成其理论最大值。算法矢量化至关重要,但管理矢量寄存器、存储器访问和软件流水打拍也同样不可或缺。由于矢量处理器能够在每个时钟周期内执行一项运算,因此程序员必须努力在当前运算期间加载用于下一项运算的数据。为 AI 引擎实现算法时,重要的是基于数据类型以及对这些数据类型执行的矢量内部函数来启动矢量化。根据数据类型,各内部函数能同时对两个或两个以上元素执行运算。如果内层循环具有顺序或循环进位依赖关系,那么可能可以展开外层循环,并行计算多个值。用户可凭借各种创造性方法来使用矢量内部函数解决问题。为 Versal® ACAP 实现算法时,重要的是了解 AI 引擎的优势所在,并了解有哪些方面在其它引擎(例如,标量引擎、自适应引擎和 DSP 引擎)中实现的效果更好。

为了支持 AI 引擎单内核开发,Vitis IDE 除了提供传统处理器支持,还支持 AI 引擎内核开发。Vitis IDE 可提供单节点 graph 示例,此示例可用作为单内核开发的起点。Vitis IDE 具有调试视图,其中可显示寄存器、变量、可用断点、寄存器/存储器映射变量、内部/外部存储器内容,并且每个内核各有 1 条指令流水线(流水线视图)。

提示: 完成仿真后,会生成时钟周期计数报告,并启用 --profile 选项。