赛灵思提供了多个预定义的编译器宏,以帮助使用 x86 仿真器。在顶层 graph 测试激励文件(通常名为 graph.cpp)中,最好将以下预处理器宏与有条件的 #if
搭配使用以帮助包含或者排除相应的代码。
宏 | 描述 |
---|---|
__X86SIM__ | 此预定义宏用于指定仅适用于 x86sim 流程的代码。 |
__AIESIM__ | 此预定义宏用于指定仅适用于 aiesimulator 流程的代码。 |
X86SIM_KERNEL_NAME |
此宏搭配 printf() 一起使用,以标记含有内核实例名称的检测文本。 |
注释: 对于以下划线
_
包围的宏,在前后各有两个下划线字符。宏代码示例如下所示。
myAIEgraph g;
#if defined(__AIESIM__) || defined(__X86SIM__)
int main()
{
g.init();
g.run(4);
g.end();
return 0;
}
#endif
提示: __AIESIM__ 宏仅适用于 AI 引擎仿真器,__X86SIM__ 适用于 x86 仿真器。
前述示例显示 __X86SIM__
宏包围了 main()
,后者供 graph.cpp 文件使用。此 main()
必须从仿真流程中排除,这些宏则可提供此类灵活性。此外,建议仅限在 x86 仿真期间才考虑使用 __X86SIM__
宏来选择性启用调试检测。