一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于轻量级消息和共享局部存储器的协同计算系统及方法与流程

2022-11-13 15:05:53 来源:中国专利 TAG:


1.本发明属于高性能微处理器领域,具体涉及基于轻量级消息和共享局部存储器的协同计算系统及方法。


背景技术:

2.异步并发处理常常是用来对一些专用领域进行加速处理的有效方法,人工智能领域常见的异步处理结构如cpu tpu,cpu和tpu之间是异步并发处理结构,共享主存储器,cpu负责串行和控制流部分的处理,tpu则对人工智能领域的专用运算,特别是卷积运算进行加速处理,两者主要通过主存进行数据交换。
3.人工智能和科学计算领域存在一些特征明显的核心计算,比如智能领域的卷积运算是非常典型的计算类型。对于这些领域的专用的核心计算,通常的处理器并不能高效的处理,一些加速器通过支持这些专用计算实现了很高的处理性能,但是主处理器与加速器之间通过主存进行协同计算,交互成本比较高。
4.并且由于异构芯片间主要通过主存进行数据交互,交互延迟较长,频繁的交互会极大的降低性能加速带来的收益。片上异构核心间协同可以降低加速核心与主处理核心间的交互延迟,但是由于加速核心的实现比较完备,导致实现开销比较大。如何针对科学计算和人工智能领域存在的多种数据处理操作需求。提出一种交互成本低、实现开销小的异构核心间协同计算的交互机制具有重要的现实意义。


技术实现要素:

5.针对现有技术中存在的上述问题,本发明提供基于轻量级消息和共享局部存储器的协同计算系统及方法,具有系统结构简洁,交互性能高的特点。
6.本发明采用以下技术方案:基于轻量级消息和共享局部存储器的协同计算系统,包括主核心模块、数据中转处理模块、局部数据存储模块、异构核心模块,所述主核心模块、数据中转处理模块、局部数据存储模块依次联接,数据中转处理模块还与异构核心模块联接,主核心模块还与局部数据存储模块联接;局部数据存储模块,用于存储原始数据以及结果数据;主核心模块,用于持续执行程序中的核心算法,并在执行到加速计算部分时,发送包含原始数据区和结果数据区的位置和长度信息的轻量级消息至数据中转处理模块;数据中转处理模块,用于根据所述轻量级消息在局部数据存储模块中提取相应位置处的原始数据,并转发至异构核心模块;异构核心模块,用于根据接收到的原始数据进行相应计算,以得到相应的结果数据,并将结果数据返回至数据中转处理模块;数据中转处理模块,还用于将结果数据发送至局部数据存储模块中,局部数据存储模块将结果数据存储至相应位置处,以供主核心模块提取。
7.作为优选方案,系统包括多个异构核心模块,数据中转处理模块分别与多个异构核心模块联接;所述主核心模块发送至数据中转处理模块的轻量级消息还包括算法类型信息;数据中转处理模块,用于根据轻量级消息中的算法类型信息,将提取的原始数据转发至执行相应算法类型的异构核心模块。
8.作为优选方案,所述多个异构核心模块包括卷积运算异构核心模块、矩阵转置运算异构核心模块。
9.作为优选方案,异构核心模块包括相联的计算单元以及数据暂存单元,计算单元、数据暂存单元均与数据中转处理模块联接;计算单元,用于根据接收到的原始数据进行相应计算,以得到相应的结果数据;数据暂存单元,用于暂存计算单元计算过程中的结果数据,并在计算单元计算结束后,将所有的结果数据返回至数据中转处理模块。
10.作为优选方案,数据中转处理模块包括消息转发子模块、数据中转子模块,数据中转子模块包括描述符管理与解析单元、数据加载单元、数据写回单元、局存访问接口单元,消息转发子模块分别与主核心模块、描述符管理与解析单元联接,描述符管理与解析单元还分别与数据加载单元、数据写回单元联接,局存访问接口单元分别与数据加载单元、数据写回单元、局部数据存储模块联接。
11.作为优选方案,所述计算单元与数据加载单元联接,所述数据暂存单元与数据写回单元联接。
12.还公开了基于轻量级消息和共享局部存储器的协同计算方法,基于上述的基于轻量级消息和共享局部存储器的协同计算系统,包括步骤:s1、主核心执行程序中的核心算法;s2、判断主核心是否执行到加速计算部分,若否则返回步骤s1,若是则执行步骤s3;s3、主核心继续执行程序中的核心算法,并同时发送包含原始数据区和结果数据区的位置和长度信息的轻量级消息至数据中转处理器;s4、数据中转处理器根据所述轻量级消息在局部数据存储器中提取相应位置处的原始数据,并转发至异构核心;s5、异构核心根据接收到的原始数据进行相应计算,以得到相应的结果数据,并将结果数据返回至数据中转处理器;s6、数据中转处理器将结果数据发送至局部数据存储器中,局部数据存储器将结果数据存储至相应位置处,以供主核心提取。
13.作为优选方案,步骤s3中,所述轻量级消息还包括算法类型信息;步骤s4中,所述数据中转处理器还根据轻量级消息中的算法类型信息,将提取的原始数据转发至执行相应算法类型的异构核心。
14.作为优选方案,算法类型包括卷积运算、矩阵转置运算。
15.作为优选方案,异构核心包括卷积运算异构核心、矩阵转置运算异构核心。
16.本发明的有益效果是:本发明实现的异构核心间协同计算和交互机制,可以完成加速计算和数据处理,
能实现异构核心间的异步执行,方便具有核心的协同计算和细粒度交互。
17.本发明实现的交互机制,具有一定粒度(指令)控制的方式,编程灵活,通用性较好。
18.本发明通过局存的方式进行访问交换数据,交换几个b到几kb均可,因此访问延迟仅只有几拍,访问的一路上都能流水且没有气泡(通常访问源少,冲突也少),局存交互比较轻量。
19.本发明中主核心发送的消息仅包括算法类型信息、原始数据区和结果数据区的位置和长度信息,仅携带必要的控制信息,即通过轻量级消息转发。
20.本发明设置多个异构核心模块,可执行不同的算法,使协同计算系统在具有上述优势的基础上适应性更强,可适配具有多种算法的程序,进而满足科学计算和人工智能领域存在的多种数据处理操作需求。
附图说明
21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1是本发明所述基于轻量级消息和共享局部存储器的协同计算系统的结构示意图;图2是顺序处理和异步并发处理的示意图;图3是本发明所述的基于轻量级消息和共享局部存储器的协同计算方法的流程图。
具体实施方式
23.以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
24.实施例一:参照图1,本实施例提供一种基于轻量级消息和共享局部存储器的协同计算系统,包括主核心模块、数据中转处理模块、局部数据存储模块、异构核心模块,所述主核心模块、数据中转处理模块、局部数据存储模块依次联接,数据中转处理模块还与异构核心模块联接,主核心模块还与局部数据存储模块联接;局部数据存储模块,用于存储原始数据以及结果数据;主核心模块,用于持续执行程序中的核心算法,并在执行到加速计算部分时,发送包含原始数据区和结果数据区的位置和长度信息的轻量级消息至数据中转处理模块;数据中转处理模块,用于根据所述轻量级消息在局部数据存储模块中提取相应位置处的原始数据,并转发至异构核心模块;
异构核心模块,用于根据接收到的原始数据进行相应计算,以得到相应的结果数据,并将结果数据返回至数据中转处理模块;数据中转处理模块,还用于将结果数据发送至局部数据存储模块中,局部数据存储模块将结果数据存储至相应位置处,以供主核心模块提取。
25.具体地:系统包括多个异构核心模块,数据中转处理模块分别与多个异构核心模块联接;所述主核心模块发送至数据中转处理模块的轻量级消息还包括算法类型信息;数据中转处理模块,用于根据轻量级消息中的算法类型信息,将提取的原始数据转发至执行相应算法类型的异构核心模块。
26.科学计算和人工智能领域存在多种加速计算和数据处理需求,通过异构核心间的协同处理可以隐藏延迟并提高整体处理性能。经过对科学计算和人工智能领域典型应用的计算和数据处理需求分析发现,为发挥批量计算和数据处理的效率,需要为处理提供批量规整的数据集,并在此基础上针对数据集进行加速计算。批量数据集的获得通常需要对原始数据进行数据格式变换、数据内容变换和高效数据访问,加速计算则根据典型应用的特征进行选择设计。参照图2所示,以数据处理和计算的异步并发处理为例,展示了通过异构核心间的异步执行可以相比传统核心处理中的顺序执行具有更好的处理性能。本发明提供的方案主要缓解异构核心间协同计算的交互成本,通过简化结构的复杂性以提高实现可行性。
27.本发明实现的异构核心间协同计算和交互机制,可以完成加速计算和数据处理,能实现异构核心间的异步执行,方便具有核心的协同计算和细粒度交互。
28.本发明实现的交互机制,具有一定粒度(指令)控制的方式,编程灵活,通用性较好。
29.本发明通过局存的方式进行访问交换数据,交换几个b到几kb均可,因此访问延迟仅只有几拍,访问的一路上都能流水且没有气泡(通常访问源少,冲突也少),局存交互比较轻量。
30.本发明中主核心发送的消息仅包括算法类型信息、原始数据区和结果数据区的位置和长度信息,仅携带必要的控制信息,即通过轻量级消息转发。
31.本发明设置多个异构核心模块,可执行不同的算法,使协同计算系统在具有上述优势的基础上适应性更强,可适配具有多种算法的程序,进而满足科学计算和人工智能领域存在的多种数据处理操作需求,本发明的做法是在两种异构核心间,通过轻量级消息转发和共享局部存储器的方式,实现异步协同计算和交互。实现的异构核心间协同计算指令asp(asynchronoussynergisticprocessing)如下所示:asprb,#type其中#type表示处理算法类型,根据处理器面向的应用领域可以决定支持多种协同算法类型。可以是卷积运算或矩阵转置运算,以矩阵转置运算功能为例,rb用于指定具体的操作和指示数据区相关信息,包括算法类型、数据区原始数据区地址、结果区地址、转置行数、数据处理精度,以及握手信号地址等。
32.当程序运行时,主核心主要执行程序中的核心算法,完成核心算法中的数据处理
和串行的程序流控制,当执行到加速计算部分时,通过asp指令向消息转发部件发送异步计算请求,该请求具有轻量级特点,根据前面对asp的描述可见,其仅仅携带必要的算法类型信息,以及指示原始和结果数据区的位置和长度等信息。消息转发部件将请求转发到目标计算核心(通常是计算加速引擎),驱动计算引擎执行。目标计算核心收到请求后,需要完成计算请求的解析与管理,以及根据请求指示的内容,确定执行什么样的处理,并根据请求指示的原始数据区位置和长度,从共享的局部数据存储中取出初始数据进行相应的计算加速处理,处理过程中,将计算结果存储到局部数据存储中请求指示的结果区位置。所有数据处理完成后,发送回答字(放置于共享局部数据存储中)或同步信号(通过硬件连线的快速同步机制),通知主核心可以读取处理结果。
33.这种支持不同核心间协同计算的轻量级交互机制,总的特点就是结构简洁,交互性能好,具有较好的通用性。
34.具体地,通过以下结构实现:参照图1所示,所述多个异构核心模块包括卷积运算异构核心模块、矩阵转置运算异构核心模块等等。
35.异构核心模块包括相联的计算单元以及数据暂存单元,计算单元、数据暂存单元均与数据中转处理模块联接;计算单元,用于根据接收到的原始数据进行相应计算,以得到相应的结果数据;数据暂存单元,用于暂存计算单元计算过程中的结果数据,并在计算单元计算结束后,将所有的结果数据返回至数据中转处理模块。
36.需要说明的是,图1中仅示出一个异构核心模块。
37.数据中转处理模块包括消息转发子模块、数据中转子模块,数据中转子模块包括描述符管理与解析单元、数据加载单元、数据写回单元、局存访问接口单元,消息转发子模块分别与主核心模块、描述符管理与解析单元联接,描述符管理与解析单元还分别与数据加载单元、数据写回单元联接,局存访问接口单元分别与数据加载单元、数据写回单元、局部数据存储模块联接。
38.所述计算单元与数据加载单元联接,所述数据暂存单元与数据写回单元联接。
39.本发明中主核心模块和异构核心模块是一种异构计算装置,主核心模块通过消息驱动异构核心模块进行处理。异构核心模块负责计算和数据处理,与主核心模块之间共享局部数据存储。异构核心模块接收主核心模块来的异步处理请求,访问局部数据存储中的数据进行计算处理,处理完后通过握手机制(回答字或同步)与主核心模块进行数据交互。其中描述符管理与解析单元主要对asp发来的请求描述符进行管理和解析,获得要求的算法类型信息和原始/结果数据区起始地址、长度等信息,以及处理完成后的握手方式,数据加载模块和数据写回模块则完成初始数据的读取和结果数据的写回。
40.实施例二:参照图3所示,本实施例提供一种基于轻量级消息和共享局部存储器的协同计算方法,包括步骤:s1、主核心执行程序中的核心算法;s2、判断主核心是否执行到加速计算部分,若否则返回步骤s1,若是则执行步骤s3;
s3、主核心继续执行程序中的核心算法,并同时发送包含原始数据区和结果数据区的位置和长度信息的轻量级消息至数据中转处理器;s4、数据中转处理器根据所述轻量级消息在局部数据存储器中提取相应位置处的原始数据,并转发至异构核心;s5、异构核心根据接收到的原始数据进行相应计算,以得到相应的结果数据,并将结果数据返回至数据中转处理器;s6、数据中转处理器将结果数据发送至局部数据存储器中,局部数据存储器将结果数据存储至相应位置处,以供主核心提取。
41.需要说明的是,本实施例提供的一种基于轻量级消息和共享局部存储器的协同计算方法与实施例一类似,在此不多做赘述。
42.以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献