kernel - 2022.1 简体中文

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

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

此类表示 graph 的单一节点。用户定义的 graph 类型包含 kernel(内核)对象作为成员变量,用于对映射到 AI 引擎阵列的部分 C 语言函数计算加以封装。

作用域

kernel 对象可在 scope 类中声明为成员变量,其类型为用户定义的 graph 类型(即,位于继承自 graph 的类中)。

kernel 对象必须由 graph 构造函数中的分配来加以初始化。

成员函数

static kernel & create( function );

static create(静态创建)方法会从 C 语言内核函数创建内核对象。它会自动判定每个内核所含输入端口和输出端口的数量及其相应的元素类型。内核函数中的任何其它实参都作为运行时参数或查找表来处理,并在每次调用时传递给内核。每次编译器生成的静态调度在调用内核时,运行时参数按值传递,而查找表则按引用传递。

kernel & operator()(…)

取一个或多个 parameter 对象作为实参。parameter 实参的数量必须与用于构造 kernel 的内核函数中的非窗口形参数量相匹配。在 graph 构造函数主体中用于分配给 kernel 成员变量时,运算符会在每次调用时确保将更新后的参数实参传递给内核函数。

成员变量

std::vector<port<input>> in;

此变量可提供对内核的逻辑输入的访问,允许用户 graph 指定 graph 中内核之间的连接。第 i 项索引即选中内核函数实参中声明的第 i 个输入端口(窗口、串流或 rtp)。

std::vector<port<output>> out;

此变量可提供对逻辑输出的访问,允许用户 graph 指定 graph 中内核之间的连接。第 i 项索引即选中内核函数实参中声明的第 i 个输出端口(窗口或串流)。

std::vector<port<inout>> inout;

此变量可提供对逻辑输入输出端口的访问,允许用户 graph 指定 graph 中内核之间的连接。第 i 项索引即选中内核函数实参中声明的第 i 个输入输出端口 (rtp)。