| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
同步ascend960相关代码 Co-authored-by: Ekoxier<husizhe@huawei.com> Co-authored-by: hyolee<lihongbo14@huawei.com> Co-authored-by: maohaodi<maohaodi@huawei.com> Co-authored-by: xumengxuan<xumengxuan2@huawei.com> Co-authored-by: zhangfeifan0709<zhangfeifan7@huawei.com> Co-authored-by: zhangjiru<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !6755 merge adapt_121 into master 同步ascend960相关代码 Created-by: maohaodi Commit-by: maohaodi;Ekoxier;zhangjiru;xumengxuan;hyolee;zhangfeifan0709 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 同步ascend960相关代码,包括basic_api, c_api, tensor_api等,不含adv_api ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6755 | 6 天前 | |
同步ascend960相关代码 Co-authored-by: Ekoxier<husizhe@huawei.com> Co-authored-by: hyolee<lihongbo14@huawei.com> Co-authored-by: maohaodi<maohaodi@huawei.com> Co-authored-by: xumengxuan<xumengxuan2@huawei.com> Co-authored-by: zhangfeifan0709<zhangfeifan7@huawei.com> Co-authored-by: zhangjiru<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !6755 merge adapt_121 into master 同步ascend960相关代码 Created-by: maohaodi Commit-by: maohaodi;Ekoxier;zhangjiru;xumengxuan;hyolee;zhangfeifan0709 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 同步ascend960相关代码,包括basic_api, c_api, tensor_api等,不含adv_api ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6755 | 6 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
feat: 为950产品新增asc_dcci_entire_ub接口支持 Co-authored-by: g00954335<guorenjie3@huawei.com> # message auto-generated for no-merge-commit merge: !6512 merge new-pr-5714 into master feat: 为950产品新增asc_dcci_entire_ub接口支持 Created-by: GRJ_XIDUO Commit-by: g00954335 Merged-by: cann-robot Description: ## 描述 为950产品补充asc_dcci_entire_ub接口,刷新DCache中包含UB地址的所有有效Cache Line。 在reg_base_impl中实现接口,并新增指令调用参数校验UT。 ## 关联的Issue https://gitcode.com/cann/asc-devkit/issues/1821 ## 测试 - git diff --check通过。 - npu_arch_3510对应UT源文件语法编译通过。 ## 文档更新 移除asc_dcci文档中950产品不支持asc_dcci_entire_ub的约束。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6512 | 9 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
c_api_cube_9201 Co-authored-by: ChenCangtao<chencangtao@huawei.com> Co-authored-by: xumengxuan<xumengxuan2@huawei.com> Co-authored-by: wuzhengzhen<wuzhengzhen@huawei.com> # message auto-generated for no-merge-commit merge: !6436 merge c_api_cube_combine into master c_api_cube_9201 Created-by: xumengxuan Commit-by: wuzhengzhen;ChenCangtao;xumengxuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 增加c api 9201架构 cube datamove和cube compute的接口和实现 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6436 | 23 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
Ascend960DT 前置回退 Co-authored-by: Ekoxier<husizhe@huawei.com> # message auto-generated for no-merge-commit merge: !6678 merge reset_v121_modify into master Ascend960DT 前置回退 Created-by: Ekoxier Commit-by: Ekoxier Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> Ascend960DT 前置回退: asc-toolkit关联包新增桩指令需要asc-devkit镜像更新, 当前回避 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6678 | 9 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
fix: 修复 INT4 load postupdate 源地址更新丢失 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5984 merge fix/capi-postupdate-pointer into master fix: 修复 INT4 load postupdate 源地址更新丢失 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 修复 INT4 加载接口在 Post Update 模式下未将地址更新传回调用者的问题。 asc_loadalign_downsample_postupdate 和带 block_stride/repeat_stride 的 asc_loadalign_postupdate 原来将局部指针副本传给底层指令,连续调用时源地址停留在原位置。 将转换后的指针绑定为原始 src 的引用,使 vlds / vsldb 的地址更新直接作用于调用者。公共接口和指令参数保持不变。 ## 关联的Issue 无。 ## 测试 本地测试 ## 文档更新 无,现有文档已规定 Post Update 更新源地址。 ## 类型标签 - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5984 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
c_api_vector Co-authored-by: xumengxuan<xumengxuan2@huawei.com> # message auto-generated for no-merge-commit merge: !6320 merge c_api_vector into master c_api_vector Created-by: xumengxuan Commit-by: xumengxuan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ### 主要改动 - **新增 9201 架构 merge 接口实现: **在 reg_arith_intf_impl.h 中为 asc_add_merge、asc_max_merge、asc_min_merge 提供多种数据类型的重载实现,内部在 ASC_IS_AIV 下以 MODE_MERGING 模式调用底层 vadd/vmax/vmin。 - **扩展架构条件与接口声明: **reg_arith.h 中架构判断由 \_\_NPU_ARCH\_\_ == 3510 改为 3510 || 9201,并新增 asc_add_merge、asc_max_merge、asc_min_merge 的接口声明;reg_arith_intf_impl.h 中新增对 9201 专用实现头文件的按架构条件包含。 - **新增 merge 接口单元测试: **新增 test_asc_add_merge.cpp、test_asc_max_merge.cpp、test_asc_min_merge.cpp,通过宏 TEST_VECTOR_COMPUTE_BINARY_MERGE_INSTR 覆盖多种数据类型,并校验底层调用传入 MODE_MERGING。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6320 | 9 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
feat: 9201架构新增类型转换C API接口 (add e6m22bfloat16 e8m02bfloat16 half2e4m3 and half2e5m2 及asc_cast/asc_cast_merge) Co-authored-by: wuzhengzhen<wuzhengzhen@huawei.com> # message auto-generated for no-merge-commit merge: !6623 merge test_half2xxx_from_master into master feat: 9201架构新增类型转换C API接口 (add e6m22bfloat16 e8m02bfloat16 half2e4m3 and half2e5m2 及asc_cast/asc_cast_merge) Created-by: wuzhengzhen Commit-by: wuzhengzhen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 9201 新增 half -> FP8 E4M3FN / E5M2 转换 C API:asc_half2e4m3_rn*、asc_half2e5m2_rn*,覆盖饱和与非饱和、EVEN/ODD 位置、zeroing/merging、返回值重载及 _v2 形式;同时接入通用 asc_cast / asc_cast_merge。声明见 include/c_api/reg_compute/reg_convert.h:8546,9201 实现见 impl/c_api/reg_base_impl/ npu_arch_9201/reg_convert_intf_impl.h:2413。 - 补齐相关转换能力:float -> half 的 merge 形式,E6M2/E8M0 -> bfloat16,以及 E6M2 -> bfloat16 的 reciprocal 转换。 - 新增寄存器打包 API:asc_pack_to_low/high 和多种整数、half、float 类型的 asc_pack_datablock。 - 新增 FP8 E6M2 的 asc_gather / asc_gather_datablock 重载。 - 更新公共导出、host-header checker、类型别名及 CPU stub,使上述接口能完成 host 编译与 UT mock。 - 新增 8 个 UT 文件,覆盖 E4M3/E5M2 转换、float2half、E6M2/E8M0 转 BF16、reciprocal 转换、pack 和 E6M2 gather;并扩展 VCVT 测试辅助宏以校验 round、saturation、position、mode 等指令参数。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6623 | 8 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
功能:新增 9201 架构 reg 矢量计算接口及 UT Co-authored-by: zhangjiru<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !6225 merge feat/capi_9201_vec_compute into master 功能:新增 9201 架构 reg 矢量计算接口及 UT Created-by: leozjr Commit-by: zhangjiru Merged-by: cann-robot Description: ## 描述 新增 9201(ascend960dt)架构 reg 寄存器矢量计算接口及对应 UT,并对公共头文件架构分派进行适配。 **接口实现** - 新增 impl/c_api/reg_base_impl/npu_arch_9201/ 下 4 个架构私有实现文件: - reg_fused_intf_impl.h:新增 asc_fma/asc_fms/asc_fnma/asc_fnms(返回值形式),映射 vfma/vfnms/vfms/vfnma - reg_logic_intf_impl.h:新增无符号位移接口 asc_shiftleft/asc_shiftright/asc_shiftleft_scalar/asc_shiftright_scalar(9201 为无符号 shift 类型) - reg_reduce_intf_impl.h:新增 asc_datablock_reduce_max/min/sum_stride、asc_pair_reduce_sum_stride、asc_reduce_max/min/sum_last_elem,映射 vcg*v2/vcpaddv2/vc*v2 - reg_permute_sel_intf_impl.h:新增 asc_intlv_half_low/high、asc_deintlv_even/odd(含 b8/b16/b32 谓词变体),映射 vintlvv2/vdintlvv2 - 所有新接口均提供 dst-ref 与 return-by-value 两种形式(fused 系列仅返回值形式) **架构分派适配** - signed shift 接口迁移至 npu_arch_3510/reg_logic_intf_impl.h(3510 独有有符号类型) - 公共 impl 头(reg_fused/reg_logic/reg_permute_sel)增加 #elif __NPU_ARCH__ == 9201 分派,reg_reduce 增加 #if __NPU_ARCH__ == 9201 - include/c_api 各 compute 头守卫扩展为 (3510 || 9201),asc_simd.h / asc_reg_vector.h 放行 9201 **公共类型补充** - include/c_api/defs/type.h 新增 vector_fp8_e6m2_t、vector_uint4x2_t、vector_hifloat4x2_t **UT** - 新增 tests/api/c_api/npu_arch_9201/vector_compute/ 下 9 个测试文件,覆盖上述全部新接口 - tests/api/c_api/stub/cce_stub.h 新增 9201 v2 指令 stub 及 fp8_e6m2/hif4x2 host 类型 ## 关联的Issue 不涉及 ## 测试 - 本地编译并运行 UT: - ascendc_ut_c_api_ascend960dt_AIV(9201):184 个测试全部通过 - ascendc_ut_c_api_ascend950pr_9599_AIV(3510):3324 个测试全部通过(回归无影响) ## 文档更新 不涉及 ## 类型标签 - [x] ✨ feat: 新功能 - [x] 🧪 test: 新增或修改测试 See merge request: cann/asc-devkit!6225 | 9 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
功能:新增 9201 架构 reg 矢量计算接口及 UT Co-authored-by: zhangjiru<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !6225 merge feat/capi_9201_vec_compute into master 功能:新增 9201 架构 reg 矢量计算接口及 UT Created-by: leozjr Commit-by: zhangjiru Merged-by: cann-robot Description: ## 描述 新增 9201(ascend960dt)架构 reg 寄存器矢量计算接口及对应 UT,并对公共头文件架构分派进行适配。 **接口实现** - 新增 impl/c_api/reg_base_impl/npu_arch_9201/ 下 4 个架构私有实现文件: - reg_fused_intf_impl.h:新增 asc_fma/asc_fms/asc_fnma/asc_fnms(返回值形式),映射 vfma/vfnms/vfms/vfnma - reg_logic_intf_impl.h:新增无符号位移接口 asc_shiftleft/asc_shiftright/asc_shiftleft_scalar/asc_shiftright_scalar(9201 为无符号 shift 类型) - reg_reduce_intf_impl.h:新增 asc_datablock_reduce_max/min/sum_stride、asc_pair_reduce_sum_stride、asc_reduce_max/min/sum_last_elem,映射 vcg*v2/vcpaddv2/vc*v2 - reg_permute_sel_intf_impl.h:新增 asc_intlv_half_low/high、asc_deintlv_even/odd(含 b8/b16/b32 谓词变体),映射 vintlvv2/vdintlvv2 - 所有新接口均提供 dst-ref 与 return-by-value 两种形式(fused 系列仅返回值形式) **架构分派适配** - signed shift 接口迁移至 npu_arch_3510/reg_logic_intf_impl.h(3510 独有有符号类型) - 公共 impl 头(reg_fused/reg_logic/reg_permute_sel)增加 #elif __NPU_ARCH__ == 9201 分派,reg_reduce 增加 #if __NPU_ARCH__ == 9201 - include/c_api 各 compute 头守卫扩展为 (3510 || 9201),asc_simd.h / asc_reg_vector.h 放行 9201 **公共类型补充** - include/c_api/defs/type.h 新增 vector_fp8_e6m2_t、vector_uint4x2_t、vector_hifloat4x2_t **UT** - 新增 tests/api/c_api/npu_arch_9201/vector_compute/ 下 9 个测试文件,覆盖上述全部新接口 - tests/api/c_api/stub/cce_stub.h 新增 9201 v2 指令 stub 及 fp8_e6m2/hif4x2 host 类型 ## 关联的Issue 不涉及 ## 测试 - 本地编译并运行 UT: - ascendc_ut_c_api_ascend960dt_AIV(9201):184 个测试全部通过 - ascendc_ut_c_api_ascend950pr_9599_AIV(3510):3324 个测试全部通过(回归无影响) ## 文档更新 不涉及 ## 类型标签 - [x] ✨ feat: 新功能 - [x] 🧪 test: 新增或修改测试 See merge request: cann/asc-devkit!6225 | 9 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
功能:新增 9201 架构 reg 矢量计算接口及 UT Co-authored-by: zhangjiru<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !6225 merge feat/capi_9201_vec_compute into master 功能:新增 9201 架构 reg 矢量计算接口及 UT Created-by: leozjr Commit-by: zhangjiru Merged-by: cann-robot Description: ## 描述 新增 9201(ascend960dt)架构 reg 寄存器矢量计算接口及对应 UT,并对公共头文件架构分派进行适配。 **接口实现** - 新增 impl/c_api/reg_base_impl/npu_arch_9201/ 下 4 个架构私有实现文件: - reg_fused_intf_impl.h:新增 asc_fma/asc_fms/asc_fnma/asc_fnms(返回值形式),映射 vfma/vfnms/vfms/vfnma - reg_logic_intf_impl.h:新增无符号位移接口 asc_shiftleft/asc_shiftright/asc_shiftleft_scalar/asc_shiftright_scalar(9201 为无符号 shift 类型) - reg_reduce_intf_impl.h:新增 asc_datablock_reduce_max/min/sum_stride、asc_pair_reduce_sum_stride、asc_reduce_max/min/sum_last_elem,映射 vcg*v2/vcpaddv2/vc*v2 - reg_permute_sel_intf_impl.h:新增 asc_intlv_half_low/high、asc_deintlv_even/odd(含 b8/b16/b32 谓词变体),映射 vintlvv2/vdintlvv2 - 所有新接口均提供 dst-ref 与 return-by-value 两种形式(fused 系列仅返回值形式) **架构分派适配** - signed shift 接口迁移至 npu_arch_3510/reg_logic_intf_impl.h(3510 独有有符号类型) - 公共 impl 头(reg_fused/reg_logic/reg_permute_sel)增加 #elif __NPU_ARCH__ == 9201 分派,reg_reduce 增加 #if __NPU_ARCH__ == 9201 - include/c_api 各 compute 头守卫扩展为 (3510 || 9201),asc_simd.h / asc_reg_vector.h 放行 9201 **公共类型补充** - include/c_api/defs/type.h 新增 vector_fp8_e6m2_t、vector_uint4x2_t、vector_hifloat4x2_t **UT** - 新增 tests/api/c_api/npu_arch_9201/vector_compute/ 下 9 个测试文件,覆盖上述全部新接口 - tests/api/c_api/stub/cce_stub.h 新增 9201 v2 指令 stub 及 fp8_e6m2/hif4x2 host 类型 ## 关联的Issue 不涉及 ## 测试 - 本地编译并运行 UT: - ascendc_ut_c_api_ascend960dt_AIV(9201):184 个测试全部通过 - ascendc_ut_c_api_ascend950pr_9599_AIV(3510):3324 个测试全部通过(回归无影响) ## 文档更新 不涉及 ## 类型标签 - [x] ✨ feat: 新功能 - [x] 🧪 test: 新增或修改测试 See merge request: cann/asc-devkit!6225 | 9 天前 | |
功能:新增 9201 架构 reg 矢量计算接口及 UT Co-authored-by: zhangjiru<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !6225 merge feat/capi_9201_vec_compute into master 功能:新增 9201 架构 reg 矢量计算接口及 UT Created-by: leozjr Commit-by: zhangjiru Merged-by: cann-robot Description: ## 描述 新增 9201(ascend960dt)架构 reg 寄存器矢量计算接口及对应 UT,并对公共头文件架构分派进行适配。 **接口实现** - 新增 impl/c_api/reg_base_impl/npu_arch_9201/ 下 4 个架构私有实现文件: - reg_fused_intf_impl.h:新增 asc_fma/asc_fms/asc_fnma/asc_fnms(返回值形式),映射 vfma/vfnms/vfms/vfnma - reg_logic_intf_impl.h:新增无符号位移接口 asc_shiftleft/asc_shiftright/asc_shiftleft_scalar/asc_shiftright_scalar(9201 为无符号 shift 类型) - reg_reduce_intf_impl.h:新增 asc_datablock_reduce_max/min/sum_stride、asc_pair_reduce_sum_stride、asc_reduce_max/min/sum_last_elem,映射 vcg*v2/vcpaddv2/vc*v2 - reg_permute_sel_intf_impl.h:新增 asc_intlv_half_low/high、asc_deintlv_even/odd(含 b8/b16/b32 谓词变体),映射 vintlvv2/vdintlvv2 - 所有新接口均提供 dst-ref 与 return-by-value 两种形式(fused 系列仅返回值形式) **架构分派适配** - signed shift 接口迁移至 npu_arch_3510/reg_logic_intf_impl.h(3510 独有有符号类型) - 公共 impl 头(reg_fused/reg_logic/reg_permute_sel)增加 #elif __NPU_ARCH__ == 9201 分派,reg_reduce 增加 #if __NPU_ARCH__ == 9201 - include/c_api 各 compute 头守卫扩展为 (3510 || 9201),asc_simd.h / asc_reg_vector.h 放行 9201 **公共类型补充** - include/c_api/defs/type.h 新增 vector_fp8_e6m2_t、vector_uint4x2_t、vector_hifloat4x2_t **UT** - 新增 tests/api/c_api/npu_arch_9201/vector_compute/ 下 9 个测试文件,覆盖上述全部新接口 - tests/api/c_api/stub/cce_stub.h 新增 9201 v2 指令 stub 及 fp8_e6m2/hif4x2 host 类型 ## 关联的Issue 不涉及 ## 测试 - 本地编译并运行 UT: - ascendc_ut_c_api_ascend960dt_AIV(9201):184 个测试全部通过 - ascendc_ut_c_api_ascend950pr_9599_AIV(3510):3324 个测试全部通过(回归无影响) ## 文档更新 不涉及 ## 类型标签 - [x] ✨ feat: 新功能 - [x] 🧪 test: 新增或修改测试 See merge request: cann/asc-devkit!6225 | 9 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
fix: 修复 C API PIPE_ALL 同步并更新 Cast 文档 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !6310 merge fix/c-api-sync-pipe-all into master fix: 修复 C API PIPE_ALL 同步并更新 Cast 文档 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 修复 C API 在 PIPE_ALL 场景下的同步实现,将相关接口统一改为 pipe_barrier(pipe_t::PIPE_ALL);同时同步更新 Reg Cast 文档的数据类型表和 RoundMode 枚举名称。 ## 关联的Issue 无 ## 测试 已执行 git diff --check;推送时 GitCode 远程 Git Hooks 检查通过。未执行完整编译和单元测试。 ## 文档更新 更新 docs/zh/api/SIMD-API/basic_api/reg_vector_compute/type_conversion/Cast.md,补充 int32_t -> uint16_t、half -> float,并修正 CAST_HYBRID。 ## 类型标签 - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6310 | 30 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
修复 asc_get_sub_block_num 在 AIC(Cube 核)上的返回值错误问题。 Co-authored-by: zhuangjinjun<zhuangjinjun@huawei.com> # message auto-generated for no-merge-commit merge: !6433 merge fix-0930 into master 修复 asc_get_sub_block_num 在 AIC(Cube 核)上的返回值错误问题。 Created-by: printfscanfmain Commit-by: zhuangjinjun Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 asc_get_sub_block_num 在 AIC(Cube 核)上的返回值错误问题。原实现直接返回 get_subblockdim(),但在 AIC 核上不存在 sub block 切分,应固定返回 1。因此在 impl/c_api/memory_base_impl/sys_var_intf_impl.h 与 impl/c_api/reg_base_impl/sys_var_intf_impl.h 两个实现文件中,为 asc_get_sub_block_num 增加 ASC_IS_AIC 分支判断:当处于 AIC 核时返回 1,否则维持原有 get_subblockdim() 行为。同时补充 npu_arch_2201 与 npu_arch_3510 的单元测试,分别覆盖 AIV(返回 get_subblockdim() 值)和 AIC(返回 1、不调用 get_subblockdim)两条路径,并在 TearDown 中恢复 g_coreType 以避免用例间状态污染。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> [#1798](https://gitcode.com/cann/asc-devkit/issues/1798) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 已补充/修改 tests/api/c_api/npu_arch_2201/sys_var/test_get_sub_block_num.cpp 与 tests/api/c_api/npu_arch_3510/sys_var/test_get_sub_block_num.cpp 单元测试:get_sub_block_num_AIV_Succ 验证 AIV 场景返回 mock 的 2,get_sub_block_num_AIC_Succ 验证 AIC 场景返回 1 且 get_subblockdim 调用次数为 0。建议运行对应 C API UT 用例验证通过。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 无 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6433 | 24 天前 | |
feat: 9201架构新增类型转换C API接口 (add e6m22bfloat16 e8m02bfloat16 half2e4m3 and half2e5m2 及asc_cast/asc_cast_merge) Co-authored-by: wuzhengzhen<wuzhengzhen@huawei.com> # message auto-generated for no-merge-commit merge: !6623 merge test_half2xxx_from_master into master feat: 9201架构新增类型转换C API接口 (add e6m22bfloat16 e8m02bfloat16 half2e4m3 and half2e5m2 及asc_cast/asc_cast_merge) Created-by: wuzhengzhen Commit-by: wuzhengzhen Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 为 9201 新增 half -> FP8 E4M3FN / E5M2 转换 C API:asc_half2e4m3_rn*、asc_half2e5m2_rn*,覆盖饱和与非饱和、EVEN/ODD 位置、zeroing/merging、返回值重载及 _v2 形式;同时接入通用 asc_cast / asc_cast_merge。声明见 include/c_api/reg_compute/reg_convert.h:8546,9201 实现见 impl/c_api/reg_base_impl/ npu_arch_9201/reg_convert_intf_impl.h:2413。 - 补齐相关转换能力:float -> half 的 merge 形式,E6M2/E8M0 -> bfloat16,以及 E6M2 -> bfloat16 的 reciprocal 转换。 - 新增寄存器打包 API:asc_pack_to_low/high 和多种整数、half、float 类型的 asc_pack_datablock。 - 新增 FP8 E6M2 的 asc_gather / asc_gather_datablock 重载。 - 更新公共导出、host-header checker、类型别名及 CPU stub,使上述接口能完成 host 编译与 UT mock。 - 新增 8 个 UT 文件,覆盖 E4M3/E5M2 转换、float2half、E6M2/E8M0 转 BF16、reciprocal 转换、pack 和 E6M2 gather;并扩展 VCVT 测试辅助宏以校验 round、saturation、position、mode 等指令参数。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6623 | 8 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
fix: use public utils includes in c api Co-authored-by: flyingXLB<sz2516004@nuaa.edu.cn> # message auto-generated for no-merge-commit merge: !6373 merge fix/master-c-api-public-utils-includes into master fix: use public utils includes in c api Created-by: flyingXLB Commit-by: flyingXLB Merged-by: cann-robot Description: ## 描述 本 PR 将 C API 中对工具头文件的引用从 impl 私有实现路径切换为公开的 utils 路径,使 c_api 相关头文件不再依赖 impl/utils 下的实现侧头文件。具体涉及 impl/c_api/reg_base_impl/utils_impl.h 与 include/c_api/defs/type.h 两个文件中的 #include 路径调整,属于头文件依赖路径的修正。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6373 | 28 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
同步ascend960相关代码 Co-authored-by: Ekoxier<husizhe@huawei.com> Co-authored-by: hyolee<lihongbo14@huawei.com> Co-authored-by: maohaodi<maohaodi@huawei.com> Co-authored-by: xumengxuan<xumengxuan2@huawei.com> Co-authored-by: zhangfeifan0709<zhangfeifan7@huawei.com> Co-authored-by: zhangjiru<zhangjiru1@huawei.com> # message auto-generated for no-merge-commit merge: !6755 merge adapt_121 into master 同步ascend960相关代码 Created-by: maohaodi Commit-by: maohaodi;Ekoxier;zhangjiru;xumengxuan;hyolee;zhangfeifan0709 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 同步ascend960相关代码,包括basic_api, c_api, tensor_api等,不含adv_api ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6755 | 6 天前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 | |
refactor: 按公开接口头平铺 C API 实现并简化调用层 Co-authored-by: lihuaichao<lihuaichao1@huawei.com> # message auto-generated for no-merge-commit merge: !5773 merge capi_impl_refactor into master refactor: 按公开接口头平铺 C API 实现并简化调用层 Created-by: lihuaichao Commit-by: lihuaichao Merged-by: cann-robot Description: ## 描述 C API 原实现使用多层聚合头,公开头会引入无关实现。本变更按实际声明接口的公开头平铺实现,并消除无意义的私有函数转发层。 - 将原 instr_impl 目录重组为 90 个实现头:memory_base_impl 下 26 个、reg_base_impl 公共部分 45 个、npu_arch_3510 专用部分 19 个。共享工具实现保留为 utils_impl.h。 - 将 asc_copy_l0c2ub、asc_copy_gm2ub_align、asc_copy_ub2gm_align、asc_copy_l0c2gm、asc_copy_l0c2l1 的131个公共实现重载移动到3510专用头;保留已有24个废弃重载,公共头按架构宏包含对应专用头。 - 公开头只直接包含同名 *_intf_impl.h。reg_base_impl 公共头通过 #if defined(__NPU_ARCH__) && (__NPU_ARCH__ == 3510) 包含同名专用头,专用头不反向包含公共接口实现头;为三个 composite 接口增加公共分发入口。 - 架构专用头统一在公共头顶部包含;去掉 cache_ctrl、spr 公共函数外围的3510限制。asc_set_atomic_none 直接调用 set_atomic_none,消除对公共头后续定义的依赖。 - reg_addr_reg 的公共接口和3510旧接口直接调用 vag_*,保留AIV保护、非AIV默认返回和废弃标记;移除12个宏生成的_impl转发重载,消除顶部include的声明顺序依赖。 - memory_base_impl 和 reg_base_impl 移除重复的 *_impl 私有转发层,基础接口直接实现底层指令调用,保留必要的参数及返回值适配,以及实际承担同步分发职责的辅助函数。公开声明、重载和原有架构支持范围保持不变。 - composite 接口直接组合底层指令,删除对非 sync 接口实现头的冗余依赖;utils_impl.h 已实现的同步和 mask 辅助操作复用现有工具函数,保留原有条件执行语义。 - 为 sync composite 接口补齐与对应基础操作一致的 AIC/AIV 保护,计算和同步一起受保护,避免在非目标核执行同步。 - 清理 composite 中的34组冗余作用域和多余空行,合并4处重复临时变量并保留地址更新语义。storeunalign composite 恢复 asc_get_vf_len 查询及所需 sys_var.h 依赖,零偏移参数直接使用0。 - 90 个实现头沿用原有 #warning、保护顺序和 UNDEF_ASCENDC_C_API_INCLUDE_COMPILER_INTERNAL_HEADERS_ASCENDC 清理标记,按新路径调整防重复包含宏和警告路径。 - 按实际依赖删除冗余 defs.h 和 utils_impl.h 引用,保留宏及工具函数所需依赖;清理仅有接口名的注释和 49 个空 __asc_aicore 命名空间块,保留有实际内容的命名空间及算法、参数和约束说明。新增或更名的实现头使用 2026 年版权信息。 - 同步最新 master,解决旧 vector_compute_impl.h 的修改/删除冲突,将上游三个 asc_sub_relu_sync 重载的同步修复迁移到新的 memory_base_impl/vector_compute_composite_intf_impl.h。 - 更新目录文档和已有测试引用;classify_rule.yaml 中旧路径的调整保持在本 PR 中。 - 清理22个实现头中的330行冗余、悬空或重复分类注释及多余空行;删除memory_base_impl/vector_datamove_intf_impl.h中已无使用点的两组默认值宏及其重复定义、清理代码,保留硬件位域、使用约束和废弃替代说明。 - 删除两个vector_permute_sel实现头中未调用的ASC_TRANSTO5HD_B8_CALL宏,移除reg_permute_sel对storeunalign实现头的冗余包含,合并两个leakyrelu_sync重载的重复mask恢复,清理两条不准确的storeunalign分类注释。 - 合并master提交4511da2b149ba2bc29d1143a5e21742777199592,解决14个旧聚合头修改/删除冲突,将主线1,414处废弃标记调整迁移到扁平实现;保留接口和底层实现,旧instr_impl目录不恢复。 - sys_var.h先包含defs.h再包含架构实现,确保废弃标记宏在实现使用前定义,支持2201/3510独立包含该公开头。 - 同步master 2abedf248的回退变更:memory/reg的utils统一引用恢复后的impl/utils/sys_macros.h,保留主线恢复的两个兼容入口头。 ## 关联的Issue 无。 ## 测试 接口迁移后已完成公开入口及实现头语法编译、接口对比。本次格式修复使用与CI一致的clang-format 18.1.8,调整两处vadds调用的参数换行,无非空白字符变更;UT、安装目录和重复包含结果来自此前验证。 - 对比主线提交 83f55b37a8ad61662b97a61ce2646f6c660b64df:74个公开头、90个新实现头与659个旧实现头核对,2201/3510公开声明和公开实现新增、删除均为0;122个架构/公开头组合中6,178条原有接口引用关系保持可达。 - 2201/3510 host、单头模式及 device 公开头编译:174 项通过。 - 90项实现头依赖语法编译全部通过(先提供公开入口的基础定义,3510专用头通过公共头引入,不要求裸impl独立包含)。宏展开核对仅剩8个必要同步分发helper。 - 此前87项公开入口重复包含和临时宏清理检查通过。 - 此前四组C API CPU/mock UT共5,057项通过,覆盖2201/3510的AIC/AIV;本次未重跑。 - 此前全新安装目录下5项入口编译通过,无源码C API头回退。 - 本次对150个相关代码文件执行clang-format 18.1.8,格式修复后dry-run和pre-commit clang-format均通过。空白、EOF、YAML、大文件、冲突标记、私钥、拼写和OAT hook通过;无适用文件的JSON、ruff检查跳过。 - 本地完整pre-commit的Markdown检查因已有文档链接 http://optipng.sourceforge.net/ 网络不可达未通过;未修改该无关文档或检查配置,远端检查结果需以新提交CI为准。 - 最近的注释和无用宏清理已通过22个文件的clang-format 18.1.8及git diff --check;逐文件剔除注释、空白和指定无用宏后与修改前一致,未改动函数实现;本轮未重跑编译或UT。 - 合并后全量对照master 4511da2b1及原目录6ee902416:公开声明/实现无新增或缺失,原有6,178条入口匹配关系保留;90个实现头语法检查通过。四组CPU/mock UT重新构建后5,057项全部通过。 - sys_var.h包含顺序修复后,重新执行全部174项公开入口语法检查,174项全部通过,之前6项sys_var独立包含失败已消除;clang-format 18.1.8和git diff --check通过。本次仅调整包含顺序,未重复运行UT。 - 再次同步master 2abedf248后,含恢复的兼容入口在内共178项公开入口语法检查全部通过;90个实现头的包含路径和保护宏静态检查通过,相关文件clang-format检查通过。 - 未运行真实 NPU 测试。上述检查不将原有跨架构的声明/实现差异判定为新增缺陷,也不删除这些接口。 ## 文档更新 更新中英文 C API 贡献指南、目录结构说明以及已有 C API UT 目录映射,说明公共入口、架构专用实现与必要辅助函数的组织方式。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5773 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 23 天前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 24 天前 | ||
| 8 天前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |