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开源仓。
核心开发要求及验收标准
功能实现要求
- 与 PyTorch IR
prims.bessel_i0接口核心功能完全对齐,支持原API对应的所有数据类型(float32)、数据格式。 - 支持API泛化功能,满足各类合法输入场景的计算需求,验收阶段将采用泛化数据进行验收。
- 正确处理边界情况(大值输入的数值稳定性、NaN/Inf特殊值处理)。
测试标准
需自行设计全场景自验证用例,验收阶段将采用泛化数据进行功能、精度、性能全维度验证。自验证报告完整、可复现,所有测试用例执行通过。
性能要求
- 至少实现Cube/Vector/MTE其中一个Bound(任一流水占比超80%)。
- 特殊场景无法达标的(如小shape场景等),需提供性能仿真图和分析结论佐证。
精度要求
构造API测试用例计算精度需满足AscendOpTest工具默认阈值。
文档规范要求
- API设计文档可根据模板填写,内容完整、格式规范,且必须通过评审。设计文档需在asc-devkit仓提交文档评审issue,2工作日内反馈评审结果,如方案有更新,评审时间同步刷新。
- 自验证报告除基础场景外还应覆盖边界值场景,具体可参考算子自验证报告,需包含测试用例执行日志/截图、整体测试通过截图、性能数据截图,可指导复现测试结果。
- README 文档内容完整、规范,可参考代码仓API的接口说明文档。
验收交付件
asc-devkit开源仓 fork 的个人代码仓链接(需包含:API代码、API README 文档、UT代码、多场景的功能测试代码)。交付件可按照如下目录提交:
├── docs # API接口说明文档 ├── impl # API接口实现源代码 ├── include # API接口声明源代码 └── tests # API的测试代码:包括单元测试和功能测试用例API自验证报告。
评审通过的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
参考资料
- 文档类:Ascend C高阶API贡献指南,Ascend C快速入门,Ascend C接口列表。
- 课程类:Ascend C在线课程。
- 参考样例:asc-devkit仓库中的现有高阶API实现。
环境获取
- 开源仓提供100小时免费时长,请不使用时及时关闭,用时耗尽前请务必保存相关资料,建议及时提交备份。
- 使用 hidevlab notebook 算力。
- 如需额外环境资源,请联系昇腾小助手。
特别注意事项
- 开发过程需严格遵循社区编码规范。
- 所有交付件需提前完成自验证,确认符合验收标准后再提交验收申请。
- 开发前请务必阅读【社区任务】流程及注意事项。
【免费下载链接】cann-ops-competitions本仓库用于 CANN 开源社区各类竞赛、开源课题、社区任务等课题发布、开发者作品提交和展示。项目地址: https://gitcode.com/cann/cann-ops-competitions
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考