
oil-gas-ops-prospect贡献指南从提Issue到PR合入的开源协作全流程【免费下载链接】oil-gas-ops-prospect面向油气勘探oil gas exploration领域的昇腾自定义算子库。仓名即 oil-gas-ops油气算子 prospect勘探目标面向地震成像、全波形反演等勘探计算场景项目地址: https://gitcode.com/cann/oil-gas-ops-prospectoil-gas-ops-prospect 是面向油气勘探领域的昇腾自定义算子库仓名即 oil-gas-ops油气算子 prospect勘探目标覆盖地震成像、全波形反演等计算场景。本文是它的完整开源贡献指南从提 Issue、认领任务到本地自检、提交 PR、通过 CI 门禁再到双 Committer 代码检视合入带你走通这条全流程协作链路。 贡献前准备环境就绪与协议签署在动手写代码之前先完成 3 件准备工作签署 CLA 协议并了解行为准则参与 CANN 社区贡献前需先了解社区行为准则并完成 CLA贡献者许可协议签署克隆仓库git clone https://gitcode.com/cann/oil-gas-ops-prospect.git cd oil-gas-ops-prospect确认硬件环境本仓当前面向Ascend 910B算子在 NPU 上的精度、性能、显存必须在真实 910B 上验证通过这是硬性要求。环境搭建可参考快速入门与环境部署。 本仓归属 oil-gas-engineering SIG完整流程详见贡献指南。 第一步提 Issue——先讨论方案再写代码仓库明确要求如果你的修改不是简单的 bug 修复而涉及新增算子、新增接口、修改调用约定或改动构建流程请务必先通过 Issue 讨论方案以免代码被拒绝合入。拿不准是否属于简单修复时同样建议先提 Issue。贡献前判断你要做哪一类贡献类型Issue 类型关键材料新增算子Requirement | 需求建议业务背景、预期收益、设计方案算子 Bug 修复Bug-Report | 缺陷反馈复现 shape、版本信息、期望与实际结果算子性能优化Requirement | 需求建议优化点说明 设计方案新增算子 Issue 要写什么新建Requirement|需求建议类 Issue一般包含三部分背景信息来自哪个勘探业务场景叠前偏移、RTM、FWI 等当前用什么实现、瓶颈在哪价值/作用预期加速比、显存收益或精度收益设计方案算子数学定义、输入输出 shape/dtype/format、切分策略、目标 SOC。Bug 类 Issue 建议附带的信息复现用的 shape、dtype 与调用方式CANN 版本、SOC 型号、torch/torch_npu版本期望结果与实际结果含误差量级。认领任务一句话/assign需求评审通过后在 Issue 评论框输入/assign yourself即可认领任务。SIG 组会指派 Committer 对 Issue 进行评审完成修改后在 Issue 中 对应 Committer。 贡献新算子按后端选对交付目录本仓有三类算子后端交付件不同请先判断你的算子属于哪一类完整说明见算子开发指南场景后端目录精细控制核间切分与流水追求极致性能AscendCOPP.run包ascendc/operators/Python 快速表达、依赖 autograd、形态多变Triton-Ascendwhltriton-ascend/组合现有 torch 算子即可表达Composite-Torchcomposite-torch/AscendC 算子的标准交付件结构ascendc/operators/${op_name}/ ├── op_host/ # OpDef、InferShape、TilingFunc 及 Tiling 算法 └── op_kernel/ # kernel 入口与实现同时还需交付manifest.tsv 中追加一行注册算子、ascendc/pybind/ 下的 Python API、tests/ut/op_host/ 下的切分 UT、tests/st/ 下的多 case aclnn 测试以及 examples/aclnn/ 中的两段式小样例。几条关键约定切分算法必须抽到op_host/op_tiling_core.h与平台无关ophost UT 才能覆盖真实算法C 的 OpType 用 PascalCase如ComplexMulaclnn 接口为aclnn OpTypePython 接口用蛇形命名如complex_mul不加npu_前缀。Triton-Ascend 算子的交付件triton-ascend/${op_family}/ ├── __init__.py # 对外导出 ├── triton_${op_family}.py # Triton kernel 与 autograd 封装 └── README.md # 算子说明kernel 需提供PyTorch 回退实现并在 setup.py 中按算子名注册进入 whl。可参考现有实现 triton_fft_real.py。精度要求PR 里要附精度报告新增或修改算子的 PR 需在描述中附上精度测试报告报告格式直接复制 精度验收报告模板 逐项填写即可。✅ 提交前本地自检3 条命令守住质量底线提 PR 之前本地跑完这套自检bash build.sh --install bash build.sh -u --ut --st --precision --perf bash scripts/check_license_header.sh依次是编译安装并冒烟、跑全部测试套件切分、上板、精度、性能、检查许可证头。测试分类说明见 tests/README.md。合规检查同样不能漏C 代码可用仓内.clang-format格式化符合社区 C 编程规范所有新增源文件带Apache License 2.0许可证头Markdown 文档语法符合规范。 提交 PR模板填全、关联 Issue提交 PR 时重点关注按 PR 模板填写本次 PR 的业务背景、目的、方案PR 描述说明更改内容和原因并关联对应 Issue检查 PR 标题是否清晰、是否已签署 CLA。优化类 PR 还须在描述中给出优化前后的性能对比数据。️ CI 门禁与代码检视合入前的最后两关第一关CI 门禁。通过评论compile指令触发开源仓门禁当前门禁包含代码编译、静态检查codecheck 误报可提交 SIG 成员屏蔽、UT 测试。依据 CI 结果修改后在关联 Issue 中 指派的 Committer。第二关代码检视。合入前需至少两名 Committer完成代码检视并分别在 PR 中评论/lgtm与/approve。检视意见修改完成后再次 检视人即可等待合入。 全流程速查一张表记住贡献链路步骤关键动作常用指令/材料1. 提 Issue阐明方案先讨论后写码Requirement / Bug-Report2. 认领评论认领任务/assign yourself3. 开发按后端交付件开发参考目录结构4. 自检本地编译测试许可头build.sh -u全套件5. PR填模板、关联 Issue附精度报告模板6. CI触发门禁评论compile7. 检视合入双 Committer/lgtm/approve除了贡献代码社区也欢迎你参与帮助解决他人 Issue如果对应 Issue 需要代码修改同样可以/assign认领并协助解决共同优化易用性。 延伸阅读CONTRIBUTING.md完整贡献指南docs/zh/develop/operator_development_guide.md算子开发指南docs/zh/develop/precision_acceptance_template.md精度验收报告模板docs/zh/context/dir_structure.md目录结构说明docs/zh/op_list.md算子列表docs/zh/api_list.md接口列表CHANGELOG.md变更记录【免费下载链接】oil-gas-ops-prospect面向油气勘探oil gas exploration领域的昇腾自定义算子库。仓名即 oil-gas-ops油气算子 prospect勘探目标面向地震成像、全波形反演等勘探计算场景项目地址: https://gitcode.com/cann/oil-gas-ops-prospect创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考