FIFO 制約 - 2023.2 日本語

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

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

FIFO をアレイの指定した行と列にあるタイルに制約します。AI エンジン タイル、メモリ タイル、またはインターフェイス タイルを指定できます。bankId はオプションで、指定しない場合はコンパイラにより最適なバンクが選択されます。

FIFO 制約は、次のいずれかの方法を使用して指定できます。

  • column、row、bankID、offset、および size: タイルは column、row、bankId で指定し、offset アドレスは bankId を基準に指定し、size は 0 からバンクの最大値である 8188 個までの 32 ビット ワードで指定します。

  • column、row、および bankId: bankId はタイルを基準に指定し、有効な値は 0、1、2、または 3 です。
    注記: ハードウェア ビューは、128 ビット幅の 8 バンクですが、ソフトウェア ビューは 256 幅の 4 バンクです。

次に、構文を示します。

"PortConstraints": [<fifo list>]
<fifo list> ::= <fifo type>[, <fifo type>...]
<fifo type> ::= <dma_fifos> | <stream_fifos>
<dma_fifos> ::= <aie_tile>
<aie_tile> ::= {
  "fifo_id": string,
  "tile_type": "core",
  "column": integer,
  "row": integer,
  "size": integer,
  "offset": integer,
  "bankId":integer (optional)
}
<stream_fifos> ::= {
  "fifo_id": string,
  "tile_type": "shim",
  "column": integer,
  "row": integer,
  "channel": integer
}

次に、コード例を示します。

{
  "PortConstraints": {
    "fifo_locations_records": {
      "dma_fifos": {
        "r1": {
          "tile_type": "core",
           "row": 0,
           "column": 0,
           "size": 16,
           "offset": 8,
           "bankId": 2
        },
        "r2": {
          "tile_type": "core",
          "row": 0,
          "column": 1,
          "size": 16,
          "offset": 9
        },
        "r4": {
          "tile_type": "mem",
          "row": 2,
          "column": 4,
          "size": 16,
          "offset": 6,
          "bankId": 2
        }
      },
      "stream_fifos": {
        "r3": {
          "tile_type": "shim",
          "row": 1,
          "column": 3,
          "channel": 1
        }
      }
    },
    "mygraph.k2.in[0]": {
      "not_colocated_nodes": ["mygraph.k1"],
      "fifo_locations": ["r1", "r2", "r3"]
    },
    "mygraph.k4.in[0]": {
      "fifo_locations": ["r1", "r2", "r4"]
    }
  }
}