Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
ScatterNdUpdate 算子在确定性场景下 varIdxGm 未初始化的问题:由于确定性分支的 varIdxGm 没有显式初始化,非法索引行在 computer 阶段可能读到上一轮残留值导致误写,因此新增 tiling 字段 indicesAxis 并将 varIdxGm 全局内存初始化为 -1。
ascend950
开启确定性 (deterministic_level=3) 场景:
第1次(合法索引 [10,11,12,13]) 后, 非零槽位: [10, 11, 12, 13] 第2次(全 -1) 后, 被改动的槽位: [10] ** 不符合预期: 索引全为 -1 却发生了写入 ** 槽位 10 -> 值 [7.0, 7.0, 7.0, 7.0] (update 里填的是 7.0)
结论 关闭确定性: 无误写 开启确定性: 误写槽位 [10]
-> 复现成功: 该问题只在 deterministic 开启时出现
开启确定性 (deterministic_level=3)
第1次(合法索引 [10,11,12,13]) 后, 非零槽位: [10, 11, 12, 13] 第2次(全 -1) 后, 被改动的槽位: 无 符合预期: 未发生任何写入
结论 关闭确定性: 无误写 开启确定性: 无误写
Thanks for sending an issue! Please fill in the following template to help quickly solve your problem.
Describe the current behavior / 问题描述 (Mandatory / 必填)
ScatterNdUpdate 算子在确定性场景下 varIdxGm 未初始化的问题:由于确定性分支的 varIdxGm 没有显式初始化,非法索引行在 computer 阶段可能读到上一轮残留值导致误写,因此新增 tiling 字段 indicesAxis 并将 varIdxGm 全局内存初始化为 -1。
Environment / 环境信息 (Mandatory / 必填)
ascend950
Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)
开启确定性 (deterministic_level=3) 场景:
第1次(合法索引 [10,11,12,13]) 后, 非零槽位: [10, 11, 12, 13]
第2次(全 -1) 后, 被改动的槽位: [10]
** 不符合预期: 索引全为 -1 却发生了写入 **
槽位 10 -> 值 [7.0, 7.0, 7.0, 7.0] (update 里填的是 7.0)
结论
关闭确定性: 无误写
开启确定性: 误写槽位 [10]
-> 复现成功: 该问题只在 deterministic 开启时出现
Describe the expected behavior / 预期结果 (Mandatory / 必填)
开启确定性 (deterministic_level=3)
第1次(合法索引 [10,11,12,13]) 后, 非零槽位: [10, 11, 12, 13]
第2次(全 -1) 后, 被改动的槽位: 无
符合预期: 未发生任何写入
结论
关闭确定性: 无误写
开启确定性: 无误写
Related log / screenshot / 日志 / 截图 (Mandatory / 必填)
第1次(合法索引 [10,11,12,13]) 后, 非零槽位: [10, 11, 12, 13]
第2次(全 -1) 后, 被改动的槽位: [10]
** 不符合预期: 索引全为 -1 却发生了写入 **
槽位 10 -> 值 [7.0, 7.0, 7.0, 7.0] (update 里填的是 7.0)
结论
关闭确定性: 无误写
开启确定性: 误写槽位 [10]
-> 复现成功: 该问题只在 deterministic 开启时出现
Special notes for this issue/备注 (Optional / 选填)