您好,感谢反馈!
问题分析
本次读取的 cann/ops-math@212ce9d5460b1be26cfbee481aff1acbf5cc5c62 中,Random Tensor 接口实现的 CheckShape 检查对象是 selfRef;Uniform Tensor 接口实现也只对 selfRef 做最大维数检查。seedTensor、offsetTensor 在相关路径中的类型校验,并未在这两个 API 入口形成对应的显式秩检查,因此 selfRef 合法并不代表这两个输入的形状也已校验。
还需要区分参数约束:aclnnInplaceRandomTensor 资料和 aclnnInplaceUniformTensor 资料的参数表均把 seedTensor、offsetTensor 的维数标为 1,而错误码表中“shape 超过 8 维”的条款针对 selfRef。按该版本资料,九维 seed/offset 已超出其声明范围;处理时应分别对齐这两个参数的真实契约,不能仅套用 selfRef 的八维上限。具体下游路径还随硬件和随机模式变化,您所用版本的实际返回行为仍需对齐用例确认。
处理方向
一个可行方向是在 Tensor 接口入口统一校验 seedTensor、offsetTensor 的形状约束,使非法输入在 GetWorkspaceSize 阶段返回 161002 / ACLNN_ERR_PARAM_INVALID;同时核对空 selfRef 早退路径的检查顺序,保留合法输入及不同后端已有的类型约束。可以分别用仅 seed 超维、仅 offset 超维、二者均超维和合法一维输入做对照。
请补充实际 CANN 版本和芯片型号、selfRef/seedTensor/offsetTensor 的完整 shape 与 dtype,以及一份最小调用片段和两阶段返回码,便于把您观察到的正常运行路径与上述入口对应起来。当前问题先由 chensi79 接单,继续确认参数校验边界。


一、问题描述 (必填)
校验aclnnInplaceRandomTensor/aclnnInplaceUniformTensor接口对seed/offset参数超过八维的异常情况
二、环境信息 (可选)
三、重现步骤 (可选)
当aclnnInplaceRandomTensor/aclnnInplaceUniformTensor接口对seed/offset参数超过八维时,aclnn正常运行,但实际上需要拦截异常输入
四、预期结果 (可选)
aclnnInplaceRandomTensor/aclnnInplaceUniformTensor接口对seed/offset参数超过八维时,期望错误码161002,期望错误名ACLNN_ERR_PARAM_INVALID
💡 备注(选填)