LpNorm的官方仓库链接在operator_contrib/LpNormV2CustomSample/FrameworkLaunch/LpNormV2Custom。观察其tiling方案可以看到,有几个比较特殊的变量:pType,pValue,stepSize,unitCount,totalLength。下面结合代码分别对其进行分析。
pType
类似于typeKey,指定了p变量的类型,也即需要计算输入变量的几阶范数。对应关系如下所示:
pType | value |
---|---|
0 | 2 |
1 | +inf |
2 | -inf |
3 | 0 |
4 | 1 |
5 | other |
pValue
输入的attr变量,类型为float,存储用户输入的p的值。
stepSize
相当于待处理维度的总长度。
计算方法是:大于最大维度的那些维度的长度相乘
unitCount
相当于待处理维度的前置维度的总长度。
计算方法是:小于最大维度的那些维度的长度相乘
totalLength
需要注意此处的totalLength和正常情况不同。
相当于待处理长度的后置长度。
计算方法是:介于最小的维度信息和最大的维度信息之间连续的维度的长度相乘。