AI エンジンのメモリ - 2023.2 日本語

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

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

AI エンジンには 16 KB のプログラム メモリがあり、128 ビットの命令を 1024 個格納できます。AI エンジンの命令は最大 128 ビット幅で、複数の命令フォーマットおよび可変長命令をサポートしており、プログラム メモリ サイズを削減できます。最適化された内側ループの外にある多くの命令には、短いフォーマットを使用できます。

AI エンジン タイルには 8 つのメモリ バンクがあり、各メモリ バンクは 256 ワード x 128 ビットのシングル ポート メモリです (合計 32 KB)。各 AI エンジンは、隣接するタイルから 3 つのメモリと自身のデータ メモリの合計 128 kB にアクセスできます。スタックはデータ メモリのサブセットです。スタック サイズおよびヒープ サイズのデフォルト値は 1 KB です。最適化レベルが 0 より大きい場合 (aiecompiler では xlopt>=1)、コンパイラでヒープ サイズを自動的に計算して調整できます。スタック サイズおよびヒープ サイズは、コンパイラ オプションまたはソース コードで制約を使用して変更できます。スタック サイズおよびヒープ サイズの使用方法の詳細は、 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076) を参照してください。

論理表現では、128 KB メモリを 1 つの連続した 128 KB ブロックまたは 4 つの 32 KB ブロックと見ることができ、各ブロックは 4 つの奇数バンクと 4 つの偶数バンクに分割できます。1 つの偶数バンクと 1 つの奇数バンクは、ダブル バンクを構成します。AI エンジン アレイの端にある AI エンジンには、隣接するタイルが少ないので、使用可能なメモリも少なくなります。

各メモリ ポートは、256 ビット/128 ビット ベクター レジスタ モードまたは 32 ビット/16 ビット/8 ビット スカラー レジスタ モードで動作できます。256 ビット ポートは、偶数と基数のメモリ バンクをペアにして作成されます。8 ビットおよび 16 ビットのストアは、Read-Modify-Write 命令としてインプリメントされます。各ポートが異なるバンクにアクセスしている場合、3 つのポートすべての同時動作がサポートされます。

メモリに格納されるデータは、リトル エンディアン形式です。

AI エンジンには DMA コントローラーが含まれており、ストリーム データをメモリに格納する S2MM (32 ビット データ) とメモリの内容をストリームに書き込む MM2S (32 ビット データ) の 2 つのモジュールで構成されています。S2MM および MM2S には、どちらにも 2 つの独立したデータ チャネルがあります。