【问题描述】 index_fill算子支持Ascend 950场景,当需要处理的数据大小大于int32最大值,即索引数indicesNum * P * Q > int32最大值时,快除使用的还是uint32类型进行的,会导致快除得到的结果不对,从而有可能导致地址范围溢出,进而导致vec core问题发生。
【复现步骤】: 测试用例中,假设合轴后x的shape为: (P, N, Q), 合轴逻辑为: 以dim轴为界,dim轴前的所有轴维度相乘得到P, dim轴后所有轴维度相乘得到Q; dim轴所在的维度即为N. 构造测试用例,使得 P * N * 索引总个数大小大于2的31次方减1, 即2,147,483,647。
【环境信息】: Ascend 950
/assign
【问题描述】
index_fill算子支持Ascend 950场景,当需要处理的数据大小大于int32最大值,即索引数indicesNum * P * Q > int32最大值时,快除使用的还是uint32类型进行的,会导致快除得到的结果不对,从而有可能导致地址范围溢出,进而导致vec core问题发生。
【复现步骤】:
测试用例中,假设合轴后x的shape为: (P, N, Q), 合轴逻辑为: 以dim轴为界,dim轴前的所有轴维度相乘得到P, dim轴后所有轴维度相乘得到Q; dim轴所在的维度即为N.
构造测试用例,使得 P * N * 索引总个数大小大于2的31次方减1, 即2,147,483,647。
【环境信息】:
Ascend 950