CANN/cann-learning-hub新课程上库与上线验收标准

CANN/cann-learning-hub新课程上库与上线验收标准 新课程上库与上线验收标准【免费下载链接】cann-learning-hubCANN 学习中心仓支持在线互动运行、边学边练提供教程、示例与优化方案一站式助力昇腾开发者快速上手。项目地址: https://gitcode.com/cann/cann-learning-hub适用范围所有新增或重构后准备合入cann-learning-hub的课程。用途PR 作者自检、Reviewer 验收、课程上库准入判断。1. 新教程的上线流程新教程按照课程大纲设计、课程大纲评审、课程内容开发、PR 评审、test 分支内测、问题闭环、master 分支发布的流程推进上线。步骤流程节点责任方验收关注点1课程小组进行课程大纲设计课程组明确课程主题、章节规划、学习路径和目标学习对象。2课程大纲提评审阐述能力的分层设计逻辑课程组、commiter说明初级、中级、高级能力递进关系以及各阶段考核方式。3课程组内开发分工完成教程内容课程组按照大纲完成 README、章节 notebook、answer、images、src 等内容建设。4提 PR 到cann-learning-hub/test分支课程组内容开发者PR 内容完整目录结构、命名、Notebook 内容和运行验证满足准入要求。5课程组组长 commiter评审 PR课程组组长、commiter依据准合入 Checklist 检查课程结构、内容质量、代码可执行性和能力递进设计。6达到准入标准合入 test 分支课程组组长、commiter所有硬性验收项通过条件项结论明确后合入 test 分支。7test 分支上组织内测布道师团队体验课程提 issue 闭环问题课程小组、布道师团队完成在线体验、运行验证和问题反馈issue 需要明确责任人。8合入 master 分支Maintainertest 分支内测问题闭环后将课程内容合入 master 分支对外发布。2. 课程大纲与能力分层设计规范课程大纲设计时应围绕学习者能力成长路径进行整体规划而不是简单按照知识点堆叠章节。课程组需要明确课程面向的目标学习者、学习起点、最终能力目标并按照由浅入深的方式设计章节顺序、实践任务和阶段性学习成果。课程大纲应体现明确的能力分层递进关系例如初级、中级、高级。每个能力层级需要说明覆盖的章节范围、学习者完成该阶段后应掌握的核心能力、能够独立完成的典型任务以及对应的考核方式。能力分层设计应为后续不同层级的能力认证考试提供依据确保课程内容、实践任务和认证考核目标保持一致。以 Ascend C 算子开发系列课程为例课程可以按照基础开发能力、工程化开发能力、融合算子与性能优化能力逐级递进设计注章节编号不一定严格代表难度顺序阶段划分以能力目标为准。阶段章节范围能力目标考核方式初级第 1-2 章理解基础概念掌握核函数开发和核函数调用方式掌握简单矢量算子编程方法。选择题方式检验知识点掌握情况。中级第 3-4、7 章掌握工程化算子开发方式掌握泛化 Tiling 能力API 调用算子方式掌握矩阵乘法高阶 API 方式开发掌握精度调试方法。复杂矢量算子编程实践。高级第 5-6、8 章及以后掌握融合算子开发方式性能调优方法开源仓贡献流程。融合算子编程实践。3. 目录结构验收标准3.1 课程整体结构每个课程必须按照“课程名称 - 章节名称 - 小节名称”的层级组织并保持目录结构清晰、可定位、可维护如tutorials/ └── course_name/ ├── README.md ├── 01_chapter_name/ │ ├── 01.01_chapter_intro.ipynb │ ├── 01.02_section_name.ipynb │ ├── 01.03_chapter_test.ipynb │ ├── answer/ │ ├── images/ │ └── src/ └── 02_chapter_name/ ├── 02.01_chapter_intro.ipynb ├── 02.02_section_name.ipynb ├── 02.03_chapter_test.ipynb ├── answer/ ├── images/ └── src/每个课程目录必须包含主README.md课程目录、章节目录、文件名都使用英文、数字、下划线和必要的点号。章节目录命名必须符合0n_abc格式例如01_introduction、02_model_training。小节 notebook 命名必须符合0n.0m_abc.ipynb格式例如01.01_chapter_intro.ipynb。每个章节目录包含多个教程 ipynb以及answer、images、src三个目录。3.2 主 README.md 要求包含教程整体简介、适用对象、整体学习目标。必须说明支持或已验证的硬件型号。3.3 单个章节的结构要求每个章节第一小节必须为章节概述例如01.01_chapter_intro.ipynb。章节概述必须包含学习前置要求学习本章节教程时开发者需要已经具备的能力、已经学习的前置学习教程/章节环境要求。章节概述必须包含章节目标学完之后开发者能做到什么。章节概述必须包含章节内容每一小节的简介和跳转链接。每个章节最后一小节必须为章节实践例如01.03_chapter_test.ipynb。章节实践必须包含至少一道综合编程实践题用于检验本章学习掌握情况。每个章节按照课程实际内容拆分为多个中间小节.ipynb中间小节.ipynb必须包含小节概述、教程具体内容、课后练习或课后实践。纯知识点讲解类型的小节——提供课后练习题选择/填空。包含代码实操步骤的小节——提供课后代码实践题代码编程。所有练习、实践、章节实践必须提供答案或参考实现。3.4 answer、images、src 目录images目录用于存放该章节多个小节中的配图。answer目录用于存放课后练习、课后实践、章节实践的答案。src目录用于存放不便完整写入 notebook 的工程源码。answer、images、src目录下可按0n.0m_abc格式新建子目录以对应具体小节。4. Notebook 内容验收标准必须包含小节概述、教程具体内容、课后练习或课后实践三个部分。教程具体内容要求教程内容行文通顺逻辑由浅入深。第一次出现的新概念、新工具、新命令、新参数必须解释清楚未在章节前置要求或前面章节提及的内容不得直接默认学习者已经掌握。适当添加图片辅助讲解。架构、流程、数据流、模型结构、运行结果等复杂内容应优先使用图片或图示说明。教程正文使用完整可运行的示例代码服务于概念讲解和步骤演示。工程目录创建、依赖安装、代码开发、脚本运行等操作在 notebook 的 code cell 中执行。学习者应不需要手动打开其他文件夹才能理解或完成教程。notebook 中必须说明每个关键源码文件的作用。当因为源码较多无法全部在 notebook 展示必须存入src目录时notebook 中必须通过 code cell 提供cat、tree、ls等命令展示关键源码结构和内容。课后实践要求课后练习、课后实践、章节实践应有独立输入、任务说明和答案。实践题的代码开发、编译执行等操作步骤必须在 notebook 的 code cell 中执行。工程代码量大仅需要修改几个关键文件时工程可以存放在src对应小节目录中待填写文件通过 code cell 中使用%%write命令提供写入操作。答案通过 code cell 中使用cat命令展示。5. 课程开发上线体验规范课程上线前必须验证目标硬件对应的在线体验环境确保学习者可以直接打开 notebook 完成课程操作。当前体验环境包括两类learning-hub 的 notebook 在线体验环境。CANNLab包括 910B/910C 云开发环境以及 950 尝鲜体验环境。适用课程目标硬件体验环境准入要求所有课程A2 / A3learning-hub 的 notebook 在线体验环境CANNLab 的 910B/910C 云开发环境支持 A2/A3 硬件的课程必须保证在 learning-hub 的 notebook 在线体验环境和 CANNLab 的云开发环境中均可运行且不报错。所有课程A5CANNLab 的 950 尝鲜体验环境支持 A5 硬件的课程必须保证在 CANNLab 的 950 尝鲜体验环境中可运行且不报错。6. PR 准合入 Checklist序号验收项准合入要求结果1课程大纲设计课程大纲围绕学习者能力成长路径设计明确目标学习者、学习起点、最终能力目标、章节顺序和阶段性学习成果。□ 通过 □ 不通过2能力分层设计课程明确初级、中级、高级等能力层级并说明各层级覆盖章节、核心能力、典型任务和考核方式。□ 通过 □ 不通过3课程位置课程目录位于tutorials/下。□ 通过 □ 不通过4命名规范课程目录、章节目录、文件名均为英文、数字、下划线或点号不包含中文。□ 通过 □ 不通过5章节命名章节目录命名符合0n_abc格式。□ 通过 □ 不通过6小节命名小节 notebook 命名符合0n.0m_abc.ipynb格式。□ 通过 □ 不通过7主 README课程根目录包含README.md并包含教程整体简介、适用对象、整体学习目标、支持或已验证的硬件型号。□ 通过 □ 不通过8章节目录每个章节包含answer、images、src目录。□ 通过 □ 不通过9章节概述每个章节第一小节为章节概述且包含前置要求、章节目标、章节内容和小节跳转链接。□ 通过 □ 不通过10章节实践每个章节最后一小节为章节实践且至少包含一道综合实践题。□ 通过 □ 不通过11普通小节每个普通小节包含小节概述、教程内容、课后练习或课后实践。□ 通过 □ 不通过12答案目录所有课后练习、课后实践、章节实践均有答案或参考实现并放入answer目录。□ 通过 □ 不通过13图片引用notebook 中适当添加图片图片位于images目录并使用相对路径引用。□ 通过 □ 不通过14代码执行除纯理论内容外notebook 中所有代码均可从上到下执行并得到正确结果。□ 通过 □ 不通过15代码解耦教程正文代码与实践题代码相互解耦。□ 通过 □ 不通过16源码查看源码较多放入src时notebook 中提供查看、说明和运行源码的命令。□ 通过 □ 不通过 □ 不适用17完整操作学习者无需手动到其他目录查找或修改代码即可完成教程。□ 通过 □ 不通过18行文逻辑教程内容行文通顺逻辑由浅入深新概念首次出现时解释清楚。□ 通过 □ 不通过19运行验证所有 notebook 已完成实际运行验证PR 描述中说明硬件型号、运行环境、在线体验环境和验证结果。□ 通过 □ 不通过20A2/A3 在线体验支持 A2/A3 硬件的课程必须保证能在 learning-hub 的 notebook 在线体验环境和 CANNLab 的云开发环境中可运行且不报错。□ 通过 □ 不通过 □ 不适用21A5 在线体验支持 A5 硬件的课程必须保证能在 CANNLab 的 950 尝鲜体验环境中可运行且不报错。□ 通过 □ 不通过 □ 不适用【免费下载链接】cann-learning-hubCANN 学习中心仓支持在线互动运行、边学边练提供教程、示例与优化方案一站式助力昇腾开发者快速上手。项目地址: https://gitcode.com/cann/cann-learning-hub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考