| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[MC2] 添加MC2融合算子开发教程 Co-authored-by: adamlwang<wangjingquan2@huawei.com> Co-authored-by: w00951525<wangfuhao7@huawei.com> Co-authored-by: WangShuying5<wangshuying5@huawei.com> # message auto-generated for no-merge-commit merge: !65 merge add_mc2_op_files into master [MC2] 添加MC2融合算子开发教程 Created-by: w00951525 Commit-by: w00951525;WangShuying5;adamlwang Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 内容优化 - [ ] 其他,请描述: ## 其他信息 <!-- 在这里可以添加任何与这个 Pull Request 相关的其他说明。 --> See merge request: cann/cann-learning-hub!65 | 5 个月前 | |
fix: 修复06.04/06.05 UT中system()返回值未检查及compare_data.py假通过问题 Co-authored-by: chenmingyu<3391887644@qq.com> # message auto-generated for no-merge-commit merge: !646 merge master-fix-289 into master fix: 修复06.04/06.05 UT中system()返回值未检查及compare_data.py假通过问题 Created-by: chenmingyu Commit-by: chenmingyu Merged-by: cann-robot Description: ## 描述 修复Issue #289中指出的06.04/06.05课后练习UT代码存在假通过的问题。 C++测试侧(test_add_custom.cpp / test_sigmoid.cpp)通过system()调用gen_data.py和compare_data.py,但完全未检查子进程返回值,且测试函数内没有任何GTest断言。导致即使精度比较失败,GTest仍无条件标记为PASSED。 Python侧(compare_data.py)存在多种假通过路径:golden或output文件列表为空时直接返回True;文件数量不一致时zip()按较短列表截断,多出的文件被静默忽略;无显式shape校验,当数组长度不匹配时np.isclose可能广播或崩溃,但崩溃的返回码同样被C++侧丢弃 ## 关联的Issue https://gitcode.com/cann/cann-learning-hub/issues/289 ## 测试 对add_custom和sigmoid两组用例分别构造了多个测试场景,对比修复前后行为差异。 正常数据场景:golden与output完全一致时,修复前后行为相同,均正确报告PASSED,不影响正常流程。 异常数据场景:篡改output中单个元素使其与golden不匹配时,Python脚本正确检测到差异并返回非零退出码,但原版C++侧system()不检查返回值导致GTest仍报PASSED,修复后ASSERT断言捕获非零退出码,GTest正确报FAILED。 golden文件缺失场景:删除golden.bin后,原版Python脚本因文件列表为空不进入比较循环,直接返回True并退出码0,GTest报PASSED;修复版新增空列表校验,返回False并退出码1,GTest报FAILED。 output文件缺失场景:与golden缺失对称,原版同样因空列表跳过比较返回True,修复版正确拦截。 文件数量不一致场景:保留1个golden文件和2个output文件时,原版zip()按较短列表截断,多出的output文件被静默忽略,返回True;修复版新增文件数量校验,检测到不匹配后返回False。 shape不一致场景:将output截断为1024个元素(golden为2048)时,原版np.isclose因形状不兼容抛出ValueError崩溃,虽然崩溃返回非零码但C++侧不检查仍报PASSED;修复版在调用isclose之前先做shape校验,优雅地返回False并打印明确的错误信息,不会崩溃。 sigmoid用例同步验证了正常数据、golden缺失、数据错误三个场景,行为与add_custom一致。 总体结论:原版在8个异常场景中全部假通过,修复版在所有场景中均正确判定,正常数据不受影响。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 内容优化 - [ ] 其他,请描述: ## 其他信息 <!-- 在这里可以添加任何与这个 Pull Request 相关的其他说明。 --> See merge request: cann/cann-learning-hub!646 | 2 个月前 | |
fix: 修复 Ascend C light 教程标题层级 Co-authored-by: Zexuan Lu<2025210897@bupt.cn> # message auto-generated for no-merge-commit merge: !588 merge codex/fix-ascendc-light-heading-hierarchy into master fix: 修复 Ascend C light 教程标题层级 Created-by: Lzsfy Commit-by: Zexuan Lu Merged-by: cann-robot Description: ## 描述 修复 Ascend C 算子开发轻量化教程中部分 Notebook 的标题层级问题,使每个 Notebook 仅保留一个一级标题,并清理无内容的标题。 具体改动: - 删除 01.04_ascend_c_op_dev_basic_concepts.ipynb 中两个空的一级标题。 - 将 02.05_generalized_tiling_design.ipynb 中“课后实践”由一级标题调整为二级标题。 - 将 03.04_fused_operator_concept_intro.ipynb 中“课后练习”由一级标题调整为二级标题。 - 将 03.05_cv_fused_operator_development.ipynb 中“课后实践”由一级标题调整为二级标题。 本次修改仅调整 Markdown 标题层级,不修改代码单元、执行结果、Notebook 元数据及教程技术内容。 ## 关联的Issue - https://gitcode.com/cann/cann-learning-hub/issues/504 - https://gitcode.com/cann/cann-learning-hub/issues/522 ## 测试 已完成以下检查: - 验证修改后的 4 个 Notebook 均可正常解析为合法 JSON。 - 检查每个 Notebook 仅包含一个一级标题。 - 检查 Ascend C 算子开发轻量化教程下全部 24 个 Notebook,未发现空标题或一级标题数量异常。 - 对比修改前后的 Notebook,确认代码单元、执行结果、附件及元数据未发生变化。 - 执行 git diff --check,未发现空白字符错误。 - 检查 git diff --stat,修改范围仅包含 4 个目标 Notebook,共 3 行新增、5 行删除。 本次修改不涉及算子代码及运行逻辑,因此无需进行二级冒烟或算子泛化测试。 ## 文档更新 更新了以下 Ascend C 算子开发轻量化教程 Notebook 的 Markdown 标题层级: - tutorials/ascendc_operator_development_light/01_basic_overview/01.04_ascend_c_op_dev_basic_concepts.ipynb - tutorials/ascendc_operator_development_light/02_AscendC_basic/02.05_generalized_tiling_design.ipynb - tutorials/ascendc_operator_development_light/03_simple_operator_practice/03.04_fused_operator_concept_intro.ipynb - tutorials/ascendc_operator_development_light/03_simple_operator_practice/03.05_cv_fused_operator_development.ipynb README 无需更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 内容优化 - [ ] 其他,请描述: ## 其他信息 本次修改保持最小范围,不引入新依赖,不改变教程内容及 Notebook 的运行行为。 See merge request: cann/cann-learning-hub!588 | 2 个月前 | |
[conv]添加conv算子开发教程 Co-authored-by: y00799046<yuxin5@huawei.com> Co-authored-by: jinyijian<jinyijian1@huawei.com> Co-authored-by: zhoumin_<zhoumin107@huawei.com> Co-authored-by: Developer user<wangshenhao1@huawei.com> # message auto-generated for no-merge-commit merge: !84 merge develop into master [conv]添加conv算子开发教程 Created-by: jinyijian Commit-by: jinyijian;y00799046;zhoumin_;royccc;Developer user Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [ ] 其他,请描述: ## 其他信息 <!-- 在这里可以添加任何与这个 Pull Request 相关的其他说明。 --> See merge request: cann/cann-learning-hub!84 | 4 个月前 | |
fix: fix hixl tutorials bug Co-authored-by: A-Liuhao<liuhao276@hisilicon.com> # message auto-generated for no-merge-commit merge: !627 merge cherry-pick-mr-584-1786333272665-auto into master fix: fix hixl tutorials bug Created-by: A-Liuhao Commit-by: A-Liuhao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复HIXL课程Issue ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> [#198](https://gitcode.com/cann/cann-learning-hub/issues/198) [#197](https://gitcode.com/cann/cann-learning-hub/issues/197) [#196](https://gitcode.com/cann/cann-learning-hub/issues/196) [#195](https://gitcode.com/cann/cann-learning-hub/issues/195) [#247](https://gitcode.com/cann/cann-learning-hub/issues/247) [#400](https://gitcode.com/cann/cann-learning-hub/issues/400) [#379](https://gitcode.com/cann/cann-learning-hub/issues/379) [#378](https://gitcode.com/cann/cann-learning-hub/issues/378) [#274](https://gitcode.com/cann/cann-learning-hub/issues/274) [#279](https://gitcode.com/cann/cann-learning-hub/issues/279) [#283](https://gitcode.com/cann/cann-learning-hub/issues/283) [#293](https://gitcode.com/cann/cann-learning-hub/issues/293) [#382](https://gitcode.com/cann/cann-learning-hub/issues/382) [#383](https://gitcode.com/cann/cann-learning-hub/issues/383) [#439](https://gitcode.com/cann/cann-learning-hub/issues/439) [#471](https://gitcode.com/cann/cann-learning-hub/issues/471) [#480](https://gitcode.com/cann/cann-learning-hub/issues/480) [#482](https://gitcode.com/cann/cann-learning-hub/issues/482) [#520](https://gitcode.com/cann/cann-learning-hub/issues/520) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [ ] 其他,请描述: ## 其他信息 <!-- 在这里可以添加任何与这个 Pull Request 相关的其他说明。 --> See merge request: cann/cann-learning-hub!627 | 2 个月前 | |
fix qwen3_8b chapter 5&6 issues Co-authored-by: liuyufan<liuyufan9@huawei.com> # message auto-generated for no-merge-commit merge: !632 merge master into master fix qwen3_8b chapter 5&6 issues Created-by: liuyufan0725 Commit-by: liuyufan Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 修复 Qwen3-8B 推理优化课程第5和第6章节的 4 个 Issue - **#105**:第 6 章 06_custom_matmul_operator...ipynb 中 6.2 节原地修改 recipes 源码污染 baseline 对比,改为替换前在内存中备份原始内容(W8A8_ORIGINAL_CODE),并在 7.4 节新增恢复单元格写回原始源码。 - **#262**:第 5 章 05_quantization_qwen3_8b.ipynb 模型权重下载未使用 QWEN3_8B_MODEL_PATH 环境变量,改为与前几章一致的 MODEL_ID = os.environ.get('QWEN3_8B_MODEL_PATH') or 'Qwen/Qwen3-8B'。 - **#432**:① 第 5 章将"纯 INT8 输出"修正为"INT32 输出",与算子规格表一致;② 第 6 章 2.1 节新增术语说明,明确 A8W8 与 W8A8 为同一量化方案;③ README 课程简介中补充第 5/6 章量化与自定义算子内容。 - **#521**:第 6 章 cell#0 中「本章定位」「通过实践达成的学习目标」「本章大纲」三个导引小节改为 h2,与第 1 章及本章后续编号小节层级保持一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> 关联Issue [#105](https://gitcode.com/cann/cann-learning-hub/issues/105) Issue [#262](https://gitcode.com/cann/cann-learning-hub/issues/262) Issue [#432](https://gitcode.com/cann/cann-learning-hub/issues/432) Issue [#521](https://gitcode.com/cann/cann-learning-hub/issues/521) ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> 执行code cell内容符合预期。 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新了tutorials/llm_inference/qwen3_8b/README.md ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [ ] 其他,请描述: ## 其他信息 <!-- 在这里可以添加任何与这个 Pull Request 相关的其他说明。 --> See merge request: cann/cann-learning-hub!632 | 2 个月前 | |
update: 新增内容刷新 Co-authored-by: waimaidaole<1595992831@qq.com> # message auto-generated for no-merge-commit merge: !317 merge master into master update: 新增内容刷新 Created-by: waimaidaole Commit-by: waimaidaole Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 内容优化 - [ ] 其他,请描述: ## 其他信息 <!-- 在这里可以添加任何与这个 Pull Request 相关的其他说明。 --> See merge request: cann/cann-learning-hub!317 | 3 个月前 |
CANN 教程中心
本目录汇总了昇腾 CANN(Compute Architecture for Neural Networks)各核心领域的官方教程,覆盖大模型推理、算子开发、高性能编程等关键方向,助力开发者快速掌握昇腾 NPU 开发能力。
教程列表
| 教程名称 | 教程描述 | 访问链接 | 状态 |
|---|---|---|---|
| 大模型推理系列课程 | 从大语言模型基础出发,介绍 CANN 推理仓、推理优化、量化与 Profiling,并提供 Qwen3-8B 单卡实践 | llm_inference | ✅ 已发布 |
| Ascend C 算子开发系列教程 | 面向昇腾 NPU 的高性能算子开发全流程教程,包含 Tiling 模板化编程、算子调试、性能优化等核心内容 | ascendc_operator_development | ✅ 已发布 |
| Ascend C 算子开发系列教程(Kernel 直调版) | 面向昇腾 NPU 的 Ascend C 算子开发教程,包含算子核函数、Tiling 计算、矩阵算子、CV 融合算子、调试调优等核心内容 | ascendc_operator_development_light | ✅ 已发布 |
| MC2融合算子开发教程 | MC2融合算子开发教程,详细介绍 MC2 融合算子的概念、开发流程和实践 | MC2_fused_operator_development | ✅ 已发布 |
| Conv 算子开发实战教程 | 面向昇腾 NPU 的 Conv 算子开发实战教程,覆盖卷积算子开发核心概念与实践 | conv_operator_development | ✅ 已发布 |
| HIXL 应用开发系列教程 | 基于昇腾单边通信库的应用开发教程,包含核心API介绍、传输模式选择、问题定位、性能分析等核心内容 | hixl_development | ✅ 已发布 |
教程使用说明
- 已发布教程:点击链接可直接进入对应目录,包含教程文档、示例代码、实操步骤等完整内容;
- 开发中教程:将持续补充后续算子开发教程;
- 规划中教程:将持续更新开发进度,优先覆盖 PyPTO 核心语法、Tile 分片实战、算子性能调优等内容;
- 环境要求:所有教程均基于 CANN 8.5.0+ 版本开发,如离线体验需自行安装配套版本。
反馈与建议
若在教程学习过程中遇到问题,可通过以下方式反馈:
- 提交 Issue 至本仓库;
- 联系昇腾开发者社区技术支持。