階層制約 - 2023.2 日本語

AI エンジン カーネルおよびグラフ プログラミング ガイド (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 日本語

複数のサブグラフ クラス、または同じサブグラフ クラスの複数のインスタンスを含む複雑なグラフを作成する際は、サブグラフのインスタンシエーション時に、各カーネル インスタンスまたはカーネル ポート インスタンスに定義の代わりに前述のロケーション制約を設定できます。この場合、次の例に示すように、カーネル インスタンスまたはカーネル ポート インスタンスのグラフ修飾子付き名前を指定する必要があります。また、制約するカーネルまたはそのポートがサブグラフの公開メンバーとして定義されていることを確認してください。

class ToplevelGraph : public graph {
 public:
  indep_nodes_graph1<1,2,3,2> mygraph;
  port<input> datain[2] ;
  port<output> dataout[2] ;

  ToplevelGraph() {
    for (int i = 0; i < 2; i++) {
      connect(datain[i], mygraph.datain[i]);
      connect(mygraph.dataout[i], dataout[i]);

      // hierarchical constraints
      location<stack>(mygraph.kr[i]) = bank(3, 2+i, 2);
      location<buffer>(mygraph.kr[i].out[0]) = location<kernel>(mygraph.kr[i]);
    }
  };
};
注記: 前回のデザイン配置は、次回のコンパイルで再利用できます。これにより、マップの実行時間が短縮されます。コンパイラを実行すると、Work ディレクトリに配置制約ファイルが生成されます。この制約ファイルは、次回の実行時にコマンド ラインで指定できます。
aiecompiler --constraints Work/temp/graph_aie_mapped.aiecst src/graph.cpp

FIFO ロケーション制約を再利用するには、aie_routed.aiecst ファイルを使用します。

aiecompiler --constraints Work/temp/graph_aie_routed.aiecst src/graph.cpp