Section 2d - ランタイムデータ移動
これまでのセクションではAIE配列内のデータ移動に焦点を当ててきましたが、ここではNPUデバイス上のホストとAIE配列間のデータ移動について説明します。
ホストと配列間の通信のための操作は、高レベルIRONではRuntimeクラス内の専用sequence()関数に、明示的配置IRONではaie.runtime_sequence操作に配置する必要があります。この関数の引数は、ホスト側からアクセス可能なバッファを表し、関数本体はそれらのバッファとAIE配列間の移動メカニズムを指定します。これらの関数の使用方法については、Section 3で多くの例を見ることができます。
ホストメモリとのランタイムデータ移動管理ガイド
高性能コンピューティングや機械学習アプリケーションでは、データをホストメモリとIRON(AIE配列のMLIRベース表現)で実装されたRyzen AI NPUの加速コア間で効率的に移動させることが重要です。このガイドでは、ユーザーのニーズに応じた抽象化レベルに対応する2つの異なるアプローチを提供します:
- 高レベル構造(RuntimeTasks):
RuntimeクラスとRuntimeTasksを使用した高レベルなデータ移動管理を好む方はこちらをご覧ください。 - 低レベル関数(DMATasks):
npu_dma_memcpy_ndやdma_waitなどの低レベル関数を使用した詳細な制御を好む方はこちらをご覧ください。
注意: より詳細な情報については、公式ドキュメントを参照してください。