公司动态
如何参与AscendSiPBoost开源贡献?社区开发流程与最佳实践一览
如何参与AscendSiPBoost开源贡献社区开发流程与最佳实践一览【免费下载链接】sip本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库基于华为Ascend AI处理器专门为信号处理领域而设计。项目地址: https://gitcode.com/cann/sip本文带你快速上手AscendSiPBoost昇腾信号处理加速库的开源贡献从签署CLA、提交Issue、认领任务到提交Pull Request完整梳理社区开发流程与最佳实践帮助新手在昇腾NPU信号处理算子领域完成第一次开源贡献。先认识AscendSiPBoost加速库AscendSiPBoost是CANN提供的高性能信号处理算子加速库基于华为Ascend AI处理器为AI模型场景PyTorch调用和信号处理场景C直接调用提供BLAS、FFT、复数基础计算及信号领域融合算子。架构自上而下分为信号处理框架算子管理、tiling与加载、MKI框架算子封装/注册/执行、信号处理算子库FFT/BLAS/Solver/复数基础计算/融合算子底层运行在CPU与NPU之上。参与贡献前建议先浏览 核心接口目录 与 算子实现目录了解BLAS算子core/blas/、FFT算子core/fft/等模块划分。开始贡献前的3步准备1️⃣ 了解社区行为准则SiP属于CANN开放项目参与贡献前请先阅读 CANN开放项目行为准则你在项目中的一切活动评论、提交Issue、编辑Wiki都需遵循该准则。2️⃣ 签署CLA贡献者许可协议贡献前必须签署CANN开放项目贡献者许可协议CLA根据你的身份选择法人CLA以企业身份贡献由企业管理人员签署法人贡献者CLA已签署法人CLA企业的员工需申请并由企业管理员审批个人CLA以个人身份贡献企业管理员CLA负责审批与人员管理3️⃣ 准备CANN开发环境编码贡献需先搭建CANN开发环境具体版本要求与安装步骤可参考 环境准备指南 及 编译构建文档。5种贡献方式总有一种适合你贡献类型适合人群操作方式算子bug修复有调试经验者提交Bug-Report类Issue并认领算子优化有性能调优思路者提交Requirement类Issue说明优化方案贡献新算子有全新算子想法者在Issue中提交设计方案与团队讨论后落到contrib目录文档纠错零门槛新手提交Documentation类Issue指出文档问题帮助解决他人Issue热心社区成员在Issue评论区交流解答可认领需要改码的任务所有贡献的完整指引见 贡献指南。Issue提交与任务认领流程社区Issue列表是贡献的入口推荐流程如下发现或新建Issue将发现的Bug、优化点或新算子想法以规范模板提交参与讨论每个Issue下都支持开发者交流评论区发表你的见解认领任务在评论框输入/assign或/assign yourself机器人会将Issue分配给你你的名字会出现在负责人列表中。代码贡献从Fork到PR合入的全流程Fork仓库将SiP仓库fork到个人账号克隆到本地并在独立分支修改代码git clone https://gitcode.com/cann/sip.git遵循许可协议SiP遵循 CANN Open Software License Agreement 2.0详见 LICENSE。新建cpp/h等源文件头部需添加版权声明py/sh文件同理个人贡献署名个人企业贡献署雇主名称提交Pull Request本地验证通过后提交PR在评论区评论compile触发CI编译流水线关注门禁与检视门禁不通过按提示修改通过后PR分配给committer检视关注其评审意见PR合入检视通过后代码合入源码仓并关闭关联Issue。社区由Bot统一管理PR与Issue常用命令包括/check-cla重查CLA状态、compile触发编译、/lgtm评审通过标签、/approve同意合并、/check-pr检查合入条件等完整命令说明见 社区交互命令一览。新手避坑常见问题速查PR出现cann-cla/no红色标签说明部分commit邮箱未签署CLA。统一commit邮箱与Gitcode提交邮箱后重新签署再评论/check-cla重新触发检查无法fork仓库个人账号下已存在同名仓库先重命名旧仓库再forkCI未触发网络或调度延迟导致webhook未到达评论/compile重新触发仓库刚创建时CI工程尚未建立请稍等系统自动构建。更多解答可参考 社区FAQs。最佳实践贡献新算子的高效路径 贡献新算子时官方提供了完整的开发教程 从零开始为SiP库开发一个Conj算子核心要点host侧在 core/ 下新增算子API实现在 ops/ 下按规范创建算子目录tiling、op_kernel、operation注册kernel侧实现NPU核函数参考现有算子如 conj_kernel.cpp 的切分与流水线写法关键一步在 op_list.yaml 中登记新算子信息否则构建系统不会将其编译进库自测验证参考 单元测试目录 补充用例并用 example/ 中的样例模板编写调用示例确保端到端跑通。总结参与AscendSiPBoost开源贡献的路径清晰而友好签署CLA → 提交/认领Issue → 本地开发 → 提交PR → 关注门禁与评审 → 合入。无论是修复一个算子Bug、纠正一处文档还是从零开发一个全新算子社区都会为你提供完整的流程与Bot支持。建议新手从 文档纠错 或 FAQs 中他人未解决的问题入手迈出你的第一步【免费下载链接】sip本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库基于华为Ascend AI处理器专门为信号处理领域而设计。项目地址: https://gitcode.com/cann/sip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考