非连续转连续

概述

问题定位

在模型或训练脚本中使用了View非连续类操作,如调用了transpose、narrow、select、permute、chunk、split等框架类算子,框架会调用format_contiguous函数对其进行校验,生成一个匹配且连续的tensor。

  1. 参见性能采集与分析工具使用在训练脚本中使能profiling。
  2. 通过查看profiling数据,如发现在非连续转连续时耗时明显,可定位至对应算子,例如图4所示,format_contiguousV2为转连续算子。

    图4 大量转连续算子

解决方案

基于当前的机制,目前针对这类算子有3种处理方式: