【MindStudio训练营第一季】什么是AscendCL?

一、介绍

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进行计算,比如昇腾训练服务器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值