Pull Request has been successfully merged by CANN-robot.
(Thank you for leozjr's contribution.)变更摘要
此 PR 修复了 cube_datamove_impl 模块中因调用 copy_gm_to_cbuf_v2 和 copy_matrix_cc_to_cbuf 时参数缺失导致的 CCE 指令参数传输错误。具体而言,在 asc_copy_gm2l1_impl.h 中为 copy_gm_to_cbuf_v2 补充了缺失的中间参数;在 asc_copy_l0c2l1_impl.h 中为 8 个 copy_matrix_cc_to_cbuf 重载调用补齐了多个缺失的布尔实参,使所有调用与底层 API 签名完全一致。
主要改动
-
copy_gm_to_cbuf_v2调用补全缺失参数: 在asc_copy_gm2l1_impl.h中,copy_gm_to_cbuf_v2的调用在pad_func_mode与src_stride之间补充了缺失的参数0,确保参数位置对齐。 -
copy_matrix_cc_to_cbuf调用补全缺失布尔参数: 在asc_copy_l0c2l1_impl.h的 8 个asc_copy_l0c2l1_impl重载中,统一在src_stride之后补充false、在clip_relu_post之后补充false、在eltwise_antq_en之后补充false,并在末尾追加false, false, false,修复了因参数缺失导致的指令参数传输错位问题。


代码审查
经过对两个文件的全面审查,我现在可以得出结论了。
审查分析
文件 1: asc_copy_gm2l1_impl.h
- 整个文件中只有一处调用
copy_gm_to_cbuf_v2(第 28 行)。 - 旧调用传了 8 个实参,新调用在
pad_func_mode与src_stride之间补了一个0,变为 9 个实参,与 PR 描述一致。 - 其余重载使用
load_gm_to_cbuf_2dv2/load_gm_to_cbuf_2dv2_s4等不同 API,不受本次变更影响。
文件 2: asc_copy_l0c2l1_impl.h
- 8 个调用
copy_matrix_cc_to_cbuf的重载全部被统一修复:在src_stride后补false、clip_relu_post后补false、eltwise_antq_en后补false、c0_pad_en后补false, false, false。 - 与同文件中已有的
copy_matrix_cc_to_cbuf_s4调用的参数位置对比完全一致:_s4版本在对应位置传入l2_cache_ctl、broadcast_en、nz2dn_en,普通版本用false禁用这些特性,逻辑合理。 - 2 个
copy_matrix_cc_to_cbuf_s4重载(void+float、void+int32_t)未发现参数缺失。 - 所有
sync_impl调用与对应_impl签名匹配,无问题。
两个文件的修改均正确补齐了缺失的指令参数,与 API 签名对齐,不存在引入新问题的风险。
关闭摘要
- P0: 0
- P1: 0
- P2: 0
- P3: 0
总体风险评估: 此变更是低风险的 Bug 修复。两个文件中的参数补全准确、一致,与同文件中已有的 _s4 变体调用模式吻合,不会引入正确性、安全或可靠性问题。
impl/c_api/instr_impl/npu_arch_3510/cube_datamove_impl/asc_copy_gm2l1_impl.h— 已审查,no issuesimpl/c_api/instr_impl/npu_arch_3510/cube_datamove_impl/asc_copy_l0c2l1_impl.h— 已审查,no issues
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 1 |
| 🟡 建议 | 0 |
⛔ 需要修改


Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| impl/c_api | ✅ wuyang_hw, pangfd, 诸葛洵 (3/2) | ✅ pangfd (1/1) |
| repo-cann/asc-devkit | ✅ 诸葛洵, wuyang_hw (2/2) | ✅ 诸葛洵 (1/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
leozjr, thanks for your pull request. All authors of the commits have signed the CLA. 👍


The MR can not be merged, because of CodeReview discussion not resolved
If you want to solve this problem, you can click here to do it in the FAQs.


描述
修复
cube_datamove_impl中copy_gm_to_cbuf_v2与copy_matrix_cc_to_cbuf调用缺失参数导致的 CCE 指令参数传输错误。具体改动:
asc_copy_gm2l1_impl.h:copy_gm_to_cbuf_v2调用补齐pad_func_mode与src_stride之间缺失的参数(补0)。asc_copy_l0c2l1_impl.h:8 个copy_matrix_cc_to_cbuf重载调用补齐缺失实参(src_stride后补false、clip_relu_post后补false、eltwise_antq_en后补false,并在末尾补false, false, false),使调用与 API 签名一致。关联的Issue
关联Issue #1253
测试
文档更新
无
类型标签