接口注意事项 - 2022.1 简体中文

AI 引擎内核编码 最佳实践指南 (UG1079)

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

虽然单内核编程聚焦于单个 AI 引擎中的算法矢量化,但多内核编程会考量多个 AI 引擎内核以及这些内核之间的数据流。

ADF graph 可包含单个内核或多个内核,这些内核与 PS、PL 和全局存储器进行交互。每个 AI 引擎内核都有运行时比率。此数值的计算方式为调用一次内核(处理一个数据块)所耗用的周期数与周期预算的比率。根据期望的数据吞吐量和处理的块大小,应用的周期预算通常是固定的。运行时比率指定为 ADF graph 中每个 AI 引擎内核的约束。

AI 引擎编译器会将多个内核分配到单个 AI 引擎中,前提是其总和的运行时比率小于 1,且多个内核适合放入 AI 引擎程序存储器。或者,编译器可以将其分配到多个 AI 引擎中。

有多种不同方法可用于在 ADF graph 与 PS、PL 和全局存储器之间传输数据、在内核之间传输数据、平衡数据移动和尽可能减少存储器或串流停滞,熟练掌握这些方法对于以最优方式使用硬件资源至关重要,在后续章节中涵盖了这些方法的详细信息。