已关闭
【AscendC CAPI社区任务】asc_copy_l12l0b_transpose接口b32场景缺少k_step约束示例导致L1越界风险 #1423
leecyang创建于 29 天前关闭于 1 天前
lihuaichao
29 天前 评论:
29 天前 评论:
您好,相关问题我们已经收到了,将在确认后向您反馈~


29 天前 将 haipingmao 设为负责人
20 天前 将 pengcheng1024 设为负责人
maohp_hw
15 天前 评论:
15 天前 评论:
相关问题正在合入中


9 天前 移除了负责人 haipingmao
pengcheng1024
4 天前 评论:
4 天前 评论:
感谢您的关注,文档相关的约束说明已合入,对应的样例也在补充中


pengcheng1024
1 天前 评论:
1 天前 评论:
对应样例已合入,https://gitcode.com/cann/asc-devkit/pull/5460 此issuse将会关闭,后续有问题持续沟通,感谢关注


1 天前 issue状态由 进行中 改变为 已完成
1 天前 关闭了 issue
1 天前 添加了label:resolved
问题描述
在使用 Ascend C C API 开发 Cube-Core MatMul 算子过程中,发现
asc_copy_l12l0b_transpose接口关于 b32 数据搬运场景的约束说明不足,容易导致 Local Memory 越界风险。问题现象
相关文档:
asc_copy_l12l0b_arch_3510.md中说明:但是当前说明未给出对应的 L1 Buffer 分配示例。
实际开发过程中:
矩阵参数:
按照:
ceil_align(N, C0)计算得到:72列,并按照72列大小申请 L1 Buffer。但是由于 b32 场景:
k_step = 9需要向上调整为:k_step = 10,因此实际搬运访问:10 × 8 = 80列而非72列。导致:
该问题不一定直接导致计算结果错误,因为多读取的数据可能会被 Fixpipe 裁剪,因此较难定位。
期望行为
建议接口文档增加明确说明:
对于 b32 数据类型:
k_step × C0进行计算;而不是按照原始矩阵宽度:ceil_align(N,C0)分配。建议增加完整示例:
避免开发者出现潜在越界。
影响范围
影响使用 Cube-Core 数据搬运 API 开发矩阵计算类算子的开发者。
开发环境