预定义宏和内建变量
预定义宏
毕昇编译器同其他语言的编译器一样,会有一些预定义宏方便开发者编写程序。
|
预定义宏 |
默认值 |
含义 |
|---|---|---|
|
__CCE_IS_AICORE__ |
1 |
设备侧为1,可用于区分device侧代码还是host侧代码 |
|
__DAV_CUBE__ |
- |
隔离cube侧代码 |
|
__DAV_VEC__ |
- |
隔离vec侧代码 |
|
__NPU_ARCH__ |
- |
可用于区分device侧代码还是host侧代码, 同时隔离device侧不同架构的代码 |
|
AI处理器型号 |
__NPU_ARCH__ |
|---|---|
|
Atlas 350 加速卡 |
3510 |
|
|
2201 |
|
|
2201 |
|
|
3002 |
|
|
2002 |
|
|
1001 |
注意事项:
- 紧耦合的核(CUBE+VEC不分离),编译器同时定义__DAV_CUBE__, __DAV_VEC__
- 松耦合的核(CUBE,VEC分离),编译CUBE的时候,编译器定义__DAV_CUBE__,编译VEC的时候,编译器定义__DAV_VEC__
- CUBE Only的核,只定义__DAV_CUBE__
- VECTOR Only的核,只定义__DAV_VEC__
父主题: AI Core编程指导