基本介绍
随着人工智能与深度学习的快速发展,高效且友好的计算工具已成为开发者的迫切需求。随着算力需求的不断增长,专用计算芯片及其配套的软件生态系统的重要性日益突出。为了提升开发者在昇腾硬件上的计算体验,哈尔滨工业大学计算学部苏统华教授团队与CANN团队合作,共同开发了昇腾原生Numpy——AsNumpy。该库与Numpy接口高度兼容,并能充分发挥昇腾硬件的高效计算能力。
AsNumpy的核心功能是将高性能CANN算子封装为与Numpy保持兼容的接口,开发者可以像使用熟悉的Numpy一样,轻松调用CANN算子,借助昇腾硬件的强大计算能力完成各种数学计算任务。
项目地址:https://gitcode.com/HIT1920/asnumpy,后续会正式贡献到CANN开源社区。
项目特点
1. 与Numpy高度兼容
AsNumpy的核心设计理念是与Numpy接口高度兼容,这意味着熟悉Numpy的开发者无需额外学习成本,即可轻松使用AsNumpy。同时,现有的Numpy代码迁移至AsNumpy也非常便捷。通过对比同一计算任务下的Numpy编程(左)与AsNumpy编程(右),可以看出其低学习成本和低迁移成本,最大程度保留了开发者原有的开发经验和编程风格。

2. 基于昇腾硬件的高效计算能力
AsNumpy的重要特点是依赖昇腾硬件的高效计算能力。其底层实现基于Ascend C算子编程语言,为深度学习等计算密集型任务提供高效支持,显著提升计算速度。昇腾硬件在人工智能计算领域具有出色的性能和能效比,与AsNumpy的结合,将为开发者带来更优质的计算体验。
3. 开源与开放性
作为开源项目,AsNumpy具有开放、透明的特点。开发者可以自由查看源代码、提出问题、贡献代码,从而推动项目的持续优化和创新。
项目架构
AsNumpy的架构设计兼顾了开发者的使用习惯和昇腾硬件的高效计算能力,主要包含以下三层结构:
1. 接口层
提供与Numpy高度兼容的API,确保开发者能够无缝迁移代码。
2. 封装层
将高性能的CANN算子进行封装,实现与接口层的高效对接。
3. 底层调用层
负责与昇腾硬件进行交互,确保计算任务能够高效执行。

项目优势与展望
AsNumpy作为首个基于昇腾硬件的Numpy计算库,为开发者提供了一种全新的选择——在保持类Numpy编程风格的同时,充分利用昇腾硬件的计算能力。未来,随着项目的不断推进,完善的运行时管理 API、功能丰富的ndarray类以及便捷的打包发布脚本将逐步开源,进一步提升项目的易用性和功能性。
我们期待AsNumpy能在人工智能计算领域发挥越来越重要的作用,为推动人工智能技术的发展贡献力量。也欢迎更多的开发者加入AsNumpy项目,共同构建自主、繁荣的AI计算生态!