一种多功能的数据重组网络

文档序号:1966939 发布日期:2021-12-14 浏览:19次 >En<

阅读说明:本技术 一种多功能的数据重组网络 (Multifunctional data recombination network ) 是由 夏天 陈凌峰 赵文哲 宗鹏陈 任鹏举 郑南宁 于 2021-01-21 设计创作,主要内容包括:一种多功能的数据重组网络,包括二元交换单元和递归洗牌网络RSN,其中所述二元交换单元和递归洗牌网络RSN都可以实现数据的双向传输,该数据重组网络通过控制信号在网络中的传输方向完成数据重组。该网络可以作为存储单元和运算单元之间的数据传输通路,在数据传输的同时完成多种数据重组功能,从而对非规则数据进行灵活的数据结构调整,提高非规则计算的数据传输效率和计算效率。(A multifunctional data recombination network comprises a binary exchange unit and a recursive shuffling network RSN, wherein the binary exchange unit and the recursive shuffling network RSN can realize bidirectional transmission of data, and the data recombination network completes data recombination through the transmission direction of control signals in the network. The network can be used as a data transmission channel between the storage unit and the operation unit, and can complete various data recombination functions during data transmission, so that flexible data structure adjustment is performed on irregular data, and the data transmission efficiency and the calculation efficiency of irregular calculation are improved.)

一种多功能的数据重组网络

技术领域

本公开属于数据交换、电子技术领域,具体涉及一种多功能的数据重组网络。

背景技术

目前主流的并行计算架构(如CPU和GPU)采用大规模运算单元阵列的形式提供并行计算能力。在这里架构中,运算单元阵列仅能执行规则的批量数据处理,而且数据流在主存储器和运算单元之间的传输通路是相对固定的,这就导致这类计算架构仅能支持有限的几种通信和计算模式。然而,在当今许多科学计算和工程应用问题中,所处理的数据往往不是简单的数据结构,而是以矩阵、张量甚至图的形式进行组织和存储的。这类计算被称为非规则计算,是目前计算机技术所面临的主要挑战之一。在非规则计算问题中,每个数据的操作往往不再是简单的数值运算,而是需要根据其在数据结构中的属性(如位置、相对于其他数据的大小等)来完成不同的操作,例如将一组操作数的排列顺序动态地重组并映射到不同的运算单元上。这种非规则的计算需要架构能够灵活地对数据进行重组和调整,以适配动态多变的计算模式。现有的并行计算架构缺乏灵活高效的数据重组能力,数据传输和计算模式均相对固定,因此在处理这类非规则计算问题时会面临数据传输效率和计算效率低下的问题,从而导致严重的性能瓶颈。

发明内容

鉴于此,本公开提供了一种多功能的数据重组网络,包括二元交换单元和递归洗牌网络RSN,其中所述二元交换单元和递归洗牌网络RSN都可以实现数据的双向传输,该数据重组网络通过控制信号在网络中的传输方向完成数据重组。

通过上述技术方案,一种多功能的数据重组网络基于二元无阻塞交换网络技术实现,采用多功能的二元交换单元和数据流控制,可在数据传输过程中对其实现重组。该方案对于解决非规则计算这一现代计算机技术的主要性能瓶颈具有重要意义。

附图说明

图1是本公开一个实施例中所提供的传统并行计算架构和基于SOM的新型并行计算架构示意图;

图2是本公开一个实施例中所提供的基本交换单元和归约交换单元的路由功能;

图3(a)、图3(b)是本公开一个实施例中所提供的基本交换单元和归约交换单元的接口信号;

图4是本公开一个实施例中所提供的交换单元自路由示例图;

图5(a)是本公开一个实施例中所提供的基于选择器的基础交换单元的电路框图;

图5(b)是本公开一个实施例中所提供的基于查找表的基础交换单元的电路框图;

图6(a)是本公开一个实施例中所提供的基于选择器的归约交换单元的电路框图;

图6(b)是本公开一个实施例中所提供的基于查找表的归约交换单元的电路框图;

图7是本公开一个实施例中所提供的k=2n规模的双向完美洗牌网络示意图;

图8(a)是本公开一个实施例中所提供的k=2n规模的递归洗牌网络(RSN)示意图;

图8(b)是本公开一个实施例中所提供的另一个k=2n规模的递归洗牌网络(RSN)示意图;

图9(a)是本公开一个实施例中所提供的SOM传输网络的拓扑结构示意图;

图9(b)是本公开一个实施例中所提供的另一个SOM传输网络的拓扑结构示意图;

图10是本公开一个实施例中所提供的SOM传输网络的Block结构和数据流配置图;

图11是本公开一个实施例中所提供的SOM传输网络的控制信号示意图;

图12是本公开一个实施例中所提供的8输入的SOM传输网络和归约网路的拓扑结构图;

图13(a)至图13(d)是本公开一个实施例中所提供的8输入的SOM传输网络的几种可能的数据流配置图;

图14是本公开一个实施例中所提供的SOM传输网络数值排序以及控制信号配置图;

图15是本公开一个实施例中所提供的SOM传输网络数值重排以及控制信号配置图;

图16是本公开一个实施例中所提供的SOM传输网络数值多播以及控制信号配置图;

图17(a)是本公开一个实施例中所提供的SOM传输网络非零数值压缩以及控制信号配置图;

图17(b)是本公开一个实施例中所提供的SOM传输网络非零数值解压缩以及控制信号配置图;

图18是本公开一个实施例中所提供的SOM传输网络多播后分组重排以及控制信号配置图;

图19是本公开一个实施例中所提供的多个SOM传输网络的同步以及控制信号配置图;

图20是本公开一个实施例中所提供的一个Actor Network与多个TrackerNetwork的同步示意图;

图21是本公开一个实施例中所提供的SOM归约网络的构造图;

图22(a)是本公开一个实施例中所提供的SOM归约网络中各个归约交换单元的位置的示意图;

图22(b)是本公开一个实施例中所提供的SOM归约网络中各个归约交换单元所构成的内嵌加法树的示意图;

图23是本公开一个实施例中所提供的8输入的SOM归约网路的拓扑结构图;

图24是本公开一个实施例中所提供的SOM归约网络规模为4的分组归约以及控制信号配置图;

图25是本公开一个实施例中所提供的SOM归约网络规模为2的分组归约以及控制信号配置图。

具体实施方式

下面结合附图1至图25对本发明进行进一步的详细说明。

在一个实施例中,其公开了一种多功能的数据重组网络,包括二元交换单元和递归洗牌网络RSN,其中所述二元交换单元和递归洗牌网络RSN都可以实现数据的双向传输,该数据重组网络通过控制信号在网络中的传输方向完成数据重组。

就该实施例而言,参见图1,该数据重组网络即SOM(Sort Reorder Multicast,即排序,重排,多播)网络可以作为存储单元和运算单元之间的数据传输通路,在数据传输的同时完成多种数据重组功能,从而对非规则数据进行灵活的数据结构调整,使其可高效适配目前主流的存储设备(如缓存,向量寄存器)和规则的运算单元阵列。本文中SOM网络一般用来泛指SOM传输网络和SOM归约网络。二元交换单元和RSN是SOM网络的基础组件,二者都具有双向传输的特性。双向传输是本方案的核心特性之一。通过控制信号在网络中的传输方向,可以利用相同的网络硬件连接来实现不同的逻辑拓扑结构,从而完成不同的数据重组功能。这极大地拓展了SOM网络的灵活度和适应性。

在另一个实施例中,所述二元交换单元包括基本交换单元和归约交换单元。

就该实施例而言,SOM网络是基于二元无阻塞交换网络技术构造的,其基本功能模块为多功能的二元交换单元。每个交换单元有两个输入端口,两个输出端口。交换单元可以将两个输入信号通过不同的方式路由到两个输出端口上。如图2所示,SOM网络共包含两类交换单元:基本交换单元和归约交换单元。基本交换单元可以支持以下路由方式:直通、交叉、上播、下播。其中,“直通”指将第一个输入信号的数值发送给第一个输出端口,将第二个输入信号的数值发送给第二个输出端口;“交叉”指将第一个输入信号的数值发送给第二个输出端口,将第二个输入信号的数值发送给第一个输出端口;“上播”指将第一个输入信号的数值复制到两个输出端口上,“下播”指将第二个输入信号的数值复制到两个输出端口上。归约交换单元除了具有基本交换单元的所有路由功能外,还有两种额外的路由功能:上约和下约。“上约”指将两个输入信号相加,并从第一个输出端口输出;“下约”指将两个输入信号相加,并从第二个输出端口输出。

在另一个实施例中,所述二元交换单元的输入信号包含标签和数据负载,其中,所述数据负载为实际需要传输的数据内容,所述标签为相应的路由信息。

在另一个实施例中,所述二元交换单元有两种工作模式:自路由模式和遵循外部输入的路由信息来完成路由,其中,所述自路由模式是通过根据输入信号的标签或者数据负载的值来决定路由方法。

就该实施例而言,图3(a)、图3(b)表示了两类二元交换单元的框图和输入和输出信号。可以看到,二元交换单元包含两组输入输出端口,可以完成双向数据传输,即:从左侧输入端口(Xi,Yi)到右侧输出端口(Xo,Yo),以及从右侧输入端口(Mi,Ni)到左侧输出端口(Mo,No)。通过配置Direct信号,可选择当前的传输方向。CW_in信号是来自外部输入的路由信息,用于指导该交换单元的路由行为。与之相对应的,CW_out信号用于在每个时钟周期输出交换单元当前的路由行为。Mod信号用于控制交换单元的具体工作模式。除此之外,归约交换单元还有Reduce信号,用于指示是否采用归约的路由方式。

二元交换单元各个信号的具体含义在表1中列出。输入信号和输出信号均包含两个部分:标签和数据负载。二者的位宽可根据实际应用场景进行调整。其中,标签的位宽一般可设置为log2k+1,k为整个网络输入信号的数量。数据负载的位宽可根据所传输的数据类型进行调整,比较典型的数据类型包括8-bit定点数、32-bit定点数、32-bit单精度浮点数等。当CW_en信号为1时,二元交换单元使用CW_in输入的信号选择路由方法。当CW_en信号为0时,二元交换单元工作在自路由模式,根据Mod信号的配置进行路由计算,并根据计算结果选择路由方法。举例来说,当Mod信号设置为010时,二元交换单元会比较两个输入信号的标签值,并将标签值较大的输入信号发送给第一个输出端口,标签值较小的输入信号发送给第二个输出端口。因此,如果第一个输入端口的标签值大于第二个输入端口的标签值,则二元交换单元选择“直通”路由;反之,则选择“交叉”路由。图4列出了几个不同Mod设定下的自路由方法示例。需要注意的是,在Mod设置位000时,需要使用输入信号标签的s_id位信号,s_id表示当前的二元交换单元所处于的交换单元级数。

表1

图5(a)、图5(b)和图6(a)、图6(b)分别给出了基本交换单元和归约交换单元的两种可能的实现方法:基于选择器的实现和基于查找表(Look-up Table,LUT)的实现。其中涉及到的信号Tag[j]和Tag[k],分别指输入信号标签的最高位的1bit数据,和s_id对应位的1bit数据。基本交换单元和归约交换单元中均包含一个比较器,用于比较两个输入的标签或者数据负载的值,当第一个值大于或等于第二个值时,输出0,否则输出1。归约交换单元除了比较器之外,还包含一个加法器,用于计算两个输入的数据负载值的加和。加法器的输出位宽等于数据负载的位宽。如果加和结果溢出,则对加和结果进行截位,使其符合数据负载的位宽。

在另一个实施例中,递归洗牌网络RSN是通过逐级叠加规模更小的双向完美洗牌网络而得到的。

就该实施例而言,多个二元交换单元通过层级递归拓扑的方式构成递归洗牌网络(Recursive Shuffle Network,下文简称为RSN)。RSN的拓扑结构具有递归性,其基本拓扑形式为“完美洗牌”(Perfect Shuffle)。如图7所示,对于一个规模为k=2n的完美洗牌网络,n为任意正整数,k是2的正整数次幂,即k=2r,n=2r-1,r为大于1的正整数。在实际使用中,k的取值范围一般为4-512,n的取值范围一般为2-256。其左侧有k个输入端口(l0-l2n-1),右侧有k个输出端口(r0-r2n-1)),n个二元交换单元(F0-Fn-1)。其中,第0-(n-1)个输入端口依次连接到每个二元交换单元的第一个输入端口,第n-(2n-1)个输入端口依次连接到每个二元交换单元的第二个输入端口。同理,第0-(n-1)个输出端口依次连接到每个二元交换单元的第一个输出端口,第n-(2n-1)个输出端口依次连接到每个二元交换单元的第二个输出端口。由于每个二元交换单元均可以完成双向传输,因此构成了双向完美洗牌网络。

一个规模为k=2n的RSN,可以通过级联一个k=2n规模的双向完美洗牌网络和两个并行的规模为k=n的RSN构成,如图8(a)所示。这种递归搭建的RSN事实上是通过在双向完美洗牌网络后逐级连接更小规模的双向完美洗牌网络来构成的。如图8(b)所示,展示了一个规模为k=2n的RSN可以通过逐级叠加规模为(k,k/2,k/4,...,2)的双向完美洗牌网络而得到。需要注意的是,对于规模为2的RSN,其组成即为双向完美洗牌网络本身。RSN的规模大小k始终为2的幂次方,因此始终有k=2r。由图8(b)的拓扑结构可以看出,对于规模为k=2n=2r的RSN,处于相同递归层级的所有双向完美洗牌网络实际上是由n个彼此独立且并行的二元交换单元组成的,这些二元交换单元被称为级(stage)。整个RSN拓扑共包含r级的二元交换单元。

在另一个实施例中,基于RSN进行递归搭建SOM传输网络,每一个递归层级中的所有RSN网络被视为一个整体的功能块Block。

就该实施例而言,SOM传输网络可以基于RSN进行递归搭建。如图9(a)所示,一个k=2r规模的SOM传输网络,可以通过构造两个并行的k/2规模SOM传输网络并在其后端增加一个k规模的RSN网络来构造。对此递归模式进行展开后可看到,SOM网络实际上是通过规模为(2,4,...,r-1)的RSN网络层层级联构成的。

本方案中,每一个递归层级中的所有RSN网络被视为一个整体的功能块,称为Block。如图9(b)所示,第一层RSN网络(即Block 0)包括k/2个并联的规模为2的RSN网络,第二层RSN网络(即Block 1)包括k/4个并联的规模为4的RSN网络,以此类推。因此,对于规模为k=2r的SOM网络,其总共可分为r个Block(Block 0,Block 1,...,Block r-1)。对于其中任意一个Block-i,其包含2r-i-1个规模为2i+1的并联且彼此独立的RSN网络。

每个Block的内部结构如图10所示,每个Block有唯一的输入和输出端口,并且通过Direct信号配置数据在RSN网络中的传输方向。多个Block之间的数据流是可以灵活配置的,具体的实现方法是通过设置一系列选择器,完成如下功能:(1)SOM网络的输入信号可以选择性的输入到任意的Block的输入端口,输出信号可以选择性的来自任意Block的输出端口;(2)在每个Block的输出信号同时播送给其前一个和后一个Block;(3)所有Block的输出信号播送给LocalBuffer,Local Buffer的输出端口播送给所有Block;(4)每个Block的输入端口前设置选择器,对信号来源进行选择;(5)数据流在各个选择器处的流向通过数据流配置信号进行设置。图10表示了上述机制的一个实际案例。可以看到,基于此机制,数据流在多个Block之间的流动顺序可以灵活调整,且均可实现无阻塞的流水线。配合Direct信号,就可以进一步控制数据流在每个Block内部的传播方向,从而实现高度灵活的数据流配置。

另外需要注意,SOM传输网络不涉及归约功能,因此在基础网络中所使用的二元交换单元组件均为基本交换单元。

在另一个实施例中,SOM传输网络或SOM归约网络分别为每个Block提供独立的配置信号。

就该实施例而言,一个规模为k=2r的SOM传输网络包含r个Block(Block 0,Block1,...,Block r-1)。对于其中任意一个Block-i,其包含2r-i-1个规模为2i+1的并联且彼此独立的RSN网络,且每个RSN网络均包含i+1级交换单元(S0,S1,...,Si),每级交换单元包含2i个交换单元,共计(i+1)2i个交换的单元。SOM网络分别为每个Block提供独立的配置信号。对于Block-i,其所需的控制信号如表2所示。

表2

在另一个实施例中,SOM传输网络或SOM归约网络还通过在每个Block的输入端口配置选择器来配置Block之间的数据流方向。

就该实施例而言,除了每个Block的配置信号之外,SOM网络还需要配置Block之间的数据流方向。由图10可知,对于一个规模为k=2r的SOM网络,每个Block的输入端口均需要配置选择器,用于选择使用输入信号、前方Block的输出信号、后方Block的输出信号、Local Buffer的输出信号,这类选择器共计r个,其中r-2个4选1的选择器,2个3选1的选择器(用于第一个和最后一个Block)。Local Buffer和输出端口均需要配置选择器,用于在各个Block的输出信号之间进行选择,这类选择器共计2个。对这些选择器的配置信号如表3所示。

表3

图11展示了SOM网络所需的所有配置信号。可以看到,每个Block具有独立完整的配置信号。Flow_Cfg信号则用于配置Block之间的数据流选择器。整个SOM网络的通过CW_out接口将每个时钟周期所有二元交换单元的路由情况进行汇总并输出。

在另一个实施例中,显示的是8输入SOM传输网络的具体实现。

图12展示了8输入SOM传输网络的具体拓扑结构。8输入网络包含3个Block,Block0包含4个2输入的RSN网络,1级交换单元(S0);Block 1包含2个4输入的RSN网络,2级二元交换单元(S0,S1);Block 3包含1个8输入的RSN网络,3级二元交换单元(S0,S1,S2)。SOM传输网络中所有二元交换单元均为双向通路的基本交换单元。

通过灵活配置每个Block的传输方向,以及Block之间的数据流方向,可以对输入信号实现多种不同的数据重组功能。图13(a)至图13(d)列出了几种可能的数据流配置。

在另一个实施例中,显示的是数值排序。

图14展示了使用8输入SOM网络完成输入数据的数值排序以及所需要的控制信号配置方法。本实施例中,输入信号仅包含数据负载,标签位没有被使用。SOM对所有输入数据进行排序,并且在输出端口根据数值大小做升序排列。数据流按照Block 0-1-2的顺序经过SOM网络。每个Block的传播方向均为正向。SOM网络的所有二元交换单元均设置为自路由的工作模式,对输入信号的数据负载进行比较,并根据比较结果进行路由。外部输入的路由信号CW_in没有被使用。基于相同原理,本实施例可以稍作修改,实现对所有输入数据的数值降序排列。

在另一个实施例中,显示的是数值重排。

图15展示了使用8输入SOM网络完成输入数据的数值重排以及所需要的控制信号配置方法。本实施例中,每个输入信号的标签被设置为其所期望的重排后的位置。SOM网络会对标签进行排序,从而将每个数据发送到指定的输出端口,实现按照任意顺序对输入信号进行重新排列。本实施例中,数据流按照Block 0-1-2的顺序经过SOM网络。每个Block的传播方向均为正向。SOM网络的所有二元交换单元均设置为自路由的工作模式,对输入信号的标签进行比较,并根据比较结果进行路由。外部输入的路由信号CW_in没有被使用。

在另一个实施例中,显示的是数值多播。

图16展示了使用8输入SOM网络完成输入数据的数值多播以及所需要的控制信号配置方法。本实施例中,需要多播的输入信号的标签为设置为1,其余输入信号的标签被设置为0。SOM网络会根据配置信息,在指定的输出端口范围内多播指定的信号。本例中,输入端口0和1的数据被多播到输出端口0-3上,输入端口5的数据被多播到输出端口4-7上。数据流按照Block 2-1-0的顺序经过SOM网络。每个Block的传播方向均为反向。其中,大部分二元交换单元均使用CW_in信号进行“直通”路由。仅在Block 1的S0级和Block 0的RSN 0和RSN 1的交换单元被配置为自路由模式,根据标签大小进行多播(上播或者下播),从而将标签为1的数据进行复制和传播。通过修改和配置各个Block的路由模式和CW_in配置,可以将不同位置的输入信号多播到不同规模的输出端口上。

在另一个实施例中,显示的是非零数值的压缩和解压缩。

图17(a)和图17(b)展示了使用8输入SOM网络完成非零数据的压缩和解压缩以及所需要的控制信号配置方法。

在非零数值压缩的实施例中,每个非零输入数据的标签的高位被设置为0,低位被设置为该元素在向量中的位置。其余输入数据的标签高位被设置为1。SOM网络会对标签进行升序排序,从而将非零元素重排到输出端口的前部,且各个非零元素彼此之间的相对顺序保持不变。数据流按照Block 0-1-2的顺序经过SOM网络。每个Block的传播方向均为正向。SOM网络的所有二元交换单元均设置为自路由的工作模式,对输入信号的标签进行比较,并根据比较结果进行路由。外部输入的路由信号CW_in没有被使用。

在非零数值解压缩的实施例中,每个非零数值的标签设置为其在原始向量中的位置。

在另一个实施例中,显示的是多播后分组重排。

图18展示了使用8输入SOM网络完成多播并分组排序以及所需要的控制信号配置方法。本实施例中,4个输入数据分别携带标签,这4个输入信号首先被Block 2多播为2组,然后在每组组内进行重排。其中第一组按照数值大小进行升序排序,第二组按照标签排序,从而实现组内元素按照进行重组。数据流按照Block 2-0-1的顺序经过SOM网络。其中Block2的方向为反向,Block 0和1的方向为正向。

在另一个实施例中,显示的是多个SOM网络的同步。

通过共享路由信号,多个SOM网络可以同步完成相同的数据重组。图19展示了两个SOM网络(SOM 1和SOM 2)同步完成数据重组。其中SOM 1对8个输入信号的数据负载进行升序排序。与此同时,SOM 1将每个二元交换单元的路由信息通过CW_out端口共享给SOM 2。SOM 2直接使用SOM 1输出的路由信息来配置其本地的二元交换单元,从而使SOM 2的输入信号经过了与SOM 1输入信号相同的重排。因此,SOM 1和SOM 2的输出信号中,相同位置的元素仍保持其在原始输入向量中的对应关系。

在这种同步关系中,提供路由信息的SOM网络被称为Actor Network,接收路由信息的SOM网络被称为Tracker Network。由于Actor Network的路由信号传输给TrackerNetwork需要一时钟周期延迟,因此Actor Network的数据流始终比Tracker Network的数据流早一个时钟周期。另外需要注意的是,一个Actor Network可以同时对应多个TrackerNetwork。图20给出了一个矩阵变化的例子。在该例中。矩阵的某一列元素被Actor Network进行排序,同时其余列的元素被4个Tracker Network处理,从而各列元素之间的相对位置保持不变。

在另一个实施例中,在SOM传输网络的基础上,对于每个Block,将其中所包含的每个RSN网络的第一级的第一个交换单元更换为归约交换单元即可构造SOM归约网络。

就该实施例而言,基于SOM传输网络,可以进一步构造SOM归约网络。其构造方法为:在SOM传输网络的基础上,对于每个Block,将其中所包含的每个RSN网络的第一级的第一个交换单元更换为归约交换单元。如图21所示。

在另一个实施例中,所述SOM归约网络是在输入规模为k的SOM网络中嵌入了k-1个加法器,各个加法器的位置如图22(a)所示。

就该实施例而言,如图22(b)所示。该结构实际上在SOM网络中嵌入了一个完整的k输入加法树,该加法树有k-1个加法器。通过控制SOM网络的数据流,可以控制数据流在任意Block的输出端口输出,从而支持在加法树的任意级输出加和结果。基于此机制,SOM归约网络可以实现灵活地对不同规模数据的归约操作。理论上讲,k可以取2的任意幂次,即k=2r,且r为任意大于1的正整数。在实际应用场景里,k的取值范围一般在4到512之间。

SOM归约网络可以通过调整Block之间的数据流顺序,实现不同规模的分组归约。具体来说,针对随机分布的一组输入信号,SOM网络可以将分属不同分组且分布在随机位置的元素按照分组进行聚合,然后对各个分组分别进行归约计算,并在指定位置输出各组的计算结果。在这种“聚合-归约”计算模式中,“聚合”功能是通过反向使用RSN达成的,“归约”是通过正向使用SOM网络中嵌入的加法树达成的。通过调整“聚合”和“归约”所用的RSN规模,可实现不同规模的分组归约。

在另一个实施例中,显示的是8输入SOM归约网络的具体实现。

图23展示了8输入SOM归约网络的具体拓扑结构。8输入网络包含3个Block,Block0包含4个2输入的RSN网络,1级二元交换单元(S0);Block 1包含2个4输入的RSN网络,2级二元交换单元(S0,S1);Block 3包含1个8输入的RSN网络,3级二元交换单元(S0,S1,S2)。其中,每个RSN网络的S0级的第一个交换单元使用归约交换单元,其余交换单元使用基本交换单元。

在另一个实施例中,显示的是规模为4的分组归约。

图24展示了使用8输入SOM网络完成规模为4的分组数据的归约以及所需要的控制信号配置方法。本实施例中,每个输入数据的标签为其组号,8个输入数据分为两组(组0和组1),每组各有4个元素,且每组中各个元素的随机分布在在输入向量中。SOM网络首先通过设置Block 2将两组元素进行聚类,然后通过Block 0和Block1的归约交换单元进行分组加和。最终由Block 1输出组0和组1的加和结果。在本实施例中,Block 0和Block 1中的Reduce信号被设置为1,Block 2中的Reduce信号被设置为0。数据流按照Block 2-0-1的顺序经过SOM网络。其中Block 2的方向为反向,Block 0和1的方向为正向。

在另一个实施例中,显示的是规模为2的分组归约。

图25展示了使用8输入SOM网络完成规模为2的分组数据的归约以及所需要的控制信号配置方法。本实施例中,每个输入数据的标签为其组号,8个输入数据分为4组(组0、组1、组2、组3),每组各有2个元素,且每组中各个元素的随机分布在在输入向量中。SOM网络首先通过设置Block 2和Block1将4组元素进行聚类,然后通过Block 0和归约交换单元进行分组加和。最终由Block 0输出各组的加和结果。在本实施例中,Block 0中的Reduce信号被设置为1,Block1和Block 2中的Reduce信号被设置为0。数据流按照Block 2-1-0的顺序经过SOM网络。其中Block 2和Block1的方向为反向,Block 0的方向为正向。

在另一个实施例中,本方案的可扩展性极强。主要体现在以下几点:

(1)SOM网络为递归搭建,其规模可以任意扩展为2r大小。

(2)SOM网络中每个二元交换单元的配置信号和路由方法可以进行扩展,以实现更复杂的路由方法。例如,标签的位宽可以根据需求进行扩展和压缩,也可以规定每个交换单元根据输入信号标签中某一位的值来决定其路由方法,从而支持每个输入数据将其完整的路由路径保存在标签位中,而无需每个二元交换单元根据比较器结果进行路由选择。

(3)SOM网络的数据流可以进一步灵活化。通过在各级交换单元之间实现类似于Block之间的灵活数据通路配置,可以允许数据流并非按照“正向”或“反向”两种固定的方向经过Block,而是可以更灵活地选择通过Block中各个二元交换单元级的顺序。通过此扩展,可以实现更多的拓扑类型,从而支持更复杂的数据重排功能。

(4)SOM网络的归约功能可以进一步进行扩展。归约交换单元的归约功能可以扩展为加法以外的其他运算,如乘法、移位,取最大/最小值,或者与、或、非等逻辑运算。

在另一个实施例中,本方案的应用范围广泛,主要为以下几个方面:

(1)SOM网络可用于通用SIMD计算架构中数据在Cache和寄存器之间的传输通路。数据在从Cache传输到寄存器的过程中,经过SOM网络提供的数据重组功能,可以更好地适配SIMD指令所需的数据格式,减少计算所需的SIMD指令数量。而且,运算结果在从寄存器写回到Cache的过程中,经过SOM网络提供的数据重组和灵活归约功能,可以对进行灵活的后处理,如对计算结果进行分组加和或者非零元素压缩。这些后处理是在数据传输中吟诗完成的,因此可以进一步减少SIMD指令数量。

(2)SOM网络可用于专用领域计算架构(Domain-Specific Architecture,DSA)的数据预处理和后处理模块。根据专用计算所需的数据流,可以对SOM网络进行专门的适配和调整,去除某些不需要的功能,简化其电路复杂度,同时更好地适配某类专门数据结构。

(3)SOM网络可用于对大块数据存储介质(如DDR)的访存预处理和后处理。由于SOM的高度可扩展性,可以对其规模进行扩展,使之符合大块的数据传输处理。例如,通过SOM的动态压缩和解压缩功能,可以有效降低存储访问带宽,提升访存效率。

尽管以上结合附图对本发明的实施方案进行了描述,但本发明并不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,这些均属于本发明保护之列。

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息交易方法、信息使用者终端及程序

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!