グラフの有限実行では、グラフのステートは
graph.run(n)
の前後で保持されます。graph.run(n)
の実行後、AI エンジンは再初期化されず、メモリの内容はクリアされません。次のコード例では、run を最初に 3 回の呼び出した後、AI エンジンの main()
ラッパー コードのステートはそのまま保持され、カーネルは次の実行 (10 回の反復) が pong バッファーで開始します。ピンポン バッファー セレクターのステートはそのままになります。graph.end()
は、グラフのステートはクリア (グローバル変数を再初期化) せず、ストリーム スイッチの設定もクリアしません。core-main を終了するだけです。グラフを再実行するには、PDI/XCLBIN を再度読み込む必要があります。重要:
graph.wait()
の後、graph.end()
の前に graph.run()
または graph.resume()
のいずれかが必要です。そうしないと、グラフが無限に待機状態になり、graph.end()
が実行されません。#include "project.h"
simpleGraph mygraph;
int main(void) {
mygraph.init();
mygraph.run(3); // run 3 iterations
mygraph.wait(); // wait for 3 iterations to finish
mygraph.run(10); // run 10 iterations
mygraph.end(); // wait for 10 iterations to finish
return 0;
}