Pull Request已成功合入, 合并人@CANN-robot
(感谢 watermelon_milk 的贡献)变更摘要
本次改动主要对 7 个 AscendC 示例内核进行 API 迁移:将原先基于 AscendC::Te 命名空间、PascalCase 风格的旧接口统一替换为新的 snake_case 风格 C API(asc::te 命名空间),同时将头文件依赖从 basic_api/kernel_basic_intf.h、basic_api/kernel_operator_block_sync_intf.h 切换为 c_api/misc/misc.h、c_api/sync/sync.h、c_api/sys_var/sys_var.h。改动覆盖张量构造、搬运/矩阵计算原子、互斥锁与流水同步、布局与枚举类型等多个层面,业务逻辑本身未发生实质变化。
主要改动
- 张量构造与切片接口迁移:
MakeTensor、MakeMemPtr、MakeFrameLayout、MakeCoord、MakeShape及.Slice()分别迁移为make_tensor、make_mem_ptr、make_frame_layout、make_coord、make_shape和.slice(),调用方式同步调整为 snake_case。 - 搬运与矩阵计算原子迁移:
MakeCopy、MakeMmad、Copy、Mmad及其 trait 类型(如CopyGM2L1、CopyL12L0A、MmadTrait)统一改为make_copy、make_mmad、copy、mmad及对应 snake_case 类型;MmadParams改为mmad_params,字段cmatrixInitVal、unitFlag分别改为cmatrix_init_val、unit_flag。 - 同步与互斥机制迁移:
AscendC::Mutex::Lock/Unlock改为asc_lock/asc_unlock,AscendC::PipeBarrier<PIPE_ALL>()改为asc_sync_pipe(PIPE_ALL),SetFlag/WaitFlag改为asc_sync_notify/asc_sync_wait,CrossCoreSetFlag/CrossCoreWaitFlag改为asc_sync_block_arrive/asc_sync_block_wait。 - 初始化与核间索引接口迁移:
AscendC::InitSocState()改为asc_init(),AscendC::GetBlockIdx()、GetBlockNum()、GetSubBlockIdx()分别改为asc_get_block_idx()、asc_get_block_num()、asc_get_sub_block_id()。 - 布局、枚举与参数结构体命名迁移:
NDExtLayoutPtn、NZLayoutPtn、ZNLayoutPtn、NCHWLayoutPtn、NC1HWC0LayoutPtn等布局类型以及DualDstMode、RoundMode、MmadType、Location等枚举均改为 snake_case;Img2ColParams、FixpipeParams改为img2col_params、fixpipe_params,其成员字段也同步 snake_case 化。


代码审查
Closing Summary
本次审查覆盖了全部 3 个改动文件:
examples/01_simd_cpp_api/00_introduction/02_matrix/matmul_tensor_api/matmul.asc— 已审查,无问题(纯机械式 API 重命名,逻辑未变)。examples/01_simd_cpp_api/03_basic_api/00_data_movement/copy_in_tensor_api/copy_in_tensor_api.asc— 发现 1 个问题(P1:残留旧命名空间AscendC::Std::conditional_t)。examples/01_simd_cpp_api/03_basic_api/00_data_movement/copy_out_tensor_api/copy_out_tensor_api.asc— 发现 1 个问题(P3:asc_get_sub_block_id命名不一致,疑似误译,需对照头文件核实)。
发现统计:P1 × 1,P3 × 1。
总体风险判断:这是一次范围明确、整体机械的 API snake_case 迁移,绝大部分重命名(make_tensor/make_copy/mmad_params/asc_lock/asc_sync_block_* 等)与仓库内已迁移样例一致,逻辑语义未被改动。主要风险集中在 copy_in_tensor_api.asc 中遗漏迁移的 AscendC::Std::conditional_t——由于提供该命名空间的旧头文件已被移除,该样例很可能无法编译,建议优先修复;copy_out_tensor_api.asc 的子块索引 API 命名建议对照头文件确认后一并处理。
我已完成对全部 4 个改动文件的逐一审查。经过与仓库中已迁移的同类样例(copy_in_tensor_api.asc、copy_out_tensor_api.asc、matmul.asc 及 C API 样例)交叉比对,逐项核实了以下关键契约,未发现被本 diff 引入的实质性问题:
- 同步语义:
SetFlag<HardEvent::X_Y>/WaitFlag<HardEvent::X_Y>→asc_sync_notify(PIPE_X, PIPE_Y, …)/asc_sync_wait(PIPE_X, PIPE_Y, …)的 producer/consumer 参数顺序与旧事件命名(MTE1_MTE2、M_MTE1、FIX_M、M_FIX等)一一对应,方向正确;PipeBarrier<PIPE_ALL>()→asc_sync_pipe(PIPE_ALL)也正确。 - 互斥锁:
Mutex::Lock<PIPE_X>(idx)/Unlock→asc_lock(PIPE_X, idx)/asc_unlock的参数顺序(先流水、后槽位号)正确。 - 结构体字段:
MmadParams/Img2ColParams/FixpipeParams→mmad_params/img2col_params/fixpipe_params的字段名(cmatrix_init_val、unit_flag、filter_w/h、pad_list、pad_value等)以及mmad_params{m,n,k,unit_flag,cmatrix_init_val}的聚合字段顺序,均与已迁移样例一致。 - 布局/算子名:
NDExtLayoutPtn→nd_ext_layout_ptn、NZ/ ZN/ DN/ NCHW/ NHWC/ NC1HWC0/ ZZ/ NN、CopyGM2L1→copy_gm_to_l1、CopyL12BT→copy_l1_to_biastable、MmadType::MX→mmad_type::mx等命名均与仓库约定一致。 - 数值/边界逻辑:本次 diff 未改动任何数值常量、循环边界、索引或条件判断,均为纯 API 重命名,未引入新的边界或逻辑回归。
审查结论
| 文件 | 审查结果 |
|---|---|
examples/01_simd_cpp_api/03_basic_api/03_matrix_compute/batch_matmul_tensor_api/batch_matmul_tensor_api.asc |
no issues |
examples/01_simd_cpp_api/03_basic_api/03_matrix_compute/conv2d_forward_tensor_api/conv2d_forward_tensor_api.asc |
no issues |
examples/01_simd_cpp_api/03_basic_api/03_matrix_compute/mmad_tensor_api/mmad_tensor_api.asc |
no issues |
examples/01_simd_cpp_api/05_best_practices/01_matrix_compute/matmul_mxfp4_tensor_api_high_performance/mmad_mx.asc |
no issues |
发现问题数量:P0 = 0,P1 = 0,P2 = 0,P3 = 0。
整体风险评估:低。本 PR 是一次机械式的 Tensor API 命名迁移(CamelCase → snake_case),四个文件改动均为忠实的一对一替换,未引入语义变化,且命名与仓库中已迁移的同类样例保持一致,未发现正确性、安全性、可靠性或性能方面的回归风险。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 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.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| docs | ✅ munanhw, 诸葛洵, DragonBornHD84, bianque, hyolee (5/2) | ✅ munanhw (1/1) |
| examples | ✅ 诸葛洵, changxianyu, munanhw, DragonBornHD84, bianque, hyolee (6/2) | ✅ 诸葛洵, changxianyu, munanhw (3/1) |
| scripts | ✅ 诸葛洵, DragonBornHD84, bianque, hyolee (4/2) | ✅ 诸葛洵 (1/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
watermelon_milk, thanks for your pull request. All authors of the commits have signed the CLA. 👍


/lgtm
/approve


描述
example样例切换snake风格
关联的Issue
测试
文档更新
类型标签