| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: generate arch5162 unsupported ACL entry stubs Co-authored-by: zhangpengpeng8<zhangpengpeng8@hisilicon.com> # message auto-generated for no-merge-commit merge: !946 merge local_dev into master refactor: generate arch5162 unsupported ACL entry stubs Created-by: zhangpengpeng8 Commit-by: zhangpengpeng8 Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 为 arch5162 增加 ACL 入口侧自动打桩能力,仅影响 arch5162 独立 libruntime.so: 1. 以 acl_rt_wrapper.h 中 5 组 X-Macro 为唯一签名来源,生成器解析全部 403 个 ACL C++ 包装入口,避免手工复制函数声明和参数。新增 X-Macro 接口对 arch5162 默认不支持。 2. 使用 arch5162_unsupported_acl_api.def 管理 309 个不支持入口;接口能力范围来自 [PR4491](https://gitcode.com/cann/runtime/merge_requests/4491),其中 294 个返回 ACL_ERROR_RT_FEATURE_NOT_SUPPORT、5 个返回空指针、10 个返回零值。aclrtNonBlockingLaunchBegin、aclrtNonBlockingLaunchEnd 已按默认策略纳入强桩。 3. 生成的 aclXxxImpl 强桩编入 arch5162 libruntime.so;同一产品下真实 ACL Impl provider 使用弱符号和独立函数段,强桩覆盖后由 --gc-sections 回收未使用的真实实现。 4. PR4491 的 baseline 明确支持 92 个 ACL API:91 个是 X-Macro 生成入口,aclAppLog 是生成目录外的可变参数手写入口。未取得产品支持结论的新接口不能因为进入 X-Macro 而自动成为 arch5162 真实实现。 5. X-Macro 的 403 个入口拆分为:91 个支持入口、309 个强桩入口,以及 aclmdlInitDump、aclmdlSetDump、aclmdlFinalizeDump 3 个待确认 Dump 入口。91 个支持入口和 3 个待确认入口共保留 94 个弱真实 provider,不能将 94 全部统计为“支持入口”。该机制通过 arch5162 目标属性启用,不改变其他产品的符号属性和构建流程。 6. 生成器只生成产品强桩和 provider 报告。测试侧提交固定的 C++ X-Macro 测试套,直接展开同一份产品清单;每个清单接口同时验证 aclXxxImpl 与公开 aclXxx 的返回策略,不再由 Python 生成测试源码。 7. ACL_API_REAL_PROVIDER_COUNT 固定当前 94 个弱真实 provider。新增 X-Macro 接口若未同步加入不支持清单,生成阶段会直接失败;ACLRT 接口开发 Skill 已加入同一同步要求。 非 ACL_ERROR_RT_FEATURE_NOT_SUPPORT 的 15 个接口如下: - NULLPTR 返回 nullptr:aclCreateDataBuffer、aclGetDataBufferAddr、aclrtAllocatorCreateDesc、aclrtCreateBinary、aclrtCreateGroupInfo。 - ZERO 返回 0:aclDataTypeSize、aclFloat16ToFloat、aclFloatToFloat16、aclGetDataBufferSize、aclGetDataBufferSizeV2、aclrtGetDeviceIdFromExceptionInfo、aclrtGetErrorCodeFromExceptionInfo、aclrtGetStreamIdFromExceptionInfo、aclrtGetTaskIdFromExceptionInfo、aclrtGetThreadIdFromExceptionInfo。 [PR4630](https://gitcode.com/cann/runtime/merge_requests/4630) 给出了 ACL 入口桩边界、能力范围推导、返回策略、弱真实 provider 和验证方法的完整设计分析。 调用路径保持为 libacl_rt.so 公开 ACL 入口调用 libruntime.so 中同名 aclXxxImpl。因此不支持能力在 ACL 路由入口直接结束,不再进入共享的 rtXxx 路径,也不会因为底层 Runtime API 被支持接口复用而误伤支持能力。 本 PR 仅包含实现、构建脚本、测试及 .claude/skills/aclrt-interface-development/SKILL.md 修改;不修改其他 Markdown 文件或产品文档。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 使用 PRODUCT=ascend5162a 配置并构建 runtime、acl_rt、acl_rt_impl 和 runtime_utest_arch5162,全部通过。 2. ACL 桩生成器单测 9/9、既有 Runtime 桩生成器单测 9/9 通过。 3. 固定 ACL 双入口测试 309/309 通过;rebase 最新 master 后,runtime_utest_arch5162 全量 1364/1364 通过。 4. 普通 ascendcl_utest 全量 1191/1191 通过,确认 arch5162 弱实现配置没有泄漏到普通 ACL UT 目标。 5. ELF 校验确认不支持入口 aclrtDeviceL2CacheFlushImpl 为强桩,支持入口 aclrtSetDeviceImpl 保留弱真实实现;ldd -r libacl_rt.so 未发现未解析符号。动态加载 libacl_rt.so 调用 aclrtDeviceL2CacheFlush(nullptr) 返回预期的 207000。 6. 功能引入时与 55c796246 使用相同配置对比:去符号后的 arch5162 libruntime.so 从 5,680,728 字节降至 5,193,304 字节,减少 487,424 字节,约 8.58%。当前版本进一步将两个新增 NonBlocking 入口纳入强桩,不扩大 arch5162 支持范围。 7. 对本次修改文件执行 pre-commit run --files ... 通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 本次变更不修改产品文档;Markdown 变更仅限 .claude/skills/aclrt-interface-development/SKILL.md - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 PR 采用三个可独立验证的提交:第一步引入空清单生成框架;第二步填充 arch5162 清单并启用强桩覆盖;第三步落实新增 ACL 接口默认不支持的生成门禁和 ACLRT 接口开发约束。出现问题时可按提交粒度回退。 已 rebase 至 origin/master@fa7dd7df2ddfd6b75c7ad6168b6f2dc99d1fe492,当前 head 为 22faac59e9a11a5307fdeda3aaa2810ad60739eb。最终 head 的 GitCode [线上 CI](https://gitcode.com/CANN/runtime/actions/runs/9b475d874cd1463aa183fc7001da08cc) 已通过(COMPLETED,无失败任务)。 See merge request: cann/runtime!946 | 13 天前 | |
docs: 添加 AGENTS.md 和 opencode 配置 Co-authored-by: wangtao43<wangtao43@huawei.com> # message auto-generated for no-merge-commit merge: !1607 merge master into master docs: 添加 AGENTS.md 和 opencode 配置 Created-by: wangtao43 Commit-by: wangtao43 Merged-by: cann-robot Description: ## 概述 为 runtime 项目添加了 AGENTS.md 文件和 opencode 配置,支持 agent 工作流程。 ## 主要变更 ### 新增文件 - **AGENTS.md**: 项目概述、构建命令、目录结构、开发规范 - **.claude/CLAUDE.md**: Agent 提示文件 - **.claude/settings.json**: 权限和插件配置 - **.claude/skills/default-skills/**: 默认 skills 安装配置 - SKILL.md: 技能描述 - scripts/install-default-skills.sh: 安装脚本 - **.opencode/**: opencode 项目配置 - README.md: Agent skills 规划和工作流程 - opencode.json: 插件和权限配置 - plugins/install-default-skills.ts: 自动安装插件 - **.gitignore**: 忽略自动安装的 skills ## 功能说明 这些配置为 runtime 项目提供了 agent 工作支持: - **AGENTS.md**: 为 agent 提供项目工作指导 - **默认 skills**: 自动安装 gitcode-pr 和 gitcode-issue - **opencode 配置**: 定义项目特定的 skills 规划 ## 兼容性 - gitcode-pr 和 gitcode-issue 从公共仓自动安装 - 不在本地仓库维护这些共享 skills - 通过 .gitignore 忽略自动安装的 skills See merge request: cann/runtime!1607 | 5 个月前 | |
docs: 添加 AGENTS.md 和 opencode 配置 Co-authored-by: wangtao43<wangtao43@huawei.com> # message auto-generated for no-merge-commit merge: !1607 merge master into master docs: 添加 AGENTS.md 和 opencode 配置 Created-by: wangtao43 Commit-by: wangtao43 Merged-by: cann-robot Description: ## 概述 为 runtime 项目添加了 AGENTS.md 文件和 opencode 配置,支持 agent 工作流程。 ## 主要变更 ### 新增文件 - **AGENTS.md**: 项目概述、构建命令、目录结构、开发规范 - **.claude/CLAUDE.md**: Agent 提示文件 - **.claude/settings.json**: 权限和插件配置 - **.claude/skills/default-skills/**: 默认 skills 安装配置 - SKILL.md: 技能描述 - scripts/install-default-skills.sh: 安装脚本 - **.opencode/**: opencode 项目配置 - README.md: Agent skills 规划和工作流程 - opencode.json: 插件和权限配置 - plugins/install-default-skills.ts: 自动安装插件 - **.gitignore**: 忽略自动安装的 skills ## 功能说明 这些配置为 runtime 项目提供了 agent 工作支持: - **AGENTS.md**: 为 agent 提供项目工作指导 - **默认 skills**: 自动安装 gitcode-pr 和 gitcode-issue - **opencode 配置**: 定义项目特定的 skills 规划 ## 兼容性 - gitcode-pr 和 gitcode-issue 从公共仓自动安装 - 不在本地仓库维护这些共享 skills - 通过 .gitignore 忽略自动安装的 skills See merge request: cann/runtime!1607 | 5 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 13 天前 | ||
| 5 个月前 | ||
| 5 个月前 |