| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(jit): support pointer and struct tiling constants Co-authored-by: XuebinYang<yangxuebin6@hisilicon.com> # message auto-generated for no-merge-commit merge: !5719 merge feat/jit-tiling-arg-type into master feat(jit): support pointer and struct tiling constants Created-by: XuebinYang Commit-by: XuebinYang Merged-by: cann-robot Description: ## 描述 JIT 常量化编译此前要求所有 constant_infos 项提供 byte_size,并与 argsBytes 严格相等,无法表达按值传递的结构体 tiling。 新增 constant_infos[].arg_type,支持 pointer 和 struct,缺省为 struct。ACLNN manifest 生成器固定输出 arg_type: pointer 和按 kernel 确定的 byte_size,不提供类型配置。pointer 常量使用 manifest 的 byte_size;struct 常量只使用 argsBytes[parameter_index],禁止在 manifest 中提供 byte_size。pack validator 和运行时均拒绝 struct 携带 byte_size。 公用 ManifestConstant 类统一 exporter 与 runtime 的 constant 字段契约。ParseDefinition 解析并校验定义,BindArgument 绑定参数地址与大小,屏蔽 pointer/struct 差异;私有成员维护解析及绑定状态,失败保留原状态,重新解析成功后清除旧绑定。错误直接记录 plog。删除 ConstantSizeRule 和自由解析入口,模块兼容 C++11,不依赖 ACLRTC。 ACLRTC 计划构建按解析和绑定两个职责封装。CompilationManifestParser 选择本次 kernel 的 basic/SK 配置,复用公用常量解析,输出持有数据的 CompilationManifest;只保留 CompilationManifest、ManifestCommand 两个解析层接口结构体。KernelCompilationPlanBuilder 直接接收解析结果,绑定常量、路径、环境和命令选项,在全部检查成功后才读取常量字节,失败不修改调用者输出。删除旧 kernel_manifest_parser、ManifestText、重复的绑定中间结构和独立组装步骤,Builder 不再接触 JSON 或判断 pointer/struct。 能力不区分 ACLNN 或尖括号来源,不添加 ACLNN 标记;两种入口均可按参数语义使用 pointer/struct。 删除未产生行为差异的 Parsed/Bound 状态,仅保留 definitionParsed_。路径与环境展开明确命名为 ExpandPathAndEnvironmentReferences,有上限的整数读取命名为 ReadBoundedNonnegativeInteger,解析和执行命令的参数字段统一为 arguments。 Builder 先绑定编译和链接命令,最后由 BuildConstantSourcePatches 完成全部常量绑定、目标展开和 patch 生成,任一步校验失败都不读取常量内存。请求侧删除 KernelCompilationVariant,使用 enableSuperKernel 表达 SK 开关;ManifestObjectKind 仅描述单个 basic/sk 对象。调整现有保护内存 UT,使其覆盖绑定阶段的命令与链接失败。 命令先按顺序展开全部 options 引用,再将首项作为 executable,其余作为 arguments。支持首项引用同时包含可执行文件及多个选项,拒绝展开后的空命令;不递归展开 options 引用。 ParseSelectedObjects 按请求选择编译对象。启用 SK 但所选 kernel 只有 basic 时记录 INFO 日志并回退普通编译,不加入 SK 专用选项;basic 缺失或已存在的 sk 配置错误仍返回失败。复用现有 UT 比较回退与 basic 模式的编译、链接命令,不增加用例数量。 保留受保护内存、非零参数索引的 pointer/struct 混合用例及解析数据所有权检查。UT 按职责收敛:字段与参数绑定校验集中在 ManifestConstant,删除 Parser/Builder/exporter 的重复校验矩阵,公共测试仅在 exporter 目标运行一次。补充状态重置、失败保留原状态和重复解析/构建的必要回归。 两个 Python producer 镜像同步修改。旧 pointer manifest 必须补充 arg_type: pointer 或重新生成。 ## 关联的Issue 暂无关联 Issue。 ## 测试 - 基于 CANN master 8668f3ffc 同步,无冲突。 - Manifest 生成器单元测试:14/14 通过。 - Exporter C++ 单元测试:80/80 通过。 - ACLRTC C++ 单元测试:192/192 通过。 - 公用 constant 测试仅在 exporter 中运行;本轮封装重构后 C++ 测试总执行数由 276 项减少至 272 项,保留整数边界、字段契约及失败输出不变等覆盖。 - ACLRTC 非 UT Release 动态库和 C++11 exporter 生产构建通过。 - 覆盖显式及缺省 struct、禁止 struct byte_size、pointer 必填 byte_size、两种大小来源、零长度和非法参数。 - 未执行 NPU 二级冒烟及算子泛化。 ## 文档更新 本 PR 不提交文档文件。 ## 类型标签 - [x] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5719 | 26 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 13 天前 | |
style: ruff 配置行宽 120 并关闭 magic trailing comma Co-authored-by: zhangyujia77<zhangyujia37@huawei.com> # message auto-generated for no-merge-commit merge: !6286 merge style/ruff-line-length-120 into master style: ruff 配置行宽 120 并关闭 magic trailing comma Created-by: zhangyujia77 Commit-by: zhangyujia77 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ruff.toml 新增两项配置并据此重排全仓 Python 代码: line-length = 120 行宽从默认 88 放宽到 120 [format] skip-magic-trailing-comma = true 忽略末尾逗号的强制展开语义 ### 为什么改 line-length ruff 的 line-length 此前**从未在仓库任何地方配置过** —— ruff.toml 只设了target-version,全仓搜 line-length 零命中,pre-commit 的 ruff hook 也没传参。 所以生效值 88 是 ruff 内置默认(沿用 Black 的约定),**不是评估过的技术决策**: $ ruff check --show-settings Settings path: ".../asc-devkit/ruff.toml" linter.line_length = 88 120 有三层依据: 1. **本仓 C++ 侧已定 120** —— .clang-format: ColumnLimit: 120。同一仓库 C++ 120、Python 88 本身不一致。 2. **CANN 生态其余 Python 仓统一为 120** —— pyasc、pypto、pto-isa、ops-test-kit、vllm-ascend(ruff),torch_npu、pytorch(flake8)。asc-devkit 是其中唯一没配的。 3. **本仓 Python 历史上事实遵守 120** —— ruff-format 落地前,非空行 P99.5 = 119,99.82% 的行 ≤ 120;超 120 的 38 行基本是嵌在 Python 里的 C++ 模板与宏定义。 88 列会把多参数调用强制拆成逐参数一行,一条语句常常变 3-5 行: python # 前(1 行) raise RuntimeError("Length of ASCENDC_TPL_UINT_{} {} is too short.".format(self.macro_type, self.name)) # 后(5 行) raise RuntimeError( "Length of ASCENDC_TPL_UINT_{} {} is too short.".format( self.macro_type, self.name ) ) ### 为什么关 magic trailing comma 末尾逗号会让 ruff-format 强制保持展开,即使该行放得下。统计范围内现存 886 处此类逗号,**绝大多数是 88 列时期 ruff 自己折行时补上的,并非作者意图** ——换到 120 列后这些调用本可收拢,却因那个自动留下的逗号继续保持展开。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [x] 🧹 chore: 代码格式修改 See merge request: cann/asc-devkit!6286 | 13 天前 | |
扩展pre-commit hooks (第三批目录) Co-authored-by: Water8L<15279328600@163.com> # message auto-generated for no-merge-commit merge: !4195 merge master into master 扩展pre-commit hooks (第三批目录) Created-by: Water8L Commit-by: Water8L Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在.pre-commit-config.yaml中根据trailing-whitespace和end-of-file-fixer hook,修改剩下全部目录中对应不合规范的文件 ## 关联的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!4195 | 2 个月前 | |
adapt to Ascend910_9363 Co-authored-by: chupeng1996<chupeng5@huawei.com> # message auto-generated for no-merge-commit merge: !5429 merge master into master adapt to Ascend910_9363 Created-by: chupeng1996 Commit-by: chupeng1996 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> adapt to Ascend910_9363 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> NA ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 编包装包正常 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> NA ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5429 | 1 个月前 | |
fix(aclrtc): 修复编译选项与临时文件清理静态告警 Co-authored-by: XuebinYang<yangxuebin6@hisilicon.com> # message auto-generated for no-merge-commit merge: !5846 merge fix/aclrtc-static-warnings-recheck into master fix(aclrtc): 修复编译选项与临时文件清理静态告警 Created-by: XuebinYang Commit-by: XuebinYang Merged-by: cann-robot Description: ## 描述 修复 aclrtc 和公共文件工具的三项静态告警,保持原有选项拒绝和临时文件清理行为: - 短、长输出选项统一使用 sizeof("选项文本") - 1U 计算前缀长度,替代 -o 判断中的魔法数字。 - 为不修改会话成员的 RunKernelSpecialization 声明和定义添加 const。 - 在确认临时文件所有权后独立调用 unlink,避免逻辑运算符右侧包含副作用。 ## 关联的Issue 无独立 Issue;处理静态检查告警,不新增功能或改变流程。 ## 测试 - 现有文件工具单测:17/17 通过,覆盖路径校验、临时文件冲突、异常清理及替换失败。 - 现有 aclrtc 单测:192/192 通过。 - 三个修改源文件使用生产编译参数(含 -Werror)执行语法检查:通过。 - git diff --check:通过。 - 提交前检查:私钥检测、OAT、clang-format、拼写及 Markdown 链接检查均通过。 - 未运行原静态扫描器复扫;本次不涉及设备算子,无二级冒烟或算子泛化测试。 ## 文档更新 无公开接口文档变更;路径告警的误报依据记录于本 PR。 ## 类型标签 - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5846 | 24 天前 | |
扩展pre-commit hooks (第三批目录) Co-authored-by: Water8L<15279328600@163.com> # message auto-generated for no-merge-commit merge: !4195 merge master into master 扩展pre-commit hooks (第三批目录) Created-by: Water8L Commit-by: Water8L Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 在.pre-commit-config.yaml中根据trailing-whitespace和end-of-file-fixer hook,修改剩下全部目录中对应不合规范的文件 ## 关联的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!4195 | 2 个月前 | |
fix: opbuild version wrapper null check Co-authored-by: Lyear-iu<liuyi424@huawei.com> # message auto-generated for no-merge-commit merge: !5509 merge opbuild_fix into master fix: opbuild version wrapper null check Created-by: liuyi424 Commit-by: Lyear-iu Merged-by: cann-robot Description: ## 描述 修复 opbuild 生成的版本包装函数在 GetWorkspaceSize 失败后仍继续调用 NnopbaseDisableOptionalInput 的问题。现在失败时直接返回,成功路径仅在 executor != nullptr 时执行后处理。 ## 关联的Issue [[Bug-Report|缺陷反馈]: opbuild 版本 wrapper 在 executor 为空时解引用崩溃 ](https://gitcode.com/cann/asc-devkit/issues/1620) ## 测试 已更新ut 已通过上板验证 ## 文档更新 ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5509 | 1 个月前 | |
[feat] add asc_compile_exporter Co-authored-by: sjtulxh<liaoxiaohui3@hisilicon.com> # message auto-generated for no-merge-commit merge: !4980 merge master into master [feat] add asc_compile_exporter Created-by: sjtulxh Commit-by: sjtulxh Merged-by: cann-robot Description: ## 描述 新增 asc_compile_exporter 工具,用于收集指定目录下的 Manifest JSON 及相关资源,并将其导出为可动态加载的编译资源共享库。 主要改动: - 新增 asc_compile_exporter 命令行工具及 Manifest Bundle 生成模块。 - 支持指定包 ID、Manifest 搜索目录、输出路径、工作目录、并行任务数及临时目录保留选项。 - 增加路径合法性、符号链接、资源数量和资源大小等安全检查。 - 接入 AscendC 工具日志接口。 - 增加 CMake 构建、安装及 JSON 三方库依赖。 - 更新 asc-devkit 打包清单和版本目录软链接处理。 - 新增模块单元测试和完整导出流程测试,并接入测试集合。 ManifestBundleCompiler | +--> CollectedManifestRepository 发现并加载 Manifest +--> BuildWorkspace 管理临时构建目录 +--> BundleSourceGenerator 生成 ABI、Manifest 源码和 Makefile +--> MakeBundleBuilder 调用编译器构建 SO +--> BundlePublisher 原子发布最终 SO manifest_bundle_compiler.cpp:请求校验、任务数计算和整体流程编排,目标控制在约 100 行。 - manifest_bundle_types.h:保存内部 DTO ResourceFile、ManifestUnit,不安装、不暴露为公共 API。 - CollectedManifestRepository:Manifest 发现、JSON base_dir 读取、资源递归加载、排序和容量限制;ResourceBudget 保留为其 .cpp 内部实现。 - BundleSourceGenerator:生成 ABI 头、Manifest 翻译单元、Bundle 汇总源码和 Makefile。 - BuildWorkspace:负责私有临时目录的创建、移动语义、--keep-temp 和 RAII 清理。 - MakeBundleBuilder:查找 make/编译器、构造环境变量并启动构建;原 ExecutableLocator 收敛为其 .cpp 私有函数,不再保留独立类。 - ProcessRunner:封装 fork/execv、超时、进程组终止和退出状态处理。 - BundlePublisher:输出软链接检查、同文件系统 rename 和跨文件系统安全发布 ## 关联的Issue 无。 ## 测试 - 构建 asc_compile_exporter 生产目标,构建通过。 - 构建并运行 ascendc_ut_asc_compile_exporter。 - 共执行 22 个测试用例,全部通过。 - 验证生成的 Bundle 共享库可以正常加载并读取 Manifest 和资源。 - 执行打包 XML 格式校验,通过。 - 执行安装软链接脚本语法检查,通过。 - 执行 git diff --check,通过。 ## 文档更新 无文档更新。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [x] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!4980 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 26 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |