news 2026/7/5 19:56:45

CANN社区任务-MatmulGatherScatter算子开发

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN社区任务-MatmulGatherScatter算子开发

7月社区任务-MatmulGatherScatter算子开发任务书

【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions

基础信息

  • 技术标签:算子开发
  • 适配硬件:Ascend 950PR/Ascend 950DT
  • 开源仓地址:https://link.gitcode.com/i/856c62aae5d86f4af2db7b738a9f625e
  • CANN 版本:算子开源仓指定版本
  • 开发语言:Ascend C

任务概述

本算子实现融合 Gather/Scatter 的矩阵乘法(Matmul with Gather/Scatter Fusion)。通过索引向量从 A 矩阵中 Gather 出指定行的子集参与 Matmul 计算,然后将计算结果通过同一索引向量 Scatter 写回 D 矩阵的对应行。该融合方式适用于推荐系统等需要对稀疏特征行进行 gather 后做矩阵乘的场景。

算子公式

$$ \mathbf{D}[\text{indices}[i], j] = \sum_{k=0}^{K-1} \mathbf{A}[\text{indices}[i], k] \cdot \mathbf{B}[k, j] $$

等价向量化形式:$\mathbf{D}[\text{indices}, :] = \mathbf{A}[\text{indices}, :] \times \mathbf{B}$

D 的其他行(不在 indices 中的位置)保持为零。输出矩阵 D 需先做置零初始化。

核心开发要求及验收标准

功能实现要求

  1. 实现融合的 Gather A(按行)+ Matmul + Scatter D(按行),单次 kernel launch 完成全部计算。
  2. 索引向量由调用方保证不重复、在合法范围内,算子端不做校验。
  3. Gather A 和 Scatter D 使用同一索引向量。
  4. 输出 D 需先置零,仅索引行被写入。

参数说明

参数名输入/输出/属性描述使用说明数据类型数据格式维度(shape)非连续Tensor
A输入Matmul 左矩阵,形状 (M, K)按 indices gather 行,RowMajor 布局FP16ND2
B输入Matmul 右矩阵,形状 (K, N)RowMajor 布局FP16ND2
indices输入行索引向量,长度 J元素为 [0, M-1] 的不重复整数INT32ND1
D输出Matmul 输出矩阵,形状 (M, N)RowMajor 布局,仅 indices 行被写入,其余保持 0FP16ND2

算子约束限制

测试标准

需参考 CPU 精度标杆自行设计自验证用例,覆盖不同 index_size 比例、多种问题规模。需额外验证非索引行保持为零。自验证报告完整、可复现,所有测试用例执行通过。

性能要求

性能标杆为CUTLASS的36_gather_scatter_fusion,算子整体性能需与 0.8 倍 GPU(H100)持平。

精度要求

算子计算精度需满足 AscendOpTest 工具默认阈值。

文档规范要求

  1. 算子设计文档需根据参考模板填写,内容完整、格式规范,且必须通过评审;
  2. 自验证报告需要覆盖所有功能场景,参考xxx算子自验证报告,含测试用例执行日志/截图、整体测试通过截图、性能数据截图,可清晰指导算子使用与测试;
  3. README 文档内容完整、规范。

验收交付件

1, 自测用例、测试结果报告、测试步骤指导文档

2, 算子代码的私仓邀请链接、代码仓路径、分支、算子目录

PR 申请合入

测试通过后,在 Catlass 代码仓提交 PR 申请,申请将开发完成的算子合入https://link.gitcode.com/i/856c62aae5d86f4af2db7b738a9f625e,具体目录参考该PR:https://link.gitcode.com/i/856c62aae5d86f4af2db7b738a9f625e/pull/678 。

参考资料

  1. 文档类:Ascend C算子开发文档、CATLASS创新样例开发流程指南
  2. 课程类:Ascend C在线课程
  3. 参考样例:https://link.gitcode.com/i/856c62aae5d86f4af2db7b738a9f625e/blob/master/examples/44_quant_matmul_full_loadA_tla

环境获取

  1. 开源仓提供100小时免费时长,请不使用时及时关闭,用时耗尽前请务必保存相关资料,建议及时提交备份。

  2. 使用 hidevlab notebook 算力(https://hidevlab.huawei.com/online-develop-intro?from=hiascend)

  3. 如需额外环境资源,请联系昇腾小助手。

特别注意事项

  1. 开发过程需严格遵循 Ascend C 编程规范及算子开发相关要求;
  2. 所有交付件需提前完成自验证,确认符合验收标准后再提交验收申请;
  3. 开发前请务必阅读【社区任务】流程及注意事项,会例行更新。

【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 19:55:00

STM32F446RE与AD5593R嵌入式信号处理系统设计

1. 项目背景与硬件选型考量在嵌入式系统开发中,模拟信号与数字信号的相互转换是连接物理世界与数字世界的桥梁。AD5593R作为一款高度集成的混合信号器件,配合STM32F446RE高性能微控制器,能够构建出灵活高效的信号处理系统。这种组合特别适合需…

作者头像 李华
网站建设 2026/7/5 19:54:50

【Springboot毕设全套源码+文档】基于springboot绍兴旅游系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/5 19:54:10

Spek频谱分析器终极指南:专业音频可视化解决方案深度解析

Spek频谱分析器终极指南:专业音频可视化解决方案深度解析 【免费下载链接】spek Acoustic spectrum analyser 项目地址: https://gitcode.com/gh_mirrors/sp/spek 在音频处理的世界中,你是否曾遇到过这样的困境:需要快速分析音频文件的…

作者头像 李华
网站建设 2026/7/5 19:53:29

【sklearn实战】KMeans聚类评估全解析:从Seeds数据集到多指标对比

1. 初识Seeds数据集与KMeans聚类Seeds数据集是经典的农业数据集,记录了三个品种小麦种子的7个形态特征:区域、周长、压实度、籽粒长度、宽度、不对称系数和腹沟长度。这个数据集特别适合作为聚类分析的入门案例,因为它同时具备以下特点&#…

作者头像 李华
网站建设 2026/7/5 19:51:45

Shopware 6电商平台快速上手指南:从零搭建现代化在线商店

Shopware 6电商平台快速上手指南:从零搭建现代化在线商店 【免费下载链接】shopware Shopware 6 is an open commerce platform based on Symfony Framework and Vue and supported by a worldwide community and more than 3.100 community extensions 项目地址:…

作者头像 李华
网站建设 2026/7/5 19:51:26

15分钟精通Linly-Talker:从零到一打造你的AI数字人助手

15分钟精通Linly-Talker:从零到一打造你的AI数字人助手 【免费下载链接】Linly-Talker Digital Avatar Conversational System - Linly-Talker. 😄✨ Linly-Talker is an intelligent AI system that combines large language models (LLMs) with visual…

作者头像 李华