赞
踩
AscendCL全称Ascend Computing Language,简称ACL,其是一套用于在昇腾平台上开发深度学习推理应用的API库,目前有C语言和Python两个版本,实现利用昇腾硬件计算资源,在CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。简单来说,AscendCL就是一个调用昇腾硬件计算资源的语言。比如我们想让NPU并行计算,我们就可以使用ACL编写并行计算的代码去实现。
ACL的逻辑架构图如下:
主要流程图如下:
1、AscendCL初始化
使用AscendCL接口开发应用时,必须先初始化AscendCL,否则可能会导致后续系统内部资源初始化出错,进而导致其他异常。调用aclInit接口实现初始化AscendCL。
2、运行管理资源申请
依次申请运行管理资源:Device、Context、Stream。
3、算子调用/模型推理
调用算子进行模型装换,将模型装换成om离线模型;将模型加载到系统中;对数据进行处理,进行编码、解码、抠图、图片缩放等操作;执行模型,实现具体功能;数据后处理,处理模型推理的结果;调用卸载模型接口卸载模型。
4、运行管理资源释放
依次释放运行管理资源:Stream、Context、Device。
5、AscendCL去初始化
有初始化就有去初始化,在确定完成了AscendCL的所有调用之后,或者进程退出之前,需去初始化AscendCL。调用aclFinalize接口实现AscendCL去初始化。
tips
Device是用户指定的计算设备,即昇腾AI处理器的硬件设备,利用PCle与Host相连,提供NN计算能力。
Context可以理解为一个容器,与用户线程绑定,一个用户线程对应一个Context,其管理所有对象(如Stream)的生命周期。
Stream是Device上的执行流,用于维护一些异步操作的执行顺序,确保按照调用顺序在Device上执行。
Task是Device上真正的执行体,从属于Stream,用户编程时并不感知。
韦恩图如下:
RC(Root Complex)模式,即AI应用、CANN和昇腾NPU合设在同一个机器中,比如Atlas 200 DK开发者套件,就是典型的RC模式。
EP(Endpoint)模式,即AI应用与CANN在同一个机器中,其通过PCle去调用远端的昇腾NPU进行计算,比如昇腾训练服务器。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。