Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

L2を経由した外部メモリからコアへ

ext_to_coreL2.pyのデザインは、前のと非常に似ていますが、このデザインでは最初にof_in0を使用して外部メモリからL2メモリ(つまりMemタイル)に24xi32データを持ち込む点が異なります。次に、of_in1を使用して、MemTileからmy_workerにデータのより小さな8xi32スライスを持ち込みます。2つのFIFOが、最初にof_out1を介してL2に8xi32テンソルとしてデータを持ち込み、次にof_out0を介して外部メモリに24xi32テンソルとして持ち込みます。すべてのFIFOはダブルバッファを使用します。

# ObjectFifosを使用したデータフロー
# 入力
of_in0 = ObjectFifo(tile24_ty, name="in0")
of_in1 = of_in0.cons().forward(name="in1", obj_type=tile8_ty)

# 出力
of_out1 = ObjectFifo(tile8_ty, name="out1")
of_out0 = of_out1.cons().forward(name="out0", obj_type=tile24_ty)

Worker上のプロセスは、前のデザインと同じです。プロデューサプロセスは、消費するためにof_in1から1つのオブジェクトをacquireし、生成するためにof_out1から1つのオブジェクトをacquireします。次に、入力オブジェクトの値を読み取り、両方のオブジェクトをreleaseする前に、そのすべてのエントリに1を追加します。

このデザインをコンパイル、実行、テストするには、次のコマンドを使用できます:

make
make run

このデザインの明示的に配置されたレベルのIRONプログラミングは、ext_to_core_L2_placed.pyで利用できます。次のコマンドでコンパイル、実行、テストできます:

env use_placed=1 make
make run

test.cppおよびデザインコードの# To/from AIE-array data movementセクションについては、セクション2dで詳しく説明されます。

このデータ移動パターンを含む他の例は、programming_examples/matrix_multiplication/で利用できます。


注意: より詳細な情報については、公式ドキュメントを参照してください。