pypto.loop_unroll【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto产品支持情况产品是否支持Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√功能说明pypto.loop_unroll是一个支持循环展开的循环迭代器函数功能与pypto.loop类似增加了unroll_list参数支持多个展开方式。函数原型loop_unroll(*args, **kwargs) - Iterator[Tuple[SymInt, int]]参数说明参数名输入/输出说明*args输入三个可选参数分别为循环起始值start循环结束值stop循环步长step有以下三种写法- 单参数形式stop(SymInt)起始值默认为0步长默认为1。等价于loop_unroll(0, stop, 1)- 双参数形式start(SymInt)stop(SymInt)等价于loop_unroll(start, stop, 1)- 三参数形式start (SymInt)stop(SymInt)step(SymInt)等价于loop_unroll(start, stop, step)**kwargs输入- name(str)循环标识名称默认生成floop_{loop_idx}。- idx_name(str): 循环索引变量的名称默认生成floop_idx_{loop_idx}。- unroll_list(List[int]): 需要展开unroll的循环层数集合默认为空集合。loop会提供等于该集合长度的几种展开方式展开次数为n时循环步长会变成step*n每次迭代会执行n次循环体。每种展开次数会生成不同的代码路径。- submit_before_loop(bool): 是否在循环开始前提交计算默认为False。开启后会在循环开启前强制提交当前累积的计算任务到AICore执行。返回值说明返回一个迭代器每次迭代产生一个元组idx, unroll_factor)idx表示当前循环的索引值unroll_factor标识当前选择的展开方式。约束说明展开因子列表会被排序并去重且总是包含 1展开因子按从大到小排序每个展开因子会生成一个子循环多层循环使用了loop_unroll并且配置unroll_list会大大增加编译出的图数量影响编译性能调用示例for _ in pypto.loop_unroll(0, 10, 1, nameLOOP_L0_bIdx_mla_prolog, idx_nameb_idx, unroll_list[1, 2, 4]): ...【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考