pypto.is_loop_end#
产品支持情况#
Ascend 950PR/Ascend 950DT:支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
功能说明#
判断当前迭代是否为循环的结束。
函数原型#
def is_loop_end(scalar: SymInt) -> SymbolicScalar
参数说明#
参数名 |
输入/输出 |
说明 |
|---|---|---|
scalar |
输入 |
当前循环的索引。 |
返回值说明#
返回一个符号标量表达式,表示是否为循环结束(布尔值)
约束说明#
scalar必须是循环迭代器返回的符号标量
如果不是循环索引,将抛出ValueError异常
当函数未使用 @pypto.frontend.jit或 @pypto.frontend.function装饰器修饰时,条件表达式需要用pypto.cond包装
调用示例#
# 未使用装饰器,需要用pypto.cond包装条件表达式
def kernel():
...
for idx in pypto.loop(0, 10, 1):
if pypto.cond(pypto.is_loop_end(idx)):
...
# 使用装饰器,无需pypto.cond包装
@pypto.frontend.jit
def kernel():
...
for idx in pypto.loop(0, 10, 1):
if pypto.is_loop_end(idx):
...