昇腾社区首页
EN
注册
开发者
下载

简介

本节介绍应用开发主要功能、基本概念,并给出本文档的学习顺序建议。

概述

CANN提供了一套C语言API库(接口名前缀为acl,下文简称acl接口),您可以基于这套接口,利用AI处理器的硬件计算资源进行各种加速计算,典型的包括神经网络推理、图形图像预处理以及各种科学计算等。

acl接口提供如下核心功能:

  • 运行时管理:包括初始化环境、指定计算设备、申请和销毁内存、管理异步任务执行流、Kernel加载和执行等功能。
  • 单算子调用:对于CANN算子库中预置的算子,每个算子均提供了API供用户调用,以执行相应的算子功能。
  • 模型管理:包括加载om模型、执行推理和获取输出等功能。这里的om模型并非神经网络模型,而是由计算图编译生成的执行程序。
  • 媒体数据处理:主要包括视频/图像的编解码、图像处理(例如缩放、格式转换等)、音频编解码等功能。

acl接口应用场景:若想利用AI处理器进行计算,就必须通过acl接口进行设备管理、资源分配、算子调用等。在acl接口之上,CANN会提供框架适配层适配各种神经网络框架(例如Pytorch),该适配层会封装acl接口,最终使用AI处理器上的计算资源。用户也可以不通过框架,直接调用acl接口开发AI应用(例如目标识别应用),或者acl接口封装成第三方lib库。

acl接口优势:高度抽象,可以支持各代AI处理器;支持跨版本后向兼容,用户的应用程序正常的可以在后续升级的CANN版本上运行;基于AI处理器的应用程序可以通过acl接口调用CANN算子库中预置的大量算子,无需了解AI处理器细节,即可完成想要的数值计算。

文档使用建议

如果您是第一次使用本文档,已了解ACL做什么,但还不清楚如何开发应用时,建议:

  1. 先参考《CANN 软件安装指南》安装固件、驱动及CANN软件。
  2. 然后单击Link获取入门样例,按README.md中的指导下载样例源码、编译及运行应用等,再通过源码了解acl接口(接口名以acl开头)的关键代码逻辑。
  3. 再通过头文件和库文件说明接口调用流程了解整体的接口分类以及接口调用流程。
  4. 最后通过单算子调用媒体数据处理(含图像/视频等)模型管理等章节的接口调用流程+示例代码展开学习,扩展进行其它应用的开发。

具备C/C++语言程序开发能力、对机器学习或深度学习有一定了解的开发者,可以更好地理解本文档。