外部メモリからコアへ
ext_to_core.pyのデザインは、Object FIFO of_inを使用して外部メモリからmy_workerにデータを持ち込み、別のObject FIFO of_outを使用してWorkerから外部メモリにデータを送信します。各FIFOはダブルバッファを使用します。
# ObjectFifosを使用したデータフロー
of_in = ObjectFifo(tile_ty, name="in")
of_out = ObjectFifo(tile_ty, name="out")
コンシューマとプロデューサの両方のプロセスがmy_workerで実行されています。プロデューサプロセスは、消費するためにof_inから1つのオブジェクトをacquireし、生成するためにof_outから1つのオブジェクトをacquireします。次に、入力オブジェクトの値を読み取り、両方のオブジェクトをreleaseする前に、そのすべてのエントリに1を追加します。
このデザインをコンパイル、実行、テストするには、次のコマンドを使用できます:
make
make run
このデザインの明示的に配置されたレベルのIRONプログラミングは、ext_to_core_placed.pyで利用できます。次のコマンドでコンパイル、実行、テストできます:
env use_placed=1 make
make run
test.cppおよびデザインコードの# To/from AIE-array data movementセクションについては、セクション2dで詳しく説明されます。
このデータ移動パターンを含む他の例は、programming_examplesで利用できます。注目すべき例としては、vector_reduce_addとvector_scalar_addがあります。
注意: より詳細な情報については、公式ドキュメントを参照してください。