当前位置:网站首页>CANN的接口调用流程概述
CANN的接口调用流程概述
2022-06-10 14:45:00 【华为云】
CANN库里面目前在看的是c++的代码,在WEB时代流行的是JAVA,而不是c或者c++,原因之一就是JAVA不需要关注内存的分配和释放,而这些却正是在c或c++编程中重要格外关注的,因此而产生不少的代码片段,在看代码的时候,稍稍会影响对于正常流程的代码的关注。
再则,在接口调用后,为了程序的健壮和容错,往往都要对于调用返回结果进行检查和错误处理,这样看代码时也会觉得稍稍繁琐。
所以先暂时抛开这些,来主要的关注一下接口调用主流程,这样看代码时能够提纲挈领,而不容易被淹没在代码细节中。
先要介绍一下CANN的概念,它是一个技术架构,官方定义是:
- CANN(Compute Architecture for Neural Networks)是华为公司针对AI场景推出的异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。
然后代码中我们经常会看看名字以acl开头的接口,那么ACL是计算语言,概念定义如下:
- AscendCL(Ascend Computing Language)是一套用于在昇腾平台上开发深度神经网络推理应用的C语言API库,提供运行资源管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,能够实现利用昇腾硬件计算资源、在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。简单来说,就是统一的API框架,实现对所有资源的调用。

上图中的 计算资源层 是昇腾AI处理器的硬件算力基础,主要完成神经网络的矩阵相关计算、完成控制算子/标量/向量等通用计算和执行控制功能、完成图像和视频数据的预处理,为深度神经网络计算提供了执行上的保障。
从图中还可以看出,ACL包含与CANN之中,并且处于CANN的结构分层中的最上层。
所以,应用层的开发,直接使用的接口就是ACL接口。当然,可以有第三方框架/lib库来调用ACL形成更高级的接口服务提供给应用。
ACL的优势这里必须要列一下:
- 高度抽象:算子编译、加载、执行的API归一,相比每个算子一个API,AscendCL大幅减少API数量,降低复杂度。
- 向后兼容:AscendCL具备向后兼容,确保软件升级后,基于旧版本编译的程序依然可以在新版本上运行。
- 零感知芯片:一套AscendCL接口可以实现应用代码统一,多款昇腾AI处理器无差异。
来看一下ACL的总体调用流程:

实际上这个流程就涵盖了昇腾CANN体验官第四期里的内容,一个是模型推理,一个是数据预处理(视频、图片的缩放、转换等动作)。
好了,掌握整体调用流程,对我们去学习了解CANN samples里的实例代码是有帮助的。
边栏推荐
猜你喜欢

2022 practice questions and online simulation test for the third batch of Guangdong Provincial Safety Officer a certificate (principal)
![[registration] to solve the core concerns of technology entrepreneurs, the online enrollment of](/img/d7/4671b5a74317a8f87ffd36be2b34e1.jpg)
[registration] to solve the core concerns of technology entrepreneurs, the online enrollment of "nebula plan open class" was opened

LeetCode_21(合并两个有序链表)

QT 基于QScrollArea的界面嵌套移动

Shutter wrap button bottomnavigationbar learning summary 4

Orgin framework notes

Binary tree and figure 1

100003字,带你解密 双11、618电商大促场景下的系统架构体系

CVPR 2022 | 基于序列对比学习的长视频逐帧动作表示

几种方式可以实现 JMeter 参数化?
随机推荐
Meta公司新探索 | 利用Alluxio数据缓存降低Presto延迟
【LogoDetection 数据集处理】(3)将训练集按照类别划分为多个文件夹
JS中的call()方法和apply()方法用法总结
[discrete mathematics review series] VI. tree
Beijing / Shanghai internal promotion | recruitment of full-time interns in the system and network group of Microsoft Research Asia
Why should the R & D effectiveness team of Internet companies be independent? When is independence?
【离散数学期复习系列】六、树
1
CG碰撞检测 Collision Testing
洞见科技入选「爱分析· 隐私计算厂商全景报告」,获评金融解决方案代表厂商
[advanced MySQL] optimize SQL by using the execution plan explain (2)
竟然还有人说ArrayList是2倍扩容,今天带你手撕ArrayList源码
[discrete mathematics review series] IV. figure
[discrete mathematics review series] II. First order logic (predicate logic)
CVPR 2022 | frame by frame motion representation of long video based on sequence contrast learning
NC | Wang Jun / song Mozhi combined with third-generation sequencing to analyze the structural variation and function of intestinal flora
[logodetection data set processing] (1) divide the data set into training set and verification set
js获取数组中最大值
KaTeX问题 —— csdn编辑时中打出等号对齐的样式
我的第一个Go程序