tik_continue
功能说明
在tik的for_range循环中使用,用来跳出本次循环,进入下一次循环。
函数原型
tik_continue()
参数说明
无
支持的型号
Atlas 200/300/500 推理产品
Atlas 训练系列产品
Atlas推理系列产品AI Core
Atlas推理系列产品Vector Core
Atlas A2训练系列产品/Atlas 800I A2推理产品
Atlas 200/500 A2推理产品
注意事项
- tik_continue()仅允许在for_range语句的作用域内使用。
- 当for_range语句的block_num > 1时,当前循环内不允许使用tik_continue(), 但子循环可以使用。
- 当for_range语句的subblock_num > 1时,当前循环内不允许使用tik_continue(), 但子循环可以使用。
- 同一作用域内, tik_continue后的代码不执行。
- 当for_range(0, 1)时, for_range将会被展开, 其展开后, tik_continue后的语句将不会执行。
- 在当前for_range作用域内, 如果使用了tik_continue, thread_num的值将会被设置为1。
返回值
无
调用示例
tik_instance = tik.Tik() data_C_gm = tik_instance.Tensor("float16", (128,), name="data_C", scope=tik.scope_gm) data_C_ub = tik_instance.Tensor("float16", (128,), name="data_C_ub", scope=tik.scope_ubuf) data_B_gm = tik_instance.Tensor("float16", (128,), name="data_B", scope=tik.scope_gm) data_B_ub = tik_instance.Tensor("float16", (128,), name="data_B_ub", scope=tik.scope_ubuf) tik_instance.data_move(data_B_ub, data_B_gm, 0, 1, 8, 0, 0) with tik_instance.for_range(0, 8) as i: with tik_instance.if_scope(i==1): tik_instance.tik_continue() tik_instance.data_move(data_C_ub[i*16], data_B_ub[i*16], 0, 1, 1, 0, 0) tik_instance.data_move(data_C_gm, data_C_ub, 0, 1, 8, 0, 0) tik_instance.BuildCCE(kernel_name, inputs = [data_B_gm], outputs = [data_C_gm])
父主题: 程序控制