constraint<T> - 2022.1 简体中文

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

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

此模板类用于在内核、连接和端口上构建标量数据约束。

作用域

约束必须显示在用户 graph 构造函数内部。

成员函数

constraint<T> operator=(T)

此重载等式运算符允许您向标量约束赋值。

构造函数

不使用默认构造函数。改为使用以下具有特定含义的特殊构造函数。

void fabric<aiengine>(kernel&)

此约束允许您标记在 AI 引擎上实现的内核(默认)。

constraint<std::string>& initialization_function(kernel&)

此内核允许您为每个内核设置特定初始化函数。此约束期望通过字符串来表示初始化函数的名称。如果在单个核上打包多个内核,则该核上打包的每个初始化函数都仅调用一次。当核上打包的所有初始化函数全都完成后,才会调度内核函数。

初始化函数无法返回值也不能包含输入/输出实参,即,函数原型必须如下所示。

void init_function_name(void)
注释: 调用首个 graph::run API 时,仅调用一次初始化函数。

该函数可用于初始化全局变量,或者对舍入模式和饱和模式进行置位或清除。它不能使用窗口或串流 API 来访问存储器或串流接口,但可使用串流内部函数(例如,get_ss())。请参阅 AI 引擎内核编码最佳实践指南 (UG1079),以获取示例。

constraint<float>& runtime<ratio>(kernel&)

此约束允许您将核内特定的一小部分设定为供某个内核使用。其计算方式为调用一次内核(处理一个数据块)所耗用的周期数与周期预算的比率。根据期望的数据吞吐量和处理的块大小,应用的周期预算通常是固定的。

constraint<std::string>& source(kernel&)

此约束允许您指定包含每个内核函数定义的源文件。对于每个内核都必须指定源约束。

constraint<int>& fifo_depth(connect&)=[<depth> | (depth)]

此约束允许您指定将一定的裕量插入串流连接以允许无死锁执行。

void single_buffer(port<T>&)

此约束允许您在单个窗口端口上指定单一缓冲器约束。默认情况下,窗口端口采用双重缓冲。

void initial_value(async_AIE_RTP_port)

此约束允许您为异步 AI 引擎输入运行时参数端口设置初始值。它允许目标内核以指定初始值来异步启动。您可以使用此约束来同时设置标量和阵列运行时参数。

标量示例:initial_value(6)

阵列示例:initial_value({1,2,3})

constraint<int> stack_size(adf::kernel& k);

此约束允许您为个别内核设置栈大小。

constraint<int> heap_size(adf::kernel& k);

此约束允许您为个别内核设置堆大小。