| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
修复issue 1409和issue 1472 Co-authored-by: cgcaof<caochenguang1@h-partners.com> # message auto-generated for no-merge-commit merge: !5100 merge master into master 修复issue 1409和issue 1472 Created-by: cgcaof Commit-by: cgcaof Merged-by: cann-robot Description: ## 描述 修复issue 1409,文档链接指向错误 修复issue 1472,链接名称错误 ## 关联的Issue https://gitcode.com/cann/asc-devkit/issues/1409 https://gitcode.com/cann/asc-devkit/issues/1472 ## 测试 不涉及 ## 文档更新 docs/zh/guide/算子实践参考/SIMD算子实现/融合算子编程/CV融合/算子实现.md ## 类型标签 <!-- [x] 表示选中 --> - [x] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5100 | 1 个月前 | |
修改样例中废弃接口 Co-authored-by: JC1126<jiangchao69@h-partners.com> # message auto-generated for no-merge-commit merge: !6033 merge jc_0915 into master 修改样例中废弃接口 Created-by: JC1126 Commit-by: JC1126 Merged-by: cann-robot Description: ## 描述 修改样例中废弃接口 ## 关联的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!6033 | 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 | 20 天前 | |
优化Reg矢量Add算子 Co-authored-by: lijunjie147<lijunjie147@huawei.com> # message auto-generated for no-merge-commit merge: !5369 merge add into master 优化Reg矢量Add算子 Created-by: lijunjie147 Commit-by: lijunjie147 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 优化Reg矢量Add算子示例 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> https://gitcode.com/cann/asc-devkit/issues/1479 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [x] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!5369 | 1 个月前 | |
feat_add_capi_sample Co-authored-by: gcw_atM8lhjZ<chenhangxin@huawei.com> # message auto-generated for no-merge-commit merge: !5612 merge example into master feat_add_capi_sample Created-by: gcw_atM8lhjZ Commit-by: gcw_atM8lhjZ Merged-by: cann-robot Description: ## 描述 新增并完善了 SIMD C API 矩阵计算样例,覆盖 MatMul、Fixpipe 及 Mmad 场景。 - 新增独立可运行的 C API 样例:matmul_basic_api、fixpipe_l0c2gm、fixpipe_l0c2l1、fixpipe_l0c2ub,每个样例包含 CMake、README、中英文说明、数据生成与结果校验脚本及配图。 - 基于对应基础 API 样例迁移矩阵计算流程,仅将算子接口替换为 C API 调用,保持样例结构和运行方式一致。 - 为 C API mmad 样例补充场景 3,增加 float 输入输出、A/B 转置及显式 Bias 地址场景,并同步完善构建参数、数据生成、精度校验和文档。 - 完善各样例的输入输出文件校验、关键 ACL 调用错误处理和资源释放逻辑,避免输入异常时继续执行并产生误导性输出。 - 更新中英文样例目录索引,使新增样例可从矩阵计算目录和介绍目录访问。 ## 关联的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!5612 | 26 天前 | |
feat_add_capi_sample Co-authored-by: gcw_atM8lhjZ<chenhangxin@huawei.com> # message auto-generated for no-merge-commit merge: !5612 merge example into master feat_add_capi_sample Created-by: gcw_atM8lhjZ Commit-by: gcw_atM8lhjZ Merged-by: cann-robot Description: ## 描述 新增并完善了 SIMD C API 矩阵计算样例,覆盖 MatMul、Fixpipe 及 Mmad 场景。 - 新增独立可运行的 C API 样例:matmul_basic_api、fixpipe_l0c2gm、fixpipe_l0c2l1、fixpipe_l0c2ub,每个样例包含 CMake、README、中英文说明、数据生成与结果校验脚本及配图。 - 基于对应基础 API 样例迁移矩阵计算流程,仅将算子接口替换为 C API 调用,保持样例结构和运行方式一致。 - 为 C API mmad 样例补充场景 3,增加 float 输入输出、A/B 转置及显式 Bias 地址场景,并同步完善构建参数、数据生成、精度校验和文档。 - 完善各样例的输入输出文件校验、关键 ACL 调用错误处理和资源释放逻辑,避免输入异常时继续执行并产生误导性输出。 - 更新中英文样例目录索引,使新增样例可从矩阵计算目录和介绍目录访问。 ## 关联的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!5612 | 26 天前 |
Introduction样例介绍
概述
基于Ascend C的简单的示例,通过Ascend C编程语言实现了自定义算子,分别给出对应的C_API实现。
样例列表
| 目录名称 | 功能描述 |
|---|---|
| 00_quickstart | 样例介绍了基于Ascend C的HelloWorld算子的核函数直调方法,从NPU侧运行核验证算子核函数,展示核函数从调用到执行的整体流程 |
| 01_add | 本样例介绍了基于Ascend C的Add自定义Vector算子的核函数直调方法,实现两个输入张量的逐元素相加,支持main函数和kernel函数在同一个cpp文件中实现 |
| 02_matrix | 使用SIMD C API实现基础矩阵乘样例。 |
| 04_reg_base_add_compute | 本样例介绍了基于Ascend C的Add算子核函数直调方法(RegBase场景),通过C_API实现两个输入张量的逐元素相加,展示了片上存储和寄存器层级的向量计算流程。 |