Closed
[Bug-Report|缺陷反馈]: MatrixDiagPart Host/Tiling 校验缺失及示例/Golden 问题修复 #4638
吴成文Add on 1 day agoClosed at 1 day ago
1 day ago Modify description of issue
1 day ago Close issue
1 day ago changed custom state from 待办的 to 已完成
1 day ago Added label: resolved
一、问题描述
MatrixDiagPart(arch35/ascend950)存在以下已修复问题:
[-1,-1,3,4]元素乘积为正,会绕过检查进入分块计算。M*n、batchTotal*d、n+1(inputRowStride)在乘法/加法前没有 int64 越界判断;负的GetShapeSize()(未知维或乘积溢出)未在除法前拒绝。x.shape[:-2]+[min(M,N)]不一致时可能越界写输出缓冲区。EnsureNotScalar归一化后的 rank,0 维标量被报成 rank=1,掩盖真实 rank。GenOnesData按 int32 写入但按声明 dtype 构造 Tensor,float16 未填充;GetDataTypeSize缺DT_DOUBLE/UINT8/BOOL,DT_DOUBLE时缓冲区越界;WriteDataToFile未检查fwrite返回值;设备号固定为 0,未读取DEVICE_ID;正常路径未释放生成缓冲区和 Session。tests/assets/golden.py缺少__spec__/tolerance/third_party,TF E2E api_name 未注册;float16/float32 使用不可用的 cross_check 第三方;许可证头、未用 numpy 导入、日志文本与 spec 形参/返回惯例不一致。二、环境信息
• 昇腾硬件型号:Ascend 950PR/950DT
• CANN版本:9.3.0
• 操作系统:Linux
• 其他:ops-math
conversion/matrix_diag_part,arch35三、重现步骤
DEVICE_ID)或使用仓内 golden 执行 kernel/GEIR/TF E2E。四、预期结果
上述输入应在 Host/Tiling 阶段被明确拒绝;合法输入应正常执行;示例按声明 dtype 正确填充并释放资源;golden 能按
__spec__/tolerance 正确注册并被 TTK 解析,TF E2E 参考可用。💡 备注
修复 PR:https://gitcode.com/cann/ops-math/merge_requests/7140