pypto.is_loop_begin#
产品支持情况#
产品 |
是否支持 |
|---|---|
Atlas A3 训练系列产品/Atlas A3 推理系列产品 |
√ |
Atlas A2 训练系列产品/Atlas A2 推理系列产品 |
√ |
功能说明#
判断当前迭代是否为循环的开始。
函数原型#
is_loop_begin(scalar: SymInt) -> SymbolicScalar
参数说明#
参数名 |
输入/输出 |
说明 |
|---|---|---|
scalar |
输入 |
当前循环的index。 |
返回值说明#
返回一个符号标量表达式,表示是否为循环开始(布尔值)
约束说明#
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_begin(idx)):
...
# 使用装饰器,无需 pypto.cond 包装
@pypto.frontend.jit
def kernel():
...
for idx in pypto.loop(0, 10, 1):
if pypto.is_loop_begin(idx):
...