| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
新增接口gather/iota/pack/unpack/compress/expand Co-authored-by: treefei<lishufei2@huawei.com> # message auto-generated for no-merge-commit merge: !6819 merge master into master 新增接口gather/iota/pack/unpack/compress/expand Created-by: treefei Commit-by: treefei Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 新增gather/iota/pack/unpack/compress/expand 接口 ## 关联的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!6819 | 1 天前 | |
examples/c-api-utilities Co-authored-by: bianque<huangshihe2@hisilicon.com> # message auto-generated for no-merge-commit merge: !6726 merge examples/c-api-utilities into master examples/c-api-utilities Created-by: bianque Commit-by: bianque Merged-by: cann-robot Description: ## 描述 在 examples/02_simd_c_api/01_utilities/ 下补齐基于 C API 的调试工具样例集,覆盖 Ascend C 常用的调试与性能分析接口。目标架构为 dav-3510(Ascend 950PR&950DT 系列产品),CANN 软件版本 >= 9.2.0。 新增样例(每个样例均包含 .asc 核函数源码、CMakeLists.txt、中英文 README 及 gen_data.py / verify_result.py 数据脚本): - 00_printf:printf 接口打印功能,含静态缓冲区编程模式的 simple_printf 与 vector 编程模式的 simd_vf_printf - 01_assert:Assert 接口异常检测功能 - 02_dump:Dump 数据调测功能,含 cube_buffer_dump、simd_vf_dump、simple_dump 三个子样例 - 03_clock:Kernel 函数执行耗时打印 - 04_profiling:使用 Profiling 工具(msprof)采集性能数据 - 05_sanitizer:Sanitizer 调测工具的使用方法 - 06_simulator:CAmodel 仿真与问题分析 - 07_log:Kernel 日志功能(日志打屏/落盘/级别控制) 同步修改: - examples/01_simd_cpp_api/01_utilities/02_dump/simd_vf_dump:调整 dump 打印时序,先执行 AscendC::Adds 计算并加 PipeBarrier<PIPE_V>,再打印计算后的 UB 数据,使打印内容与流程更准确 - 更新 examples/02_simd_c_api/01_utilities 与 examples/02_simd_c_api 两级的 README / README_en,补充样例列表条目 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #xxx--> ## 测试 在 Ascend 950PR&950DT 系列产品(dav-3510 架构)上完成编译与运行验证:每个样例均配套 gen_data.py 生成输入数据、verify_result.py 校验结果;调试类样例(printf / assert / dump / log / sanitizer / simulator)按 README 步骤编译执行并核对输出日志,性能类样例(clock / profiling)按说明采集并确认耗时或 profiling 数据正常生成。 ## 文档更新 新增各样例目录下的中英文 README,并更新 01_utilities 与 02_simd_c_api 两级的 README / README_en 样例列表。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] 🐛 fix: Bug 修复 - [x] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [ ] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6726 | 2 天前 | |
add cpp language feature docs Co-authored-by: wulinyu<wulinyu4@huawei.com> # message auto-generated for no-merge-commit merge: !6587 merge master into master add cpp language feature docs Created-by: wulinyu Commit-by: wulinyu Merged-by: cann-robot Description: ## 描述 本PR新增Ascend C **C++标准支持**技术附录(技术附录> C++标准支持章节),系统化给出C/C++语言标准在Ascend C Device侧的支持情况与语法约束,替代原有内容单薄的 syntax_restrictions三篇(features/functions/syntax_restrictions)。 ### 文档新增 | 文档 | 内容 | | --- | --- | | overview.md(扩充) | 语言标准选择方式(-std/CMAKE_ASC_STANDARD)、Host侧(与clang15一致)与Device侧(C++11/14/17/20四档、默认C++17)能力边界、章节导航 | | cpp_language_feature/cpp_language_feature.md | Device侧C++语言支持总入口 | | cpp_language_feature/cpp11_language_feature.md | C++11核心语言特性与C99收录特性的逐项支持列表(25项,附标准Proposal链接与注意事项) | | cpp_language_feature/cpp14_language_feature.md | C++14特性逐项支持列表(7项) | | cpp_language_feature/cpp17_language_feature.md | C++17特性逐项支持列表(16项) | | cpp_language_feature/lambda_expressions.md | Lambda表达式专文:SIMT场景无需标记;混合编程场景的callee标记选择规则(__simt_callee__/__simd_callee__/__aicore__)、VF函数内Lambda能力清单、constexpr lambda使用约束 | | cpp_language_restrictions/general_restrictions.md | 通用语法限制:不支持的特性清单、指针与内存地址(取Device函数地址/核函数地址/跨空间解引用)、变量(static/全局/const/volatile/constexpr表)、函数(核函数参数列表限制、SIMT VF函数限制、递归、可变参数)、类(成员函数标记、混合编程结构体限制)、模板(模板核函数、显式实例化) | 所有结论均基于真实芯片逐项实测,报错信息为编译器原始输出。docs/zh/guide/index.md目录树同步更新,编程指南(SIMD/SIMT kernel_function、programming_examples)中指向旧章节的链接同步修正。 ### 样例新增(2个) | 样例 | 内容 | | --- | --- | | examples/03_simt_api/02_features/02_language_features/00_lambda_operator_capture | SIMT模式Lambda捕获实战:以LeakyReLU-Affine融合算子与Clamp算子为载体,演示值捕获携带超参、引用捕获累计统计、闭包组合表达融合算子、策略与框架分离四种实际编程用法 | | examples/05_simd_simt_hybrid/03_features/lambda_operator_hybrid | 上述样例的混合编程对照实现:SIMT VF/SIMD VF/核函数体内Lambda分别按规则标记callee属性,SIMD侧演示"lambda标量逻辑+矢量intrinsics"数据流 | 两个样例均含中英双语README、CMakeLists与完整可编译源码,与文档中Lambda标记规则互为引用。 ## 关联的Issue [#1884](https://gitcode.com/cann/asc-devkit/issues/1884) ## 测试 - **环境**:Ascend 950PR真实芯片、dav-3510架构、CANN 9.3.0(bisheng clang 15.0.5)。 - **文档特性逐项实测**:资料中全部特性结论按"特性在核函数内实际使用→结果写回GM→Host侧按独立复算期望值比对"的用例在真实NPU上验证,涵盖C++11/14/17特性清单、Lambda SIMT/混合编程标记规则、auto约束、别名模板约束、四执行空间(SIMT/SIMT VF/SIMD VF/MainScalar)语法限制矩阵。 - **约束触发取证**:资料标注的编译失败类约束逐项触发并核对报错文案(如reference to __host__ function、expecting parameter ... to have memory qualifier __gm__、recursive aicore function call is not allowed等)。 - **示例工程上板验证**:两个样例在真实NPU上编译运行,Host侧精度比对输出PASS(SIMT样例与混合编程样例均含自动化PASS/FAIL判定与返回码)。 ## 文档更新 本PR全部改动均为文档与示例工程:新增技术附录8篇、示例工程2个(含中英README),更新目录索引与旧链接,删除被替代的syntax_restrictions三篇。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6587 | 2 天前 | |
docs: 按产品名称映射表统一产品名称(样例) Co-authored-by: munanhw<munan@huawei.com> # message auto-generated for no-merge-commit merge: !6571 merge docs/product-name-examples into master docs: 按产品名称映射表统一产品名称(样例) Created-by: munanhw Commit-by: munanhw Merged-by: cann-robot Description: ## 描述 从 #6524 拆分:examples/ 目录下全部样例文档(856 个文件,中英文 README 成对同步修改) 整改规则(依据产品名称映射表): - Ascend 950PR/Ascend 950DT 系列(含衍生/简写/带空格斜杠变体)统一为 Ascend 950PR&950DT系列产品(英文:Ascend 950PR&950DT products) - Atlas A2/A3 训练系列产品与推理系列产品合并为 Atlas A2系列产品 / Atlas A3系列产品(英文:Atlas A2/A3 products) - Atlas 200I/500 A2 推理产品、Atlas 推理/训练系列产品(含 AI Core / Vector Core 场景)去空格 - 同名并列对按合并语义收敛为单一规范名(如 Atlas A3 products/Atlas A3 products -> Atlas A3 products) ## 关联的Issue 无 ## 测试 - 全量改动已在 #6524 上通过完整 CI(compile 流水线 ci-pipeline-passed),本 PR 为其按目录拆分的等价子集 - 旧名称形式残留为 0、叠字残留为 0;图片路径与文件链接未做任何改动 ## 文档更新 本 PR 为文档产品名称整改 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6571 | 15 天前 | |
add cpp language feature docs Co-authored-by: wulinyu<wulinyu4@huawei.com> # message auto-generated for no-merge-commit merge: !6587 merge master into master add cpp language feature docs Created-by: wulinyu Commit-by: wulinyu Merged-by: cann-robot Description: ## 描述 本PR新增Ascend C **C++标准支持**技术附录(技术附录> C++标准支持章节),系统化给出C/C++语言标准在Ascend C Device侧的支持情况与语法约束,替代原有内容单薄的 syntax_restrictions三篇(features/functions/syntax_restrictions)。 ### 文档新增 | 文档 | 内容 | | --- | --- | | overview.md(扩充) | 语言标准选择方式(-std/CMAKE_ASC_STANDARD)、Host侧(与clang15一致)与Device侧(C++11/14/17/20四档、默认C++17)能力边界、章节导航 | | cpp_language_feature/cpp_language_feature.md | Device侧C++语言支持总入口 | | cpp_language_feature/cpp11_language_feature.md | C++11核心语言特性与C99收录特性的逐项支持列表(25项,附标准Proposal链接与注意事项) | | cpp_language_feature/cpp14_language_feature.md | C++14特性逐项支持列表(7项) | | cpp_language_feature/cpp17_language_feature.md | C++17特性逐项支持列表(16项) | | cpp_language_feature/lambda_expressions.md | Lambda表达式专文:SIMT场景无需标记;混合编程场景的callee标记选择规则(__simt_callee__/__simd_callee__/__aicore__)、VF函数内Lambda能力清单、constexpr lambda使用约束 | | cpp_language_restrictions/general_restrictions.md | 通用语法限制:不支持的特性清单、指针与内存地址(取Device函数地址/核函数地址/跨空间解引用)、变量(static/全局/const/volatile/constexpr表)、函数(核函数参数列表限制、SIMT VF函数限制、递归、可变参数)、类(成员函数标记、混合编程结构体限制)、模板(模板核函数、显式实例化) | 所有结论均基于真实芯片逐项实测,报错信息为编译器原始输出。docs/zh/guide/index.md目录树同步更新,编程指南(SIMD/SIMT kernel_function、programming_examples)中指向旧章节的链接同步修正。 ### 样例新增(2个) | 样例 | 内容 | | --- | --- | | examples/03_simt_api/02_features/02_language_features/00_lambda_operator_capture | SIMT模式Lambda捕获实战:以LeakyReLU-Affine融合算子与Clamp算子为载体,演示值捕获携带超参、引用捕获累计统计、闭包组合表达融合算子、策略与框架分离四种实际编程用法 | | examples/05_simd_simt_hybrid/03_features/lambda_operator_hybrid | 上述样例的混合编程对照实现:SIMT VF/SIMD VF/核函数体内Lambda分别按规则标记callee属性,SIMD侧演示"lambda标量逻辑+矢量intrinsics"数据流 | 两个样例均含中英双语README、CMakeLists与完整可编译源码,与文档中Lambda标记规则互为引用。 ## 关联的Issue [#1884](https://gitcode.com/cann/asc-devkit/issues/1884) ## 测试 - **环境**:Ascend 950PR真实芯片、dav-3510架构、CANN 9.3.0(bisheng clang 15.0.5)。 - **文档特性逐项实测**:资料中全部特性结论按"特性在核函数内实际使用→结果写回GM→Host侧按独立复算期望值比对"的用例在真实NPU上验证,涵盖C++11/14/17特性清单、Lambda SIMT/混合编程标记规则、auto约束、别名模板约束、四执行空间(SIMT/SIMT VF/SIMD VF/MainScalar)语法限制矩阵。 - **约束触发取证**:资料标注的编译失败类约束逐项触发并核对报错文案(如reference to __host__ function、expecting parameter ... to have memory qualifier __gm__、recursive aicore function call is not allowed等)。 - **示例工程上板验证**:两个样例在真实NPU上编译运行,Host侧精度比对输出PASS(SIMT样例与混合编程样例均含自动化PASS/FAIL判定与返回码)。 ## 文档更新 本PR全部改动均为文档与示例工程:新增技术附录8篇、示例工程2个(含中英README),更新目录索引与旧链接,删除被替代的syntax_restrictions三篇。 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6587 | 2 天前 | |
docs: 按产品名称映射表统一产品名称(样例) Co-authored-by: munanhw<munan@huawei.com> # message auto-generated for no-merge-commit merge: !6571 merge docs/product-name-examples into master docs: 按产品名称映射表统一产品名称(样例) Created-by: munanhw Commit-by: munanhw Merged-by: cann-robot Description: ## 描述 从 #6524 拆分:examples/ 目录下全部样例文档(856 个文件,中英文 README 成对同步修改) 整改规则(依据产品名称映射表): - Ascend 950PR/Ascend 950DT 系列(含衍生/简写/带空格斜杠变体)统一为 Ascend 950PR&950DT系列产品(英文:Ascend 950PR&950DT products) - Atlas A2/A3 训练系列产品与推理系列产品合并为 Atlas A2系列产品 / Atlas A3系列产品(英文:Atlas A2/A3 products) - Atlas 200I/500 A2 推理产品、Atlas 推理/训练系列产品(含 AI Core / Vector Core 场景)去空格 - 同名并列对按合并语义收敛为单一规范名(如 Atlas A3 products/Atlas A3 products -> Atlas A3 products) ## 关联的Issue 无 ## 测试 - 全量改动已在 #6524 上通过完整 CI(compile 流水线 ci-pipeline-passed),本 PR 为其按目录拆分的等价子集 - 旧名称形式残留为 0、叠字残留为 0;图片路径与文件链接未做任何改动 ## 文档更新 本 PR 为文档产品名称整改 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6571 | 15 天前 | |
docs: 按产品名称映射表统一产品名称(样例) Co-authored-by: munanhw<munan@huawei.com> # message auto-generated for no-merge-commit merge: !6571 merge docs/product-name-examples into master docs: 按产品名称映射表统一产品名称(样例) Created-by: munanhw Commit-by: munanhw Merged-by: cann-robot Description: ## 描述 从 #6524 拆分:examples/ 目录下全部样例文档(856 个文件,中英文 README 成对同步修改) 整改规则(依据产品名称映射表): - Ascend 950PR/Ascend 950DT 系列(含衍生/简写/带空格斜杠变体)统一为 Ascend 950PR&950DT系列产品(英文:Ascend 950PR&950DT products) - Atlas A2/A3 训练系列产品与推理系列产品合并为 Atlas A2系列产品 / Atlas A3系列产品(英文:Atlas A2/A3 products) - Atlas 200I/500 A2 推理产品、Atlas 推理/训练系列产品(含 AI Core / Vector Core 场景)去空格 - 同名并列对按合并语义收敛为单一规范名(如 Atlas A3 products/Atlas A3 products -> Atlas A3 products) ## 关联的Issue 无 ## 测试 - 全量改动已在 #6524 上通过完整 CI(compile 流水线 ci-pipeline-passed),本 PR 为其按目录拆分的等价子集 - 旧名称形式残留为 0、叠字残留为 0;图片路径与文件链接未做任何改动 ## 文档更新 本 PR 为文档产品名称整改 ## 类型标签 - [ ] 🐛 fix: Bug 修复 - [ ] ✨ feat: 新功能 - [ ] ⚡ perf: 性能优化 - [ ] ♻️ refactor: 代码重构 - [ ] 🧪 test: 新增或修改测试 - [x] 📝 docs: 文档更新 - [ ] 🔧 ci: CI/CD 配置修改 - [ ] ↩️ revert: 回退 - [ ] 🧹 chore: 其他,请具体描述 See merge request: cann/asc-devkit!6571 | 15 天前 |
Ascend C样例
简体中文 | English
本目录提供Ascend C不同编程方式的使用样例,覆盖基础调用、调试工具、功能特性、API类库和性能实践等内容。
样例列表
| 目录名称 | 内容说明 |
|---|---|
| 01_simd_cpp_api | Ascend C C++ API样例,覆盖入门、工具、功能特性、API类库、最佳实践、兼容性参考和Tensor API编程样例 |
| 02_simd_c_api | Ascend C C API样例,覆盖基础调用、工具能力和接口特性 |
| 03_simt_api | Ascend C SIMT编程样例,覆盖入门、调试工具、核心特性和实践参考 |
| 04_aicpu | Ascend C AICPU编程样例,覆盖入门和功能特性 |
| 05_simd_simt_hybrid | Ascend C SIMD与SIMT混合编程样例,覆盖入门和高性能优化样例 |
npu-arch编译选项说明
开发者需根据实际执行环境,修改具体样例目录下CMakeLists.txt文件中的--npu-arch编译选项。产品型号与npu-arch参数的对应关系如下。
| 产品型号 | npu-arch参数 |
|---|---|
| Ascend 950PR&950DT系列产品 | --npu-arch=dav-3510 |
| Atlas A3系列产品 Atlas A2系列产品 |
--npu-arch=dav-2201 |
| Atlas推理系列产品AI Core | --npu-arch=dav-2002 |