已关闭
[Requirement|需求建议]: 新增unsorted_segment_prod算子支持Ascend950 #3587
zhangxiyan7创建于  6月26日关闭于  6月29日
zhangxiyan7
zhangxiyan7成员
6月26日 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Backgroud(背景信息)

UnsortedSegmentProd算子是索引算子,相同索引的数值进行原子乘再输出,原子乘使用atomCas实现,同地址的写请求需要在MATA上排队,是性能瓶颈所在。在推荐网络中同地址的情况非常多,index一般按照powerlaw分布,重复度非常高,这种场景利用atomCas很差。但是对索引进行排序去重的方式消除核内相同地址的写请求。

Origin(信息来源)

vector

Benefit / Necessity (价值/作用)

补全950上unsorted_segment_prod算子的实现

Design(设计方案)

本次仅实现simt全功能模板。主要思路是先使用simd将输出初始化为1.0(浮点数)或者1(整形),然后使用simt遍历输入,将输入和对应位置的输出使用atomCas求乘积值;由于cas不支持half/bfloat16类型,需要将half/bfloat16类型组装为half2/bfloat16x2_t类型处理。

likedislike
zhangxiyan7zhangxiyan7成员
6月26日 添加了label:requirement
zhangxiyan7
zhangxiyan7成员
6月26日 评论:

/assign

likedislike
CANN-robotCANN-robot成员
6月26日 将 zhangxiyan7 设为负责人
CANN-robotCANN-robot成员
6月29日 关闭了 issue
CANN-robotCANN-robot成员
6月29日 添加了label:resolved