当前位置:   article > 正文

【MindStudio训练营第一季】什么是AscendCL?_5、 基于ascendcl开发基础推理应用时,涉及以下哪几个运行管理资源的申请? a. host

5、 基于ascendcl开发基础推理应用时,涉及以下哪几个运行管理资源的申请? a. host

一、介绍

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模式与EP模式

RC(Root Complex)模式,即AI应用、CANN和昇腾NPU合设在同一个机器中,比如Atlas 200 DK开发者套件,就是典型的RC模式。

EP(Endpoint)模式,即AI应用与CANN在同一个机器中,其通过PCle去调用远端的昇腾NPU进行计算,比如昇腾训练服务器。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/224292
推荐阅读
相关标签
  

闽ICP备14008679号