assert
产品支持情况
功能说明
头文件路径为:"utils/debug/asc_assert.h"。
该接口实现CPU/NPU域assert断言功能。算子执行中,如果assert内部条件判断不为真,则输出assert条件并将输入的信息格式化打印在屏幕上。
在算子Kernel侧实现代码中需要增加断言的地方使用assert检查代码,并格式化输出一些调测信息。示例如下:
int assertFlag = 10;
assert(assertFlag == 10);
注意
该接口主要用于调试分析,开启后会对算子性能产生一定影响,通常在调试阶段使用,生产环境建议关闭。
默认情况下,调用该接口就会打印相关内容,开发者可以参考关闭ASCENDC_DUMP说明,按需关闭该接口功能。
函数原型
define assert(...)
参数说明
表 1 参数说明
| 参数名称 | 输入/输出 | 描述 |
|---|---|---|
| ... | 输入 | assert断言是否终止程序的条件。为true则程序继续执行,为false则终止程序。 |
数据类型
无
返回值说明
无
返回值说明
无
约束说明
- 单次调用本接口打印的数据总量不可超过30KB。使用时应注意,如果超出这个限制,则数据不会被打印。
- 在cmake工程的release模式下,默认使能NDEBUG宏定义,assert打印信息失效。
调用示例
int assertFlag = 10;
// 断言条件
assert(assertFlag != 10);
程序运行时会触发assert,打印效果如下:
[ASSERT] /home/.../add_custom.cpp:44: Assertion `assertFlag != 10'