isomorphicGraphGroup 制約は、スタンプやリピートフローで使用される同型グラフを指定するために使用されます。
構文
"isomorphicGraphGroup": {
"name": string,
"referenceGraph": <reference graph name>,
"stampedGraphs": [<stamped graph name list>]
}
例
"isomorphicGraphGroup": {
"name": "isoGroup",
"referenceGraph": "tx_chain0",
"stampedGraphs": ["tx_chain1", "tx_chain2", "tx_chain3"]
}
概要
AI エンジンの同じジオメトリに制約できるインスタンスを複数持つ同じグラフ場合、AI エンジン コンパイラのスタンプおよびリピート機能を使用できます。同じグラフが複数回インスタンス化される場合にこの機能を使用する利点は主に 2 つあります。
- 性能の変動が少ない
- バッファーとカーネルは相互に同じようにマッピングされるため、すべてのグラフのスループットは非常に類似しています。配線の違いにより、スループットは完全には同じにならない場合がありますが、スタンプを使用しない場合より、はるかに近似度が高まります。
- AI エンジン コンパイラの実行時間が短い
- AI エンジン コンパイラは、デザイン全体ではなく参照グラフのみを処理するため、必要な実行時間はデフォルトのフローよりも大幅に短くなります。
機能および制限
必要に応じて、複数の異なるグラフにスタンプを付けることができます。たとえば、デザインに tx_chain というグラフ インスタンスが 4 つ、rx_chain というインスタンスが 4 つ含まれている場合、両セットのグラフに個別にスタンプを付けることができます。この機能は、1 つ以上の同型グラフのセットがあり、異なる同型グラフセット間の相互作用がないデザインに対してのみサポートされます。すべての参照グラフとスタンプ グラフには、エリア グループの制約が必要です。スタンプが必要なグラフの各インスタンスには、同じサイズのエリア グループを宣言する必要があります。すべてのエリア グループは重複していない必要があります。次に例を示します。
"areaGroup": {
"name": "ant0_cores",
"nodeGroup": ["tx_chain0*"],
"tileGroup": ["(0,0):(3,3)"]
},
"areaGroup": {
"name": "ant1_cores",
"nodeGroup": ["tx_chain1*"],
"tileGroup": ["(0,4):(3,7)"]
},
ユーザーは、参照グラフやスタンプされたグラフを指定する制約ファイルで isomorphic graph
group
を宣言する必要があります。次に例を示します。
"isomorphicGraphGroup": {
"name": "isoGroup",
"referenceGraph": "tx_chain0",
"stampedGraphs": ["tx_chain1", "tx_chain2"]
}
,
この場合、tx_chain0
グラフを基準とし、そのオブジェクトを最初に配置して、その配置をグラフ tx_chain1
および tx_chain2
に再利用します。エリア グループは、行数について次の規則に従う必要があります。すべての類似グラフ (参照 + スタンプ可能なグラフ) の行数は同じである必要があり、同じ行のパリティで開始して、終了する必要があります。つまり、参照グラフの tileGroup が偶数行で始まり、奇数行で終わる場合、スタンプが付いたすべてのグラフは同じ規則に従う必要があります。この制限は、AI エンジン アレイのタイルの構成が奇数行と偶数行でミラーになっているからです。タイル内のある行では AI エンジンの後にメモリ グループが続き、次の行ではメモリ グループの後に AI エンジンが続きます。