神经网络构造中,算子组成了不同应用功能的网络结构。而张量加速引擎(Tensor Boost Engine)作为算子的兵工厂,为基于昇腾AI处理器运行的神经网络提供算子开发能力,用TBE语言编写的TBE算子来构建各种神经网络模型。同时,TBE对算子也提供了封装调用能力。在TBE中有一个优化过的神经网络TBE标准算子库,开发者可以直接利用标准算子库中的算子实现高性能的神经网络计算。除此之外,TBE也提供了TBE算子的融合能力,为神经网络的优化开辟一条独特的路径。

TBE提供了基于TVM开发自定义算子的能力,通过TBE语言和自定义算子编程开发界面可以完成相应神经网络算子的开发,TBE的结构如下图所示,包含了特性语言(Domain-Specific Language,DSL)模块、调度(Schedule)模块、中间表示(Intermediate Representation,IR)模块、编译器传递(Pass)模块以及代码生成(CodeGen)模块。

运行管理器在软件栈中上下文关系如上图所示,在运行管理器上层为TBE提供的TBE标准算子库和离线模型执行器。TBE标准算子库为昇腾AI处理器提供神经网络需要使用到的算子,离线模型执行器专门用来进行离线模型的加载和执行。运行管理器下层是驱动,与昇腾AI处理器进行底层交互。

如上图所示,运行管理器对外提供各种调用接口,如存储接口、设备接口、执行流接口、事件接口以及执行控制接口,不同的接口由运行管理引擎控制完成不同的功能。

存储接口提供设备上HBM(High BandwidthMemory,高带宽存储器)或DDR(Double Data Rate,双倍速率内存)内存的申请、释放和复制等,包括设备到主机、主机到设备以及设备到设备之间的数据拷贝。这些内存拷贝分为同步和异步两种方式:同步拷贝指内存拷贝完成后才能执行下一步操作,而异步拷贝指在拷贝的同时也可以同时执行其他操作。

设备接口提供底层设备的数量和属性查询,以及选中、复位等操作。在离线模型调用了设备接口后选中某特性设备后,则模型中所有的任务都将会在这个被选中的设备上执行。若执行过程中需要向其他设备派发任务,则需要再调用一次设备接口进行设备选中。

执行流接口提供执行流的创建、释放、优先级定义、回调函数设置、对事件的依赖定义和同步等,这些功能关系到执行流内部的任务执行,同时单个执行流内部的任务必须按顺序执行。

如果多个执行流之间需要进行同步,则需要调用事件接口,进行同步事件的创建、释放、记录和依赖定义等,确保多个执行流得以同步执行完成并输出模型最终结果。事件接口除了用于分配任务或执行流之间的依赖关系,还可以用于程序运行中的时间标记,记录执行时序。

执行时,还会用到执行控制接口,运行管理引擎通过执行控制接口和Mailbox完成核函数的加载和存储异步拷贝等任务的派发。

更多信息请关注昇腾开发者社区

作者:Torrenza

昇腾AI处理器软件栈--运行管理器(Runtime)相关推荐

  1. 【昇腾学院】昇腾AI处理器软件栈--框架管理器(Framework)离线模型生成

    离线模型生成 以卷积神经网络为例,在深度学习框架下构造好相应的网络模型,并且训练好原始数据,再通过离线模型生成器进行算子调度优化.权重数据重排和压缩.内存优化等,最终生成调优好的离线模型.离线模型生成 ...

  2. 昇腾AI处理器软件栈--流程编排器(Matrix)

    功能简介 昇腾AI处理器对网络执行层次进行划分,将特定功能的执行操作看做基本执行单位--计算引擎(Engine).每个计算引擎在流程编排过程中对数据完成基本操作功能,如对图片进行分类处理.输入图片预处 ...

  3. 昇腾AI处理器软件栈--任务调度器(TS)

    任务调度器与运行管理器工程组成软硬件之间的大坝系统.在执行时,任务调度器对硬件进行任务的驱动,为昇腾AI处理器提供具体的目标任务,与运行管理器一起完成任务调度流程,并将输出数据回送给运行管理器,充当了 ...

  4. 昇腾AI处理器软件栈--张量加速引擎(TBE)

    神经网络构造中,算子组成了不同应用功能的网络结构.而张量加速引擎(Tensor Boost Engine)作为算子的兵工厂,为基于昇腾AI处理器运行的神经网络提供算子开发能力,用TBE语言编写的TBE ...

  5. 昇腾AI处理器软件栈--神经网络软件架构

    为完成一个神经网络应用的实现和执行,昇腾AI软件栈在深度学习框架到昇腾AI处理器之间架起了一座桥梁,为神经网络从原始模型,到中间计算图表征,再到独立执行的离线模型提供了快速转化的捷径.昇腾AI软件栈围 ...

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

    昇腾AI软件栈提供了计算资源.性能调优的运行框架以及功能多样的配套工具,是一套完整的解决方案,可以使昇腾AI处理器发挥出极佳的性能. 昇腾AI软件栈可以分为神经网络相关软件模块.工具链以及其它软件模块 ...

  7. 昇腾AI处理器软件栈--数字视觉预处理(DVPP)

    数字视觉预处理模块作为昇腾AI软件栈中的编解码和图像转换模块,为神经网络发挥着预处理辅助功能.当来自系统内存和网络的视频或图像数据进入昇腾AI处理器的计算资源中运算之前,由于Davinci架构对输入数 ...

  8. 华为昇腾 AI 处理器架构大揭秘! | 华为昇腾师资培训沙龙武汉场

    「无 AI,不科技」.在AI 产业逐步落地成熟的今天,AI 人才的争夺战已打响,甚至有不少网友预测,未来AI 开发将成为人人必备的技能之一.不过,现实来看,无论是 AI 三驾马车中的数据.算力.算法, ...

  9. 解密昇腾AI处理器--Ascend310简介

    Ascend310 AI处理器规格 Ascend310 AI处理器逻辑架构 昇腾AI处理器本质上是一个片上系统(System on Chip,SoC),主要可以应用在和图像.视频.语音.文字处理相关的 ...

最新文章

  1. 求解N个值中最大的k个数,N远大于k
  2. python4delphi 设置syspath
  3. mysql网络安装教程_详细教程--MySQL的安装与配置
  4. Python嵌套列表解析式(又称列表推导式)写法剖析与应用举例
  5. c语言解析分隔符文本,c – 使用分隔符读取文件
  6. html网页加入一个按钮,在html网页设计中,一个“登录”按钮怎么编写代码?
  7. centos8.2安装ovirt
  8. java nio底层实现_Java NIO 底层原理
  9. ionic打包中的那些坑
  10. 车辆运动控制(2)车辆横摆动力学建模
  11. 工程矩阵理论 Hermite 矩阵
  12. 计算机word excel试题,计算机基础WORD、EXCEL试题
  13. ImageJ Merge荧光图片
  14. 安溪八中高考2021成绩查询,2020福建省地区高考成绩排名查询
  15. 第12课:生活中的构建模式——想要车还是庄园
  16. 项目经理应该知道的三种项目管理技术
  17. 不知道吧?未加工的食物可以帮助你减肥
  18. 美赛数模论文之优缺点写作
  19. detecting current sdk tools version
  20. app对于接口返回数据的容错测试(健壮性测试)

热门文章

  1. mysql的int多少溢出_mysql 整型(int)数字溢出在程序和数据库设计中的考虑
  2. linux dup跨进程使用,linuxC多进程通讯---无名管道dup
  3. #if、#if defined 的使用
  4. 集群-如何理解集群?
  5. 页面上插入flash文件
  6. jQuery UI加入效果
  7. Tomcat主页404错误
  8. mysql manage keys_相传mysql 5.5 对于非聚集索引增删有很大的改善… 你信吗?
  9. 广度优先搜索——字串变换(洛谷 P1032)
  10. 计算机教育专业需要学什么,教育知识:计算机专业都学什么