The following graph control API shows how to run the graph infinitely.
#include "project.h"
simpleGraph mygraph;
int main(void) {
mygraph.init(); // load the graph
mygraph.run(); // start the graph
return 0;
}
A graph object mygraph
is declared using
a pre-defined graph class called simpleGraph
. Then, in
the main
application, this graph object is initialized
and run. The init()
method loads the graph to the
AI Engine array at prespecified AI Engine tiles. This includes loading the ELF binaries
for each AI Engine, configuring the stream switches
for routing, and configuring the DMAs for I/O. It leaves the processors in a disabled
state. The run()
method starts the graph execution by
enabling the processors. This graph runs forever because the number of iterations to be
run is not provided to the run()
method.
graph::run()
without an argument runs the AI Engine kernels for a previously specified number of
iterations (which is infinity by default if the graph is run without any arguments). If
the graph is run with a finite number of iterations, for example, mygraph.run(3);mygraph.run()
the second run call also runs
for three iterations. Use graph::run(-1)
to run the graph infinitely
regardless of the previous run iteration setting.