使用内部函数进行设计分析和编程 - 2023.2 简体中文

AI 引擎内核与计算图编程指南 (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 简体中文
警告:
强烈建议您为自己的设计使用 AI 引擎 API。仅当设计具有苛刻的性能需求,且需要 AI 引擎 API 中尚未涵盖的功能时,才能考虑使用内部调用。例如,AI 引擎 API 当前不支持 fft_data_incrcyclic_add 等部分内部调用所提供的功能。虽然 AI 引擎 API 能支持并抽象化主要的置换用例,但并未涵盖所有置换功能。使用内部调用可能使您能够弥补设计所需的性能缺陷。

AI 引擎通过创新的存储器与 AXI4‑Stream 网络将大量 VLIW 和 SIMD 计算单元彼此相连,从而提供高密度计算。以 AI 引擎上的应用为目标时,评估 AI 引擎的计算需求和数据吞吐量要求就显得至关重要。例如,AI 引擎与 PL 内核及外部 DDR 存储器进行交互的方式。满足 AI 引擎的计算和数据吞吐量要求后,下一步需要采用分而治之的方法,将算法映射到 AI 引擎阵列。执行分而治之步骤时,需要了解矢量处理器的架构、存储器结构、AXI4‑Stream 和级联串流借口。这个步骤通常会多次迭代。与此同时,每个 AI 引擎内核都会进行最优化,并以迭代方式来对 graph 进行构造和最优化。AI 引擎工具用于对 AI 引擎内核与 graph 进行仿真和调试。随后,将此 graph 与 PL 内核、GMIO 及 PS 集成,以执行系统级别验证和性能调优。

在本章中,将简要介绍如何采用分而治之的方法来将算法映射到数据流程图 (DFD)。其中提供了单内核编程和多内核编程示例,用于演示如何根据计算限制和存储器限制来执行内核分区、单内核矢量化和最优化以及如何在不同内核之间达成串流平衡。

注释: 本附录中已弃用对 input_windowoutput_window 的引用。建议您改用 input_bufferoutput_buffer