AI 引擎 API 概述 - 2022.1 简体中文

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

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

AI 引擎 API 是适用于 AI 引擎加速器的便携式编程接口。它是作为仅限 C++ 头文件的库来实现的,可以提供多种类型和运算,以供转换为高效的低级内部调用。此 API 还提供了更高层的抽象,例如,迭代器。

通常,在内核源代码中需要两个头文件:

aie_api/aie.hpp
AI 引擎主入口点。
aie_api/aie_adf.hpp
Graph 窗口和串流接口。

AI 引擎 API 提供了帮助程序文件,以在启用剖析时,在仿真中打印 aie::vectoraie::mask 值:

  • aie_api/utils.hpp:已提供 aie::print 函数。

为了支持在某些运算上进行运算符重载,请包含头文件 aie_api/operators.hpp 并使用名称空间 aie::operators。如需了解更多信息,请参阅 运算符重载

以下提供了 AI 引擎内核代码示例。

#include <aie_api/aie.hpp>
#include <aie_api/aie_adf.hpp>
#include <aie_api/utils.hpp>

void vec_incr(input_window<int32>* data,output_window<int32>* out){
  aie::vector<int32,16> vec1=aie::broadcast(1);//set all elements to 1
  for(int i=0;i<16;i++)
    chess_prepare_for_pipelining
    chess_loop_range(4,)
  {
    aie::vector<int32,16> vdata=window_readincr_v<16>(data);
    aie::print(vdata,true,"vdata=");//print vector in a line
    aie::vector<int32,16> vresult=aie::add(vdata,vec1);
    window_writeincr(out,vresult);
  }
}

如需了解有关窗口接口 API 用法的更多信息,请参阅 Versal ACAP AI 引擎编程环境用户指南(UG1076) 中的窗口和串流数据 API。以下章节中涵盖了有关矢量数据类型和操作的内容。