pypto_pro.language.pto_assert#
产品支持情况#
Ascend 950PR/Ascend 950DT:支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
功能说明#
运行时断言:条件为假时打印错误信息到设备日志。支持纯文本和printf风格的格式化消息。条件为真时静默通过,无输出。
[!CAUTION]注意 当前NPU实现中,断言失败仅打印日志,不会中止Kernel执行或抛出Host侧异常。具体行为取决于后端实现。
函数原型#
pypto_pro.language.pto_assert(condition, format_str=None, *args, *, loc=False)
参数类型#
参数 |
输入/输出 |
说明 |
|---|---|---|
|
输入 |
断言条件,必须为标量布尔值 |
|
输入 |
可选,错误消息格式串(编译时常量) |
|
输入 |
可选,格式串中的参数值 |
|
输入 |
可选,是否在输出前打印源文件/行号 |
参数范围#
参数 |
输入/输出 |
说明 |
|---|---|---|
|
输入 |
标量布尔值(dtype为BOOL) |
|
输入 |
编译时常量字符串,不能是运行时变量 |
|
输入 |
支持Python |
|
输入 |
|
流水类型#
S(标量流水)。
调用示例#
import pypto_pro.language as pl
# 仅条件
pl.pto_assert(flag)
# 条件 + 纯文本消息
pl.pto_assert(flag, "flag is false")
# 条件 + 格式化消息
pl.pto_assert(offset != 2, "offset=%d", offset)
# 带源码位置
pl.pto_assert(flag, "unexpected state", loc=True)
示例输出(条件为假时):
调用 |
输出 |
|---|---|
|
|
|
|
|
|
|
|
条件为真时无输出,断言静默通过。