| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 统一头文件 include guard 为 #pragma once 并添加 CI lint 规则 Co-authored-by: Zhang Hua<1302896824@qq.com> # message auto-generated for no-merge-commit merge: !173 merge unify-include-guards into master refactor: 统一头文件 include guard 为 #pragma once 并添加 CI lint 规则 Created-by: zhanghua145 Commit-by: Zhang Hua Merged-by: cann-robot Description: ## 描述 统一仓库中所有头文件的 include guard 风格为 #pragma once,解决当前 #ifndef/#define/#endif 与 #pragma once 混用导致的风格不一致问题。 ## 关联 Issue 关联 Issue #162 ## 变更内容 ### 1. 统一现有头文件(125 个文件,+456/-698) | 类别 | 数量 | 说明 | |------|------|------| | #ifndef → #pragma once | 215 个 | 传统宏保护替换为 #pragma once | | 补充 #pragma once | 1 个 | cgerc_kernel_impl.h 原先缺少 include guard | | agent 模板同步 | 2 个 | 模板文件同步转换 | | **净减少行数** | **242 行** | 456 行增加,698 行删除 | ### 2. 添加 CI lint 检查脚本 新增 scripts/ci/check_pragma_once.sh,用于检查 PR 中新增/修改的 .h/.hpp 文件是否使用 #pragma once。 **调用方式**(与现有 scripts/ci/run_example.sh 一致,接收 PR 文件列表): bash bash scripts/ci/check_pragma_once.sh <pr_filelist.txt> pr_filelist.txt 格式为每行一个文件路径(相对仓库根目录),仅检查 .h/.hpp 文件,其他文件类型自动跳过。 **检查规则**: - 必须使用 #pragma once,拒绝 #ifndef include guard 和无 guard 的文件 - 自动跳过第三方目录(.opencode/、asc-devkit/ 等) ## ⚠️ 需要维护者操作:接入 CI 流水线 本 PR 提供了 scripts/ci/check_pragma_once.sh 检查脚本,但**尚未接入 CI 流水线**。需要维护者在 GitCode 平台侧的流水线配置中新增一个步骤,在编译前调用该脚本。 建议的接入方式(参考现有 run_example.sh 的调用模式): yaml # CI 流水线中新增 lint 步骤(在编译步骤之前) - name: check-pragma-once script: | # pr_filelist.txt 由平台自动生成,包含 PR 变更文件列表 bash scripts/ci/check_pragma_once.sh pr_filelist.txt 在维护者接入流水线之前,该脚本也可通过以下方式手动使用: - **本地验证**:bash scripts/ci/check_pragma_once.sh <文件列表> - **pre-commit hook**:已集成到 .pre-commit-config.yaml(需开发者自行安装 pre-commit) ## 关于 Issue 中提到的 3 个缺少 guard 的头文件 Issue #162 提到有 3 个头文件缺少标准 include guard。经逐 commit 追溯历史,原始 3 个文件为: | # | 文件 | 当前状态 | |---|------|----------| | 1 | blas/gerc/cgerc/arch22/cgerc_kernel_impl.h | 仍存在,**本次已修复** | | 2 | blas/cgerc/cgerc_kernel_impl.h | 已被删除(cgerc 目录重构,迁移至 blas/gerc/cgerc/arch22/) | | 3 | blas/common/kernel_launch/aclblas_kernel_do.h | 已被删除(commit cc4d43c "del common kernel launch header") | 第 2、3 个文件已在其他 PR 的重构过程中被删除,因此本次只需修复第 1 个文件。 ## 未修改的 #ifndef 仓库中剩余约 114 处 #ifndef 均为**条件编译**(非 include guard),保持不变: - #ifndef __CCE_AICORE__ — 区分 Host/Device 编译目标 - #ifndef TEST_DEVICE_ID — 测试设备 ID 默认值 - #ifndef __force_inline__ — 编译器特性检测 - #ifndef ACLBLAS_OPERATION_DECLARED — 枚举声明保护 这些是功能性的编译条件判断,不属于 include guard,不在本次修改范围内。 ## 验证 - [x] 测试通过(bash build.sh --run --soc=ascend950,ops_blas + ops_blasLt 均成功)  - [x] 所有项目头文件(358 个)均已使用 #pragma once - [x] 无遗漏的 include guard 宏 - [x] CI lint 脚本测试通过(正确拒绝 #ifndef guard,放行 #pragma once,仅检查 PR 变更文件) ## 类型标签 - [ ] Bug 修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:代码风格统一重构 See merge request: cann/ops-blas!173 | 2 个月前 | |
支持bash build.sh --soc和--pkg的功能 Co-authored-by: chenbinbin199309<chenbinbin20@huawei.com> # message auto-generated for no-merge-commit merge: !8 merge ppkg into master 支持pkg打包 Created-by: chenbinbin199309 Commit-by: chenbinbin199309 Merged-by: wangzitao_leo Description: 支持bash build.sh --soc和--pkg的功能 See merge request: cann/ops-blas!8 | 5 个月前 | |
支持bash build.sh --soc和--pkg的功能 Co-authored-by: chenbinbin199309<chenbinbin20@huawei.com> # message auto-generated for no-merge-commit merge: !8 merge ppkg into master 支持pkg打包 Created-by: chenbinbin199309 Commit-by: chenbinbin199309 Merged-by: wangzitao_leo Description: 支持bash build.sh --soc和--pkg的功能 See merge request: cann/ops-blas!8 | 5 个月前 | |
Feat: 新增面向arch35的aclblasGemmEx接口 Co-authored-by: developer<developer@opencode.ai> Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !169 merge aclblasGemmEx into master Feat: 新增面向arch35的aclblasGemmEx接口 Created-by: yang-di52 Commit-by: yang-di52;developer Merged-by: cann-robot Description: ## 描述 新增 aclblasGemmEx 接口,实现通用矩阵乘法扩展(GEMM Ex),面向 arch35 (DAV_3510) 架构。 **支持的数据类型组合**: | 计算类型 | Scale 类型 | A/B 类型 | C 类型 | |---------|-----------|---------|--------| | ACLBLAS_COMPUTE_16F | ACL_FLOAT16 | ACL_FLOAT16 | ACL_FLOAT16 | | ACLBLAS_COMPUTE_32F | ACL_FLOAT | ACL_BF16 | ACL_BF16 | | ACLBLAS_COMPUTE_32F | ACL_FLOAT | ACL_FLOAT16 | ACL_FLOAT16 | | ACLBLAS_COMPUTE_32F | ACL_FLOAT | ACL_FLOAT | ACL_FLOAT | | ACLBLAS_COMPUTE_32F (FP8) | ACL_FLOAT | ACL_FLOAT8_E4M3FN | ACL_FLOAT16 | | ACLBLAS_COMPUTE_32F (FP8) | ACL_FLOAT | ACL_FLOAT8_E5M2 | ACL_FLOAT16 | ## 关联的Issue [#159](https://gitcode.com/cann/ops-blas/issues/159) ## 测试  ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-blas!169 | 2 个月前 | |
refactor(agent): 规范 Agent 工作流算子代码模板 Co-authored-by: xutianze<xutianze2@huawei.com> # message auto-generated for no-merge-commit merge: !174 merge agent_workflow_fix into master refactor(agent): 规范 Agent 工作流算子代码模板 Created-by: xutianze Commit-by: xutianze Merged-by: cann-robot Description: ## 描述 Agent 工作流文档与代码模板整改,共 25 个文件变更(+689/-313)。 ### 提交概览 1. **feat: 集成 OAT 自动化扫描 + 对齐 golden 测试规范** - 新增 scripts/oat_check.sh 自动化合规扫描脚本(License 头 + 文件类型检查) - 代码检视(3.1 / 4.2)前强制执行 diff 预检与 OAT 扫描 - 新增 oat_reports/ 到 .gitignore - golden.h 输出描述补充 CBLAS/LAPACK 调用说明,统一验收标准缩进格式 2. **refactor: 固化异步 kernel + const ref tiling + handle workspace** - kernel 采用异步 launch:launch 后直接返回,不调用 aclrtSynchronizeStream - Tiling 数据以 const TilingData& 从 host 传入 kernel_do,kernel 函数以 by value 接收,去掉 aclrtMalloc/aclrtMemcpy(H2D) 传递 tiling - workspace 由 handle 统一管理(aclblasGetEffectiveWorkspace(h)),禁止算子内自行 aclrtMalloc 分配 - 更新 3 套 host/kernel 代码模板、日志模板、开发指南、代码检视验收标准 3. **refactor: 固化新算子结构(2 层目录 + kernel.h + host 拆分 + 强制 dlog)** - 新算子目录改为 2 层结构:blas/{op}/archXX/(去掉 {family}/ 中间层),测试目录同步为 test/{op}/ - 每个算子新增独立 {op}_kernel.h 头文件,统一 host/kernel 共用,禁止 host.cpp 中写 extern 前向声明 - host.cpp 强制拆分为 Validate{Op}Params + Launch{Op}Kernel 两个静态函数,API 入口只做调度 - host.cpp 强制集成 dlog 日志(log/log.h),使用 OP_LOGE/D/I,禁止 printf/cout - 模板文件物理目录迁移:blas/{family}/{op}/archXX/ → blas/{op}/archXX/ - 5 处文档中 kernel.h 描述与实现对齐 4. **feat(agent): Issue 创建时新增指派人问卷** - 新增 questionnaire-issue-assignee.md 问卷定义:单独创建 Issue 时询问用户是否 assign 给自己;提 PR 同步创建 Issue 则默认 assign 给当前用户 - 更新 SKILL.md:新增指派人步骤到提交 Issue 流程 - 更新 batch_create_issues.sh:新增可选 assignee 参数 5. **refactor(agent): 强化模板规范(PR #178 冗余清理 + 代码检视 HIGH 规则 + CSV 显式规范)** - 删除 3 个 host 模板的冗余 include(acl/acl.h、cann_ops_blas_common.h、tiling/platform/platform_ascendc.h) - host 模板删除本地 static GetAivCoreCount,改用 host_utils.h 公共版本 - GetAivCoreCount 失败统一为 OP_LOGE("aclblas{Op}", "GetAivCoreCount failed") + ACLBLAS_STATUS_INTERNAL_ERROR - 3 个 kernel.h 数据指针参数强制用 GM_ADDR(与 kernel.cpp 签名一致),禁止 uint8_t* - simt kernel 入口补充 extern "C",与 simd-membase/regbase 对齐 - 新增 reviewer 强检视规则 6 + SKILL.md 硬规则 11-13(host/kernel 模板合规性检查) - 新增完整 npu_wrapper 模板(含 ACL 返回值校验 + 失败时清理已分配内存) - 新增 PrecisionMode 配置表(5 种算子类型)+ 代码示例 - CSV 随机值范围强制显式指定:RANDOM_1_3 / RANDOM_NORM_1E6 / RANDOM_LOWER_0.5_2.0,禁止仅写 RANDOM 依赖默认范围 - task-prompts 2.x.1.B 验收标准新增:CSV 随机范围显式指定 + 精度模式显式指定 + npu_wrapper 完整封装 ## 关联的Issue 关联 Issue [#165](https://gitcode.com/cann/ops-blas/issues/165) ## 测试 Reviewer 工作流一致性检视全部通过(12/12 PASS,0 WARNING,0 HIGH): - 2 层目录一致性、kernel.h 落地一致性 - host 拆分一致性、dlog 集成一致性、命名一致性 - GetAivCoreCount 公共版本、错误信息统一 - kernel.h GM_ADDR、simt extern "C" - reviewer 规则 6 ↔ SKILL.md 规则 11-13 ↔ task-prompts 验收标准 三处交叉一致 - npu_wrapper 模板全流程返回值校验覆盖 - PrecisionMode 配置表、CSV 随机范围强制声明 ## 文档更新 Agent 工作流相关文档全面更新,主要涵盖: - agent/skills/blas-new-op-workflow/SKILL.md:新增硬规则 5/6/7/8/9/10/11/12/13 - agent/skills/blas-new-op-workflow/references/task-prompts.md:输出路径与验收标准更新(2.x.1.A/2.x.1.B 新增多条强制约束) - agent/skills/blas-new-op-workflow/references/data-flow.md:路径更新为 2 层 - agent/skills/blas-op-templates/SKILL.md:目录树与命名规范更新 - agent/agents/{developer,tester,reviewer}.md:工程结构、路径白名单、代码规范更新(reviewer.md 新增规则 6) - 3 套代码模板(simd-membase / simd-regbase / simt):host/kernel/kernel.h/tiling_data.h 全部重写 + 冗余清理 - agent/skills/blas-log/references/host-log-templates.md / log-quickref.md:workspace 与日志模板更新 - scripts/oat_check.sh:新增 OAT 自动化扫描脚本 - agent/skills/gitcode-pr-issue-guide/SKILL.md:新增 Issue 指派人步骤 - agent/skills/gitcode-pr-issue-guide/assets/questionnaire-issue-assignee.md:新增问卷定义 - agent/skills/gitcode-pr-issue-guide/scripts/batch_create_issues.sh:新增 assignee 参数支持 - agent/skills/blas-ST-develop/SKILL.md:新增完整 npu_wrapper 模板 + PrecisionMode 配置表 + CSV 随机范围强制 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 See merge request: cann/ops-blas!174 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |