AMD では、x86 シミュレータを使用する際に有益な定義済みのコンパイラ マクロを提供しています。最上位グラフ (通常は graph.cpp) で、次のプリプロセッサ マクロを、適切なコードを含めるか除外するかを指定する条件 #if
を使用して使用すると有益です。
マクロ | 説明 |
---|---|
__X86SIM__ | コードを x86sim フローにのみで使用するよう指定します。 |
__AIESIM__ | コードを aiesimulator フローにのみで使用するよう指定します。 |
X86SIM_KERNEL_NAME |
printf() と共に使用して、インストルメンテーション テキストにカーネル インスタンス名を付けます。 |
注記: アンダースコア
_
で囲まれたマクロは、前後にアンダースコアが 2 つずつあります。次に、マクロ コードの例を示します。
myAIEgraph g;
#if defined(__AIESIM__) || defined(__X86SIM__)
int main()
{
g.init();
g.run(4);
g.end();
return 0;
}
#endif
ヒント: __AIESIM__ マクロは AI エンジン シミュレータのみで使用され、__X86SIM__ は x86 シミュレータに適用されます。
上記の例では、__X86SIM__
マクロがgraph.cpp ファイルで使用される main()
に設定されています。この main()
はエミュレーション フローでは除外する必要がありますが、これらのマクロを使用して制御できます。また、x86 シミュレーション中にのみデバッグ インストルメンテーションをイネーブルにする場合に __X86SIM__
マクロを使用することもできます。