次のグラフ制御 API は、グラフを無限に実行する方法を示します。
#include "project.h"
simpleGraph mygraph;
int main(void) {
mygraph.init(); // load the graph
mygraph.run(); // start the graph and return to main
......
return 0;
}
グラフ オブジェクト mygraph
は、simpleGraph
という定義済みのグラフ クラスを使用して宣言されます。その後、main
アプリケーションでこのグラフ オブジェクトが初期化および実行されます。init()
メソッドは、事前に指定された AI エンジン タイルの AI エンジン アレイにグラフを読み込みます。これには、各 AI エンジンの ELF バイナリの読み込み、配線用のストリーム スイッチの設定、I/O の DMA の設定が含まれます。プロセッサはディスエーブル ステートに保持されます。run()
メソッドは、プロセッサをイネーブルにしてグラフの実行を開始します。run()
メソッドに実行の反復回数が指定されていないので、このグラフは無限に実行されます。
graph::run()
を引数なしで実行すると、AI エンジン カーネルをあらかじめ指定された反復回数 (引数なしでグラフを実行した場合、デフォルトで無限大となる) だけ実行します。グラフを有限の反復回数、たとえば mygraph.run(3);mygraph.run()
で実行する場合、2 回目の run 呼び出しも 3 回実行されます。前の反復回数の設定にかかわらずグラフを無限に実行するには、graph::run(-1)
を使用します。