昇腾AI原生创新算子挑战赛(S1赛季)- LpNormV2算子实现分享 - NPU-IIL-繁星团队
收藏回复举报
昇腾AI原生创新算子挑战赛(S1赛季)- LpNormV2算子实现分享 - NPU-IIL-繁星团队
新人帖
发表于2024-06-11 15:16:26
0 查看

LpNormV2概述

算子原型:

cke_707.png

不同P值对应的处理

cke_1141.png

Fp16数据测试代码

cke_6305.png

可以看到处理上是转化为fp32再进行计算处理的

算子分析与实现

p值的不同处理

p==2.0

主要的计算代码如下,注意对于数据都是进行视为1维然后分块处理。下面是处理一块连续的计算逻辑代码:

cke_11962.png

接下来是处理完一块之后,进行规约处理:

cke_12835.png

p==inf

主要计算实现逻辑代码

cke_37761.png

处理完一块数据之后的规约处理(inf -inf 0 1.0均相同,后续就不再贴这部分的图了):

cke_49970.png

p==-inf

cke_58916.png

p==0

cke_68387.png

p==1.0

cke_74752.png

other int or float

cke_85822.png

cke_87981.png

axes的对应处理

%E5%9B%BE%E7%89%871.png

下面是对于axes的处理,可以看到只有在搬入搬出的时候需要特殊处理,计算还是一样的逻辑。

cke_111544.png

cke_113588.png

cke_115695.png

算子优化处理

%E5%9B%BE%E7%89%872.png

案例代码

算子实现已合并至sample仓(也可扫码直达)

cke_164008.png

我要发帖子