CANN启航营哈工大课程实践 哈工大启航营课程实践【免费下载链接】cann-launch-camp用户可借助此项目规范管理 CANN 开源社区启航营高校活动的课程作业、课设、毕设等实践作品其核心功能是统一标准化目录层级与提交规范保障作品提交规整、可追溯、可评审。项目地址: https://gitcode.com/cann/cann-launch-camp本目录用于收录哈工大启航营的课程实践结果。实践内容本次实践综合了启航营的所有学习内容以Qwen3-8B在昇腾NPU上的推理优化为主线从量化Qwen3-8B展开需求分析开发自定义A8W8量化matmul算子并接入模型验证实现需求分析——算子开发——单算子测试——测试驱动优化——算子接入模型测试的完整开发链路。完整实践内容可见自定义量化 A8W8 matmul 算子开发并接入 Qwen3-8B环境准备详细操作步骤请参考环境准备指南简要流程创建CANNLab云开发环境并安装依赖启动Jupyter Server并复制terminal中打印出来的完整URL打开VSCode中的ipynb文件点击选择内核、现有Jupyter服务器粘贴完整URL选择该Server下的python kernel保持terminal不关闭运行notebook中的代码单元作业提交要求提交完整的 Jupyter Notebook.ipynb保留所有单元格输出。提交前依次运行所有单元格确保自定义算子编译成功算子功能测试通过性能数据收集成功。文件命名gitcode账号_result.ipynb。允许并且鼓励使用 AI 工具辅助但须独立思考并在报告中简述解决了什么疑惑、是否引入新 bug。不得抄袭。提交目录结构按以下规范创建个人目录并提交成果到submission目录下个人提交目录命名格式{gitcode账号}_result个人目录下的提交内容包括个人notebook结果{gitcode账号}_result.ipynb个人实现的自定义算子文件{gitcode账号}_qmm_custom.asc个人实践报告{gitcode账号}_report.md其中个人实践报告的模板可以参考实践报告模板整体目录结构如下First-session/ ├── README.md ├── prepare_env_guide.md # 环境准备指南 ├── report_template.md # 实践报告模板 ├── submission/ # 结果提交目录 │ ├── {gitcode账号}_result # 个人提交目录 │ │ ├── {gitcode账号}_result.ipynb # 个人notebook结果 │ │ ├── {gitcode账号}_qmm_custom.asc # 个人实现的自定义算子文件 │ │ └── {gitcode账号}_report.md # 个人实践报告 │ └── ... └── ...提交流程详细操作步骤请参考 PR 提交指南简要流程Fork 代码仓并克隆到本地在本地创建个人提交目录完成内容编写与自检提交 PR 等待审核评分标准总览实践任务本次实践共包含 6 个任务其中任务一至任务三为算子核心实现Tiling 设计、Cube-only Kernel、CubeVector Kernel任务四为算子编译任务五为单算子功能与性能测试任务六为算子接入模型测试。任务之间存在依赖关系需按顺序完成。考核项分值评分说明功能正确性-单算子15分共24条用例全通过为满分部分通过按比例给分功能正确性-网络5分自定义算子接入后网络输出文本一致为满分否则为0分性能-单算子5分按性能排名从高到低给分性能-网络5分比非量化模型平均推理耗时短即为满分答辩10分3分算子功能有问题结果呈现不完整6分算子功能正确结果呈现完整思路说明清晰10分算子功能正确结果呈现完整思路说明清晰有深入思考及优化实践性能分须先通过算子功能验证未通过则性能 0 分。 非量化模型平均推理的参考耗时为85ms。 网络输出文本的参考结果如下The output of an attention function is a **weighted sum of the value vectors**, where the weights are determined by the similarity between the **query vector** and each **key vector** in the set of key-value pairs. ### Mathematically, the attention function can be described as: $$ \text{Attention}(Q, K, V) \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$ Where: - $ Q $ is the **query matrix** (shape: $ [n \times d_k] $) - $ K $ is the **key matrix** (shape: $ [m \times d_k] $) - $ V $ is the **value matrix** (shape: $ [m \times d_v] $) - $ d_k $ is the dimension of the keys and queries - $ \text{softmax} $ is applied along the attention heads or across the keys ### Explanation of the Output: - The **output** is a **vector** (or matrix, if multiple queries) of the same dimension as the values $ V $. - Each element in the output is a **weighted combination** of the value vectors, with weights determined【免费下载链接】cann-launch-camp用户可借助此项目规范管理 CANN 开源社区启航营高校活动的课程作业、课设、毕设等实践作品其核心功能是统一标准化目录层级与提交规范保障作品提交规整、可追溯、可评审。项目地址: https://gitcode.com/cann/cann-launch-camp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考