エリア グループ制約 - 2023.2 日本語

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

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

エリア グループ制約は、1 つ以上のノード グループをマップするタイル/シムのロケーション (エリア) を指定します。エリア グループ制約は、次のプロパティを使用して指定できます。

groups
グループのコレクションを指定します。指定可能なグループは、次のとおりです。
tile-type
グループのタイル タイプを指定します。サポートされるタイル タイプは、aie_tile、shim_tile、または memory_tile です。
column_min
グループの左下の列インデックス。
row_min
グループの左下の行インデックス。
column_max
グループの右上の列インデックス。
row_max
グループの右上の行インデックス。
contain_routing
ブール値。true を指定すると、nodeGroup に含まれるノード間のネットを含むすべての配線がエリア グループ内に含まれます。
exclude_routing
ブール値。true を指定すると、nodeGroup に含まれるノード間のネットを除くすべての配線が、エリア グループから除外されます。
exclude_placement
ブール値。true を指定すると、nodeGroup に含まれていないすべてのノードが、エリア グループの境界ボックス内に配置されなくなります。

AI エンジン タイルまたはメモリ タイルの範囲は (column, row):(column, row) の形式で、最初のタイルは左下角、2 番目のタイルは右上角を指定します。列と行の値は 0 から始まり、0 番目の行は最下部の計算プロセッサからカウントされ、0 番目の列は左端の列からカウントされます。

シムの範囲は (column):(column) の形式で、最初の値は左端の列、2 番目の値は右端の列です。列の値は 0 から始まり、0 番目の行は最下部の計算プロセッサからカウントされ、0 番目の列は左端の列からカウントされます。シムの範囲では、オプションでチャネルを指定することも可能です (例: (column, channel):(column, channel))。

エリア グループは、コンパイラでマップおよびオプションの配線に使用されないように、デバイスの範囲を除外するのにも使用できます。

  • 配線で特定の範囲を除外するには、nodeGroup を設定し、exclude_placement を true に設定します。
  • マップで特定の範囲を除外するには、nodeGroup を設定し、exclude_routing を true に設定します。
  • 配線とマップに nodeGroup 内のすべてのネットを含めるには、contain_routing を true に設定します。
注記: 各制約に固有の名前が付けられていれば、グローバル制約セクションにエリア グループをいくつでも含めることができます。

構文

"areaGroup": {
  "name": string,

  "nodeGroup": [<node list>], (*optional)
  "tileGroup": [<tile list>], (*optional)
  "shimGroup": [<shim list>], (*optional)
  "contain_routing": bool, (*optional)
  "exclude_routing": bool, (*optional)
  "exclude_placement"" bool, (*optional)
}

<node list> ::= <node name>[,<node name>...]

<tile array> ::= <tile value>[,<tile value>...]
<tile value> ::= <tile range> | <tile address>
<tile range> ::= "<tile address>[:<tile address>]"
<tile address> ::= (<column>, <row>)

<shim array> ::= <shim value>[,<shim value>...]
<shim value> ::= <shim range> | <shim address>
<shim range> ::= "<shim address>[:<shim address>]"
<shim address> ::= (<column>[,<channel>])

<node name> ::= string
<column> ::= integer
<row> ::= integer
<channel> ::= integer

{
  "GlobalConstraints": {
    "areaGroup": {
      "name": "mygraph_area_group",
      "nodeGroup": ["mygraph.k1", "mygraph.k2"],
      "tileGroup": ["(2,0):(2,3)"],
      "shimGroup": ["0:3"]
    }
  }
}

除外の例

{
  "GlobalConstraints": {
    "areaGroup": {
      "name": "mygraph_excluded_area_group",

      "tileGroup": ["(3,0):(4,3)"],
      "shimGroup": ["3:4"],
      "exclude_routing": true
    }
  }
}