CANN社区bessel_i0 API开发任务

7月社区任务-prims.bessel_i0 API开发任务书

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

基础信息

  • 技术标签:高阶API开发
  • 适配硬件:Ascend 950PR/Ascend 950DT
  • 开源仓地址:https://gitcode.com/ascend/asc-devkit
  • CANN 版本:本次社区任务指定CANN版本
  • 开发语言:Ascend C

任务概述

基于 PyTorch IR 的prims.bessel_i0接口,在昇腾 NPU 上使用 Ascend C 编程语言实现对应的高阶API。该API用于计算第一类零阶修正贝塞尔函数I_0(x),完成API设计、开发、测试全流程工作,测试通过后将代码提交至asc-devkit开源仓。

核心开发要求及验收标准

功能实现要求

  1. 与 PyTorch IRprims.bessel_i0接口核心功能完全对齐,支持原API对应的所有数据类型(float32)、数据格式。
  2. 支持API泛化功能,满足各类合法输入场景的计算需求,验收阶段将采用泛化数据进行验收。
  3. 正确处理边界情况(大值输入的数值稳定性、NaN/Inf特殊值处理)。

测试标准

需自行设计全场景自验证用例,验收阶段将采用泛化数据进行功能、精度、性能全维度验证。自验证报告完整、可复现,所有测试用例执行通过。

性能要求

  1. 至少实现Cube/Vector/MTE其中一个Bound(任一流水占比超80%)。
  2. 特殊场景无法达标的(如小shape场景等),需提供性能仿真图和分析结论佐证。

精度要求

构造API测试用例计算精度需满足AscendOpTest工具默认阈值。

文档规范要求

  1. API设计文档可根据模板填写,内容完整、格式规范,且必须通过评审。设计文档需在asc-devkit仓提交文档评审issue,2工作日内反馈评审结果,如方案有更新,评审时间同步刷新。
  2. 自验证报告除基础场景外还应覆盖边界值场景,具体可参考算子自验证报告,需包含测试用例执行日志/截图、整体测试通过截图、性能数据截图,可指导复现测试结果。
  3. README 文档内容完整、规范,可参考代码仓API的接口说明文档。

验收交付件

  1. asc-devkit开源仓 fork 的个人代码仓链接(需包含:API代码、API README 文档、UT代码、多场景的功能测试代码)。交付件可按照如下目录提交:

    ├── docs # API接口说明文档 ├── impl # API接口实现源代码 ├── include # API接口声明源代码 └── tests # API的测试代码:包括单元测试和功能测试用例
  2. API自验证报告。

  3. 评审通过的API设计文档。

PR 申请合入

测试通过后,在asc-devkit开源仓提交 PR 申请,申请将开发完成的API合入( https://gitcode.com/cann/asc-devkit/tree/master/experimental/ )。

PyTorch IR参考信息

  • PyTorch官方文档: https://docs.pytorch.org/docs/stable/generated/torch.i0.html

参考资料

  1. 文档类:Ascend C高阶API贡献指南,Ascend C快速入门,Ascend C接口列表。
  2. 课程类:Ascend C在线课程。
  3. 参考样例:asc-devkit仓库中的现有高阶API实现。

环境获取

  1. 开源仓提供100小时免费时长,请不使用时及时关闭,用时耗尽前请务必保存相关资料,建议及时提交备份。
  2. 使用 hidevlab notebook 算力。
  3. 如需额外环境资源,请联系昇腾小助手。

特别注意事项

  1. 开发过程需严格遵循社区编码规范。
  2. 所有交付件需提前完成自验证,确认符合验收标准后再提交验收申请。
  3. 开发前请务必阅读【社区任务】流程及注意事项。

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

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