【华为云技术分享】昇腾AI处理器软件栈--总览

昇腾AI软件栈提供了计算资源、性能调优的运行框架以及功能多样的配套工具,是一套完整的解决方案,可以使昇腾AI处理器发挥出极佳的性能。

昇腾AI软件栈可以分为神经网络相关软件模块、工具链以及其它软件模块。

· 神经网络软件主要包含了流程编排器(Matrix),框架管理器(Framework),运行管理器(Runtime)、数字视觉预处理模块(Digital Vision Pre-Processing,DVPP)、张量加速引擎(Tensor Boost Engine,TBE)以及任务调度器(Task Scheduler,TS)等功能模块,主要用来完成神经网络模型的生成、加载和执行等功能。

· 工具链主要为神经网络实现过程提供了辅助便利。

这些主要组成部分在软件栈中功能和作用相互依赖,承载着数据流、计算流和控制流。昇腾AI软件栈主要分为4个层次和一个辅助工具链。4个层次分别为L3应用使能层、L2执行框架层、L1芯片使能层和L0计算资源层。工具链主要提供了程序开发、编译调测、应用程序流程编排、日志管理和性能分析等辅助能力。

昇腾AI软件栈逻辑架构图

L3应用使能层

L3应用使能层是应用级封装,主要是面向特定的应用领域,提供不同的处理算法。应用使能层包含计算机视觉引擎、语言文字引擎以及通用业务执行引擎等,其中:

·         计算机视觉引擎面向计算机视觉领域提供一些视频或图像处理的算法封装,专门用来处理计算机视觉领域的算法和应用。

·         语言文字引擎面向语音及其他领域,提供一些语音、文本等数据的基础处理算法封装等,可以根据具体应用场景提供语言文字处理功能。

·         通用业务执行引擎提供通用的神经网络推理能力。

在通用业务需求上,基于流程编排器定义对应的计算流程,然后由通用业务执行引擎进行具体的功能实现。L3应用使能层为各领域提供具有计算和处理能力的引擎,并可以直接使用下一层L2执行框架提供的框架调度能力,通过通用框架来生成相应的神经网络而实现具体的引擎功能。

L2执行框架层

L2执行框架层是框架调用能力和离线模型生成能力的封装,包含了框架管理器以及流程编排器。

对于昇腾AI处理器,L2执行框架提供了神经网络的离线生成和执行能力,可以脱离深度学习框架(如Caffe、TensorFlow等)使得离线模型(Offline Model,OM)具有同样的能力(主要是推理能力)。框架管理器中包含了离线模型生成器(Offline Model Generator, OMG)、离线模型执行器(Offline Model Executor, OME)和离线模型推理接口,支持模型的生成、加载、卸载和推理计算执行。

离线模型生成器主要负责将Caffe或TensorFlow框架下已经生成的模型文件和权重文件转换成离线模型文件,并可以在昇腾AI处理器上独立执行。离线模型执行器负责加载和卸载离线模型,并将加载成功的模型文件转换为可执行在昇腾AI处理器上的指令序列,完成执行前的程序编译工作。这些离线模型的加载和执行都需要流程编排器进行统筹。流程编排器向开发者提供用于深度学习计算的开发平台,包含计算资源、运行框架以及相关配套工具等,让开发者可以便捷高效的编写在特定硬件设备上运行的人工智能应用程序,负责对模型的生成、加载和运算的调度。在L2层将神经网络的原始模型转化成最终可以执行在昇腾AI处理器上运行的离线模型后,离线模型执行器将离线模型传送给L1芯片使能层进行任务分配。

L1芯片使能层

L1芯片使能层是离线模型通向昇腾AI处理器的桥梁。在收到L2执行框架生成的离线模型后,针对不同的计算任务,L1芯片使能层主要通过加速库(Library)给离线模型计算提供加速功能。L1芯片使能层是最接近底层计算资源的一层,负责给硬件输出算子层面的任务。L1芯片使能层主要包含数字视觉预处理模块、张量加速引擎、运行管理器、驱动以及任务调度器。

在L1芯片使能层中,以芯片的张量加速引擎为核心,支持离线模型的加速计算。张量加速引擎中包含了标准算子加速库,这些算子经过优化后具有良好性能。算子在执行过程中与位于算子加速库上层的运行管理器进行交互,同时运行管理器与L2执行框架层进行通信,提供标准算子加速库接口给L2执行框架层调用,让具体网络模型能找到优化后的、可执行的、可加速的算子进行功能上的最优实现。如果L1芯片使能层的标准算子加速库中无L2执行框架层所需要的算子,这时可以通过张量加速引擎编写新的自定义算子来支持L2执行框架层的需要,因此张量加速引擎通过提供标准算子库和自定义算子的能力为L2执行框架层提供了功能完备性的算子。

在张量加速引擎下面是任务调度器,根据相应的算子生成具体的计算核函数后,任务调度器会根据具体任务类型处理和分发相应的计算核函数到AI CPU或者AI Core上,通过驱动激活硬件执行。任务调度器本身运行在一个专属的CPU核上。

数字视觉预处理模块是一个面向图像视频领域的多功能封装体。在遇到需要进行常见图像或视频预处理的场景时,该模块为上层提供了使用底层专用硬件的各种数据预处理能力。

L0计算资源层

L0计算资源层是昇腾AI处理器的硬件算力基础。在L1芯片使能层完成算子对应任务的分发后,具体计算任务的执行开始由L0计算资源层启动。L0计算资源层包含了操作系统、AI CPU、AI Core和DVPP专用硬件模块。

AI Core是昇腾AI处理器的算力核心,主要完成神经网络的矩阵相关计算。而AI CPU完成控制算子、标量和向量等通用计算。如果输入数据需要进行预处理操作,DVPP专用硬件模块会被激活并专门用来进行图像和视频数据的预处理执行,在特定场景下为AI Core提供满足计算需求的数据格式。AI Core主要负责大算力的计算任务,AI CPU负责较为复杂的计算和执行控制功能,DVPP硬件完成数据预处理功能,而操作系统的作用是使得三者紧密辅助,组成一个完善的硬件系统,为昇腾AI处理器的深度神经网络计算提供了执行上的保障。

工具链

工具链是一套支持昇腾AI处理器,并可以方便程序员进行开发的工具平台,提供了自定义算子的开发、调试和网络移植、优化及分析功能的支撑。另外在面向程序员的编程界面提供了一套桌面化的编程服务,极大的降低了深度神经网络相关应用程序的开发门槛。

工具链中包括工程管理、工程编译、流程编排、离线模型转换、算子比对、日志管理、性能分析工具、自定义算子等。因此,工具链为在此平台上的应用开发和执行提供了多层次和多功能的便捷服务。

HDC.Cloud 华为开发者大会2020 即将于2020年2月11日-12日在深圳举办,是一线开发者学习实践鲲鹏通用计算、昇腾AI计算、数据库、区块链、云原生、5G等ICT开放能力的最佳舞台。

欢迎报名参会https://www.huaweicloud.com/HDC.Cloud.html?utm_source=&utm_medium=&utm_campaign=&utm_content=techcommunity

原文地址:https://www.cnblogs.com/huaweicloud/p/12229596.html

时间: 2024-10-07 17:23:17

【华为云技术分享】昇腾AI处理器软件栈--总览的相关文章

王晶:华为云OCR文字识别服务技术实践、底层框架及应用场景 | AI ProCon 2019【华为云技术分享】

演讲嘉宾 | 王晶(华为云人工智能高级算法工程师王晶) 出品 | AI科技大本营(ID:rgznai100) 近期,由 CSDN 主办的 2019 中国AI 开发者大会(AI ProCon 2019)在北京举办.在计算机视觉技术专题,华为云OCR人工智能高级算法工程师王晶分享了“文字识别服务的技术实践.底层框架及应用场景”的主题演讲. 演讲的第一部分,他分享了文字检测和识别的基础知识以及难点和最新进展.第二部分是华为云文字识别服务关键能力.关键技术,以及落地过程中遇到的“坑”,这对其他人工智能产

【华为云技术分享】【DevCloud · 敏捷智库】如何避免重要需求遗漏?

避免重要需求遗漏的思路 避免重要需求遗漏,首先我们需要反问一句 —— 为什么这些紧急重要的需求无法更早预见?同样的,我们需要了解: 具体是哪些外界原因?这些原因是否有共性,有的话,那就针对性处理: 增加的需求有无共性特点?有的话,可以针对性处理: 临时增加有多临时?我们是否有提高或改善响应能力的空间,如果我们可以更快调整和响应,使得这些临时需求对我们产生不了什么影响,那么这个问题也就不再是问题了: 既然是常态,为何我们的流程没有做出调整去应对?是调整过流程或工作方式,还是无法解决问题,还是说不知

【华为云技术分享】Linux内核发展史 (2)

Linux是由赫尔辛基大学的Linus Torvalds开发的,在系统开发期间得到了因特网上广大UNIX程序员的帮助.它最初只是受Andy Tanenbaum教授的Minix(—个小型的类UNIX系统)启发而开发的一个程序,纯属个人爱好,但后来它逐步发展成为一个完整的系统.Linux的成功来源于其之前操作系统和应用软件的已有工作,主要是UNIX和GNU.本小结我们将介绍一下UNIX的发展简史. 一.UNIX操作系统发展历史 UNIX操作系统最初是由贝尔实验室开发的,当时的贝尔实验室是电信业巨头A

【华为云技术分享】测试微课堂 | 有的放矢制定测试计划

本文着重介绍如何确定测试目的,划定测试范围,制订测试策略,组件测试团队,准备测试工具和环境,制订测试计划. 凡事预则立,不预则废.个人事项,团队协作都离不开计划.外出游玩有出行计划,产品立项有商业计划,下图中是笔者在某博物馆看到的上个世纪老电影的计划表,是不是很像软件项目里分角色的开发计划.同样地,做软件测试,尤其在涉及到团队协作时,需要制定测试计划. 团队开展测试活动之初,制定相应的测试计划,以指导整个测试周期中测试人员的测试活动.测试计划描述了测试目的.测试对象.测试范围.测试策略.测试活动

【华为云技术分享】根因分析

1.  什么是根因分析 在工作中我们经常会遇到根因分析的提法,有时也称作根原因分析或简称RCA(Root Cause Analysis),那什么是根因分析呢?目前还没有一个公认的定义,一般都是从操作层面来解释怎么进行根因分析的,缺少方法论框架性说明.有些书籍将发现问题和寻找解决方案也纳入根因分析的范围,使什么是根因分析变得更模糊.本文通过梳理相关知识,完善概念和模型,希望能在思维方法层面提供一个理解根因分析的新视角. 做为思维方法论,会涉及大量抽象概念和逻辑方法,本文把容易混淆的概念重新定义,而

【华为云技术分享】大数据容器化,头部玩家尝到了甜头

[摘要] 大数据容器化,大势所趋.头部玩家在进行大数据容器化后,尝到了甜头? 大数据的需求热度,从来都是这个时代的浪尖.然而由于大数据系统的复杂性,一度导致业界大数据已死的各种声音不断.尤其是当MapR被HPE收购,Cloudera公司股票持续跌成狗,使得这种声音进一步放大.其实,大数据的需求一直在,只是传统的大数据实现系统需要考虑重新构建.而容器依靠其自身的标准化,一次构建,随处运行的能力,使得非常适合大数据系统的构建和管理.容器技术当前正是那只火遍全球的当红辣子鸡. 1 华为云BigData

【华为云技术分享】漫谈LIteOS-物联网操作系统介绍

[摘要] 本文主要对于目前物联网操作系统的定义以及主要特点进行了分析,最后介绍了几个常见的物联网操作系统. 1简介 提到操作系统,可能首先想到的就是苹果操作系统,windows,Linux,Unix,Android,IOS等,显然目前比较为人熟知的操作系统基本都是一些手机或者电脑端的操作系统.而随着互联网技术的不断发展,硬件的体积越来越小,物联网技术也迎来了爆棚式的发展.物理网不同于 互联网的不同在于后者更关注的是人与人的互联,而前者是更加强调人与物,物与物的连接,从而实现万物互联(IOT).显

Python一秒搭建ftp服务器,帮助你在局域网共享文件【华为云技术分享】

“老板 来碗面” “要啥面?” “内牛满面..” 最近项目上的事情弄得人心累,本来是帮着兄弟项目写套入口代码,搞着搞着就被拉着入坑了.搞开发的都知道,最怕弄这种项目portal的东西,你调用一堆东西,结果各种调用报错都反馈到你这里,导致的结果就是除了啥问题都找你. 最形象的比喻就是,眼前一栋楼,你是看门的.电梯坏了找你.住户被盗了找你.连谁家下水不通了也找你,各种无厘头的破事儿,我就想送出一张图… 共享文件 熟悉Python的朋友们都知道,python自带了一个Simple HTTP Serve

【华为云技术分享】基于小熊派STM32芯片的通过MQTT上报JSON数据到华为物联网平台的自动售货机Demo解析

[摘要] STM32的工程在文章末尾,可自行下载. 一.工程配置 1.MCU类型选择STM32L431RC 2.烧录器选择OpenOCD,参数 -f interface/stlink-v2-1.cfg -f target/stm32l4x.cfg 3.输出目录选择 LiteOS_Lab_STM32\targets\STM32L431_BearPi\GCC\appbuild 4.编译器Makefile选择 targets\STM32L431_BearPi\GCC\Makefile 5.平台参数配置