已关闭
[Requirement|需求建议]: 950支持UnsortedSegmentMax实现 #3586
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(背景信息)

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

Origin(信息来源)

vector

Benefit / Necessity (价值/作用)

在网络中同地址的情况非常多,index一般按照powerlaw分布,重复度非常高,这种场景利用atomicmax很差。本方案对索引进行排序去重的方式消除核内相同地址的写请求,针对不同场景设计了多种模板适配提升网络性能。

Design(设计方案)

1、归约操作为max,即对属于同一segment的所有元素取最大值;
2、输出初始化为各数据类型的最小值:浮点类型(float32/float16/bfloat16)初始化为负无穷(-inf),有符号整型(int32/int64)初始化为该类型的最小值(如INT32_MIN=-2147483648),无符号整型(uint32/uint64)初始化为0;
3、核间归约使用AtomicMax操作,将多核结果在GM上原子求最大值;
4、核内归约使用SIMD向量Max指令或SIMT标量比较取大值;

likedislike
zhangxiyan7zhangxiyan7成员
6月26日 添加了label:requirement
zhangxiyan7zhangxiyan7成员
6月26日 修改了issue 的描述
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