graph 无限执行 - 2022.1 简体中文

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

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

以下 graph 控制 API 显示了如何无限运行 graph。

#include "project.h"
simpleGraph mygraph;

int main(void) {
  mygraph.init();  // load the graph
  mygraph.run();   // start the graph
  return 0;
}

graph 对象 mygraph 是使用名为 simpleGraph 的预定义 graph 类来声明的。随后,在 main 应用中,即可初始化并运行此 graph 对象。init() 方法用于将 graph 加载到位于预先指定的 AI 引擎 tile(拼块)处的 AI 引擎阵列中。这包括为每个 AI 引擎加载 ELF 二进制文件、配置串流交换机用于布线,以及配置 DMA 用于 I/O。它将处理器保留处于禁用状态。run() 方法通过启用处理器来启动 graph 执行。此 graph 会永久运行,因为并未向 run() 方法提供要运行的迭代次数。

无实参的 graph::run() 会按先前指定的迭代次数来运行 AI 引擎内核,在无任何实参的前提下运行 graph 时,默认迭代次数无限。如果 graph 按有限次数的迭代来运行,例如,mygraph.run(3);mygraph.run(),那么第二轮调用也会运行 3 次迭代。graph::run(-1) 会忽略先前运行的迭代设置,并无限运行 graph。