power designer数据流图_鲲云公开课 | 三分钟带你了解数据流架构

88cb684ab140b591fa5739ff2ad3d0cf.png

077f11489b10377036c08312ad6ad248.png

目前,市场上的芯片主要包括指令集架构和数据流架构两种实现方式。指令集架构主要包括X86架构、ARM架构、精简指令集运算RISC-V开源架构,以及SIMD架构。总体来说,四者都属于传统的通用指令集架构。传统的指令集架构采用冯诺依曼计算方式,通过指令执行次序控制计算顺序,并通过分离数据搬运与数据计算提供计算通用性。与上述四者不同,数据流架构采用了数据流引擎的计算架构,它的显著特点就是能够大幅提高芯片利用率。如鲲云的CAISA(Custom AI Streaming Accelerator Architecture)就采用了定制化的数据流架构。那么,究竟什么是数据流架构呢?它又是怎么实现性能的极大提升呢?

2780fced6ac665adef2891b6f2f1a5f7.png

数据流架构是一种计算机体系结构,直接与传统的冯·诺依曼架构或控制流体系结构进行对比,数据流架构没有概念上的指令计数器。它使用粗粒度表示(Coarse-grained Representation)来提高数据的并行度,并允许编译器同时调度多个顺序循环和功能,以实现更高的吞吐量更低的延迟


下图显示了数据流流水线的概念图。在这个概念图中,指令集架构首先执行函数A,完成之后再执行函数B,依次类推直至执行完所有程序。在定制数据流架构的情形下,编译器可以安排每个函数在数据可用时立即执行。

83f4e4230516c76a83798506c7015dee.png

在此示例中,指令集架构(图A)等待时间和间隔为8个时钟周期。使用数据流架构,该间隔可减少到仅三个时钟周期(图B)。

目前,数据流架构已在专用硬件中成功应用,例如数字信号处理、网络路由、图形处理、遥感检测、以及数据库处理等。同时,在当今的许多软件体系结构中(包括数据库引擎设计和并行计算框架),它也占据着非常重要的地位。1994年,帝国理工学院教授、英国皇家工程院院士、鲲云科技联合创始人和首席科学家Wayne Luk陆永青院士率先将数据流架构定制化并运用到AI领域。

9468db6fa000f3709abf67220f5d2070.png

0eeac7a7cf53f90f3faf8a4a7fe29a48.png

首先,现在大部分的 GPU、CPU 都是基于指令集的架构,应用层可以通过软件和编辑器去将语言最终转化为机器的语言,即二进制的码,从而执行指令和操作,并保证对不同应用的兼容性。

8889114085a103a85c6622b15b215c80.png

相较于指令集,数据流的核心就是使每个时钟周期都能进行有效计算。数据不停流入计算单元并完成计算,得到输出后,最终数据将会被存储到内存中或流入下一个流水线操作。

b4c1f106b78528b68cfd1a35976d974f.png

简而言之,数据流架构可以为特定应用场景提供更高的芯片利用率;而指令集架构虽然能提供更高的通用性,但其芯片利用率相对较低。两种架构产生差异的原因在于:

  • 数据流架构完全依靠数据流转的方式来控制计算,从而消除了由于指令控制和数据搬运而产生的数据开销;
  • 指令集架构通过指令控制来处理不同场景下的运算,提高了对不同计算需求的通用性支持。

数据流架构要实现性能的极大提升,需要解决两个问题,一是如何在复杂计算架构下保持较高的计算效率,二是如何保证定制架构的通用性,即如何支持不同的深度学习算法。

为此, 鲲云研发了RainBuilder与CAISA架构配合,通过动态配置使其能通用支持各种AI算法,提升了通用性。该编译器能进行算法模型结构的解析,并把模型导入数据流架构,从而提高数据流架构的计算效率来完成深度学习网络的计算。

RainBuilder的优势包括:

  • 是一种端到端(End-to-End)的编译工具
  • 最大化 AI 性能,充分利用数据流架构下的计算单元
  • 使用硬件流水线架构完成数据的计算与控制

RainBuilder由RbCompiler、RbRuntime和RbDriver三部分构成。RainBuilder的原理如下图所示:

f3621789f0792bfbb9e3ee595993ce13.png

------

RainBuilder Compiler(下文称为RbCompiler或Compiler)可以将用户在TensorFlow、Caffe、ONNX、PyTorch等深度学习框架下开发的算法模型进行全自动的编译优化,并提取数据流中间表达式(Streaming Graph IR,SG IR)。模型编译过程中自动进行数据量化、节点融合、软硬件分割等操作。Compiler通过鲲云研发的图优化算法将已有开发框架中的指令集计算图重构为数据流图。转化过程中涉及大量针对数据流架构的模型压缩和量化技术,从软件层面进一步提升计算效率。

------

RainBuilder Runtime为CAISA加速引擎的软件运行时,负责将SG IR进行加载并使用CAISA加速引擎对深度学习网络进行运行加速,该部分组件以C/C++ API接口的形式开放给用户进行二次开发和部署使用。RbRuntime作为RainBuilder的后端,配合RbCompiler使用,用于加载并运行RbCompiler编译生成的模型文件,即上文提到的SG IR,SG IR包含了模型的所有节点,并能根据节点创建对应的SG OP,同时还能按照拓扑顺序将SG OP部署在相应的设备上执行计算,返回模型的计算结果。Runtime提供深度学习算法的应用接口,用户可根据使用习惯调用python或C/C++的API完成算法的部署。Runtime设计了工作线程和计算线程精细化调度框架,同时针对x86、ARM平台实现了算子的深度适配和优化,从而保证目标算法可以充分发挥CAISA架构计算效率的优势。

------

RainBuilder Driver是底层CAISA架构的相关驱动模块,对应用开发者透明,驱动CAISA硬件架构,实现硬件模块的计算调度和硬件模型分析

RainBuilder的推出简化了算法从开发到芯片级部署的流程。用户不需要了解底层计算架构,也不需要改变开发习惯,就可以实现算法在数据流架构上的高效部署。

鲲云科技聚焦于基于数据流架构的定制AI计算引擎,凭借自1991年近三十年技术积累,2019年4月,鲲云科技发布全球首个AI数据流架构CAISA 2.0架构,其芯片利用率(Chip Utilization Ratio,CUR )最高可达98%,并且支持大多数主流卷积神经网络(CNN),是世界上首个针对人工智能的数据流架构。基于自主研发的CAISA数据流架构,鲲云的“星空”、“雨人”加速卡已在航空、航天、电力、安防、教育、智能制造、智慧城市等领域落地。

References

1. Veen, Arthur H.(Dec 1986). "Dataflow Machine Architecture". ACM Computing Surveys.18 (4): 365–396. doi:10.1145/27633.28055. Retrieved 5 March 2019.

2. "HX300Family of NPUs and Programmable Ethernet Switches to the Fiber AccessMarket", EN-Genius, June 18 2008.

3. ManchesterDataflow Research Project, Research Reports: Abstracts, September 1997

4.https://www.xilinx.com/html_docs/xilinx2017_4/sdaccel_doc/obx1504034310502.html

19cf72a20464f02fbac8080b5b1a1937.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux php环境搭建教程,linux php环境搭建教程

linux php环境搭建的方法:首先获取相关安装包;然后安装Apache以及mysql;接着修改配置文件“httpd.conf”;最后设置环境变量和开机自启,并编译安装PHP即可。一、获取安装包PHP下载地址:http://cn.php.net/di…

jsp放在web-inf下的注意事项

原文:http://blog.csdn.net/whatlookingfor/article/details/38381881 ------------------------------------------------- web-inf目录是不对外开放的,外部没办法直接访问到。所有只能通过映射来访问,比如映射为一个action或者servlet通过…

asp.net 获取全部在线用户_Qamp;A | 在线考试问卷答疑

01.如何批量导入试题?如果您已经在word或者excel中准备好了考试文档,通过批量导入试题的方式,可以让考试问卷的制作更加方便快捷。详细了解批量导入考试的文本格式:【点击此处】02.如何进行考试随机抽题?老师事先建立题…

PHP 框架 模块化,Laravel 的模块化开发框架 Notadd RC1

本文我们要和大家分享 Laravel 的模块化开发框架 Notadd RC1 的介绍,它的优点是修复了首页编辑模式下滚动的BUG (Eleven),修复了后台菜单管理修改后不跳转的BUG (ganlanshu0211),修复后台 ESLint 的 Camelcase 的错误 (狒狒),暂时…

spring mvc 工作流程

1A)客户端发出http请求,只要请求形式符合web.xml 文件中配置的*.action的话,就由DispatcherServlet 来处理。 1B)DispatcherServlet再将http请求委托给映射器 的对象来将http请求交给对应的Action来处理 2&#xff0…

excel切片器_如何在Excel表格中使用切片器

切片器除了在数据透视表中会使用到,在Excel的表格功能下面,也是可以进行使用的。下面就来介绍一下如何使用切片器这个工具。创建和使用切片器1.首先就是要创建一个表格。选中目标区域,使用快捷键CtrlT,创建一个表格。2.点击“插入…

分阶段付款 学php,项目整理-支付宝的支付问题

支付宝作为一个被广泛使用的支付工具,在是用的时候可以被广泛使用。可以使用demo提取(由于当时开发时SDK下载路径无法下载,直接从DEMO中筛选了需要部分)------------------我是开始开发思路的分割线--------------------------本次主要是APP支付的流程。…

Mac os区别_SN及Mac地址烧录

platform:RK3399 OS:Android 7.1 参考: 1.比特人生 https://blog.csdn.net/ielife/article/details/86719313 2.KrisFei https://blog.csdn.net/kris_fei/article/details/79447343?ops_request_misc%257B%2522request%255Fid%2522%253A%2522158883304619726869022990%2522%25…

linux 查看数据库和表 mysql 命令

2019独角兽企业重金招聘Python工程师标准>>> 查看是否有安装数据库 :rpm -qa|grep -i mysql 如图已安装: 未安装: 查看MySQL版本的四种方法 1 在终端下执行 mysql -V 2 在help中查找 mysql --help |grep Distrib 3 在mysql 里查看…

servlet/filter/listener/interceptor区别与联系

下面从几个方面阐述一下题目中四个概念的区别与联系: 1、概念 2、生命周期 3、职责 4、执行过程 一、概念: 1、servlet:servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页…

电脑系统哪个最好用_袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐...

原标题:袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐痘痘下去了,痘印却顽固不化。有些痘印如果不及时修复,会留下疤痕和坑。我们真的不敢去想他们。所以有痘印痘印的时候一定要及时使用护肤品,不要在脸上留下什么遗憾&…

五阿哥钢铁电商平台Docker容器云平台建设实践——你想知道的都在这里!

前言 五阿哥钢铁电商平台(www.wuage.com)是由钢铁行业第一的中国五矿与互联网第一的阿里巴巴联手打造,并充分运用双方股东优势资源,即:阿里巴巴在大数据、电商运营、互联网产品技术上的巨大优势,尤其是在B2…

web浏览器_Web上的分享(Share)API

我认为Web Share API非常酷,简而言之,它会利用您所使用的平台上的原生共享功能(如果该平台支持的话)。我喜欢这个:在iOS上激活的Web Share API远远不止这些东西:为什么?Web Share API只是几行代码。简单!没…

exfat单元分配要设置多少_微软宣布,支持往Linux内核里添加exFAT存储了!跨系统存储的福音...

栗子 发自 凹非寺 量子位 报道 | 公众号 QbitAIexFAT,是微软开发的文件系统,为闪存而生。你的U盘、SD卡、手机等等存储设备,能存4G以上的大文件,很大程度上是它的功劳。可exFAT一直是专有的,微软手握多项专利。所以&am…

Jetbrains 系 IDE 编辑器的代码提示功能

著名的 Jetbrains 可谓编程界的一大福音,众多有名代码编辑器比如 ItelliJ IDEA、PHPStorm、WebStorm、PyCharm 等,均出自这家公司麾下。 对于中国的Java开发者来说,可能使用 Eclipse 的人最多。 使用Idea的程序员也不少, 而且每个人都在鼓吹其…

tkmybatis 子查询_真假童子命符箓道长教你如何查询

童子命查询方法一:童子命在相术里,指的是一生都霉运连连如过本命年的人。古代关于真童子命查询有口诀“春秋甲寅子,冬夏卯未辰; 金木乙卯未,水火庚辛壬; 土命逢辰巳,童子定为真”解释上面的口诀…

ECLIPSE配置OSGI服务器

eclipse版本如下: Eclipse Java EE IDE for Web Developers. Version: Mars Release (4.5.0) Build id: 20150621-1200 ------------------------ 1、进入eclipse-----run----run configuration---osgi framework---new 2、取消全选 3、在搜索框中输入 osgi&a…

AD19 add pins to nets错误_为什么我认为Rust的Result错误处理方式不如Exception

由于是对技术的个人评判,欢迎理性讨论。我曾经也当过纯函数式的脑残粉,认为宇宙第一棒的代数数据结构用来处理错误,是无上的优雅和绝对的安全。一个看似人畜无害的接口抛出异常带来的崩溃,是各类疑难杂症的罪魁祸首。综合起来&…

Java @Transient 注解使用

2019独角兽企业重金招聘Python工程师标准>>> 我们建实体类的时候啊,有时候实体类的属性和数据库表字段不一致的时候,比如多一个属性,那你不加这个注解就会报错,因为映射的时候会提示(提示啥我给忘了&#x…

oracle—ebs_采购功能点操作手册,oracle—EBS_采购功能点操作手册

erp实施企业采购模块构架及日常业务操作指导“人力资源”页签可以设置是否“使用审批层次结构”来决定采购单据的审批路径。如不选定,则表示采购单据将使用员工的“主管”结构来进行审批。“员工编号”方法默认自业务组定义时的“员工编号生成”方法设置。1.2采购选…