支持向量排序的装置、方法及应用制造方法及图纸

技术编号:19319676 阅读:25 留言:0更新日期:2018-11-03 10:34
本公开涉及支持向量排序的装置、方法和应用,其中装置包括数据存储单元、运算模块、控制单元和数据输出单元,其中,数据存储单元,用于存储向量排序指令、待排序的数据向量以及排序向量的中间结果;控制单元,获取所述向量排序指令;运算模块,用于将待排序的数据向量或排序向量的中间结构排序为由小到大的向量或由大到小的向量,排序运算所采用的方法可以配置;数据输出单元,用于存储排序后的向量。

Support vector sorting: device, method and Application

The present disclosure relates to a device, method and application of support vector sorting, in which the device includes a data storage unit, an operation module, a control unit and a data output unit, wherein the data storage unit is used to store vector sorting instructions, data vectors to be sorted, and intermediate results of the sorting vector; and the control unit, acquisition. The vector sorting instruction, the operation module, is used to sort the intermediate structure of the data vector or the sorting vector to be sorted into vectors from small to large or from large to small, and the method used in the sorting operation can be configured; and the data output unit is used to store the sorted vectors.

【技术实现步骤摘要】
支持向量排序的装置、方法及应用
本公开涉及向量运算领域,更具体地涉及支持向量排序指令的装置、和方法,以及相应装置的应用。
技术介绍
向量排序,作为一种基本的运算类型,广泛应用于各种领域。例如,在数据库中,根据某一属性值进行排序;在人工神经网络对样本进行分类预测时,根据样本属于各分类的概率求解前k最大概率对应的类型时,需要计算出的各个分类概率进行排序,挑选出前k大的概率对应的类型。传统的向量排序方法是在通用处理器上通过特定的算法进行运算,可以采用的方式大致有冒泡排序、选择排序、快速排序、归并排序和二分排序。采用软件方式在通用处理器上进行排序过程中,相关操作串行执行,很难利用排序算法的可并行性,运算速度较慢,同时,向量排序算法会被分成译码成一系列的指令序列,译码的开销也很大。公开内容有鉴于此,本公开的目的在于,提供一种支持向量排序指令的装置、方法及应用,以解决以上所述的至少一项技术问题。根据本公开的一方面,提供一种支持向量排序的装置,包括数据存储单元、运算模块、控制单元和数据输出单元,其中,数据存储单元,用于存储向量排序指令、待排序的数据向量以及排序向量的中间结果;控制单元,获取所述向量排序指令,并向运算模块输入进行运算的微指令,并控制运算模块将运算结果写入到数据输出单元中;运算模块,用于根据微指令设置排序规则,将待排序的数据向量或排序向量的中间结构排序为由小到大的向量或由大到小的向量,形成与待排序的数据向量等长度的排序后的向量;数据输出单元,用于存储排序后的向量。根据本公开另一方面,提供一种步骤1,控制单元3从数据存储单元1中获取所要执行的指令,单元根据指令的操作码判断指令的类型,若指令为排序指令,转到步骤5,否则,转到步骤2执行;步骤2,控制单元3控制运算模块2从数据存储单元1中获取执行操作所需的源数据,并将其送入到第二运算子模块22;步骤3,控制单元3控制第二运算子模块22根据指令内容完成相应的运算,获取运算结果;步骤4,控制单元3控制第二运算子模块22将运算结果根据指令中目的操作数的地址写入到数据输出单元4中,运算终止;步骤5,控制单元3根据向量排序的类型、待排序向量的长度,排序指令的源操作数源地址、目的操作数地址,生成向量排序所需要的微指令,并将微指令送至运算模块2;步骤6,运算模块2从数据存储单元1中获取待排序向量或排序中间结果,根据微指令对待排序向量或排序中间结果进行排序操作;若排序得到的为中间结果,则将中间结果写回到数据存储单元1原地址处,重复执行步骤6;否则,排序得到的为最后结果,将排序后的结果根据排序指令提供的目的操作数地址写回到数据输出单元4中,操作结束。根据本公开的再一方面,提供一种使用以上装置进行神经网络运算的方法,其中所述待排序的数据向量为预处理阶段测试数据特征矩阵对应的特征值向量和分类结果的概率向量。本公开的装置可以通过冒泡排序、选择排序、快速排序、归并排序、二分排序等排序方法进行向量排序。其中本装置可以实现向量运算,可以充分利用排序方法的可并行性,该装置支持的向量排序指令中存在向量长度域用于指明待排序向量的长度,待排序向量的长度可变,排序方法可以配置。附图说明图1示意性示出了本公开实施例的向量排序指令的格式;图2示意性示出了本公开实施例的支持向量排序指令的装置的整体结构;图3示意性示出了本公开实施例的向量排序运算的流程图。图4示意性示出了本公开实施例的向量归并排序运算的流程图。图5示意性示出了本公开实施例的通过指令配置的方式动态选择排序方法完成向量排序运算的流程图。图6示意性示出了本公开实施例的支持向量排序指令的装置的归并排序部分的第一运算子模块的结构示意图;图7示意性示出了本公开实施例的数据归并单元的结构示意图。具体实施方式为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。根据本公开的基本构思,提供一种支持向量排序指令的装置,该装置可以完成向量排序功能。其中本装置可以实现向量运算,可以充分利用排序方法的可并行性。该装置支持的向量排序指令中存在向量长度域用于指明待排序向量的长度,待排序向量的长度可变。为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。图1示意性示出了本公开实施例的向量排序指令的格式,其中可包括:操作码OP,长度为k位,内容为b1b2...bk,用于指明该指令所做的操作为向量排序操作,若指令的前k位不与b1b2...bk一致,则表明指令表示其他运算操作;向量地址SRC,长度为q位,当操作码为b1b2...bk时,表示待排序向量在数据存储单元中的地址;向量地址DST,长度为q位,当操作码为b1b2...bk时,表示排序后的向量在数据输出单元中的地址;向量长度LEN,长度为r位,当操作码为b1b2...bk时,表示待排序向量的长度;排序类型,长度为1或多位,当操作码为b1b2...bk时,若排序类型的最高位为0,表示由小到大进行排序。若排序类型的最高位为1,表示由大到小进行排序。若排序类型域的长度为m(m>1)位,排序类型的低m-1位指明排序指令所采用的排序方法。图2示意性示出了本公开实施例的支持向量排序指令的装置的整体结构。其中包括:数据存储单元1,用于向控制单元3提供运算指令和向运算模块2提供运算操作的源操作数。如果进行的运算为非向量排序指令,则数据存储单元1将源操作数提供给运算模块2的第二运算子模块22,如果进行的运算为向量排序指令,则数据存储单元1将根据控制传递的信号将指定地址长度的源操作数提供给向量排序子模块21,并存储向量排序子模块21运算后的中间结果,再将存储的中间结果提供给第一运算子模块21,循环多次,直到第一运算子模块21运算得到已排序的向量。运算模块2,用于根据控制单元3发出的信号从数据存储单元1中读取源操作数,并执行相应的运算,将运算结果写入到数据输出单元4中。其中运算模块2由向量排序子模块21和第二运算子模块22两部分构成。若由控制单元3发出的运算信号为非向量排序信号,则由第二运算子模块22完成相应的运算,并将运算结果写入到数据输出单元4中。若有控制单元3发出的运算信号为向量排序信号,则向量排序子模块21根据控制单元3发出的微指令进行向量排序运算。排序过程中,向量排序子模块21根据设置的输入数据地址和长度从数据存储单元1中读取原始数据向量或者排序得到的中间结果,若排序运算得到的是中间结果,写回到数据存储单元1中,若排序运算得到的是最终结果,则将数据向量写入到数据输出单元4中。优选地,向量排序子模块21可以完成向量归并排序。优选地,向量排序子模块21可以通过指令本文档来自技高网...

【技术保护点】
1.一种支持向量排序的装置,包括数据存储单元、运算模块、控制单元和数据输出单元,其中,数据存储单元,用于存储向量排序指令、待排序的数据向量以及排序向量的中间结果;控制单元,获取所述向量排序指令,并向运算模块输入进行运算的微指令,并控制运算模块将运算结果写入到数据输出单元中;运算模块,用于根据微指令设置排序规则,将待排序的数据向量或排序向量的中间结构排序为由小到大的向量或由大到小的向量,形成与待排序的数据向量等长度的排序后的向量;数据输出单元,用于存储排序后的向量。

【技术特征摘要】
1.一种支持向量排序的装置,包括数据存储单元、运算模块、控制单元和数据输出单元,其中,数据存储单元,用于存储向量排序指令、待排序的数据向量以及排序向量的中间结果;控制单元,获取所述向量排序指令,并向运算模块输入进行运算的微指令,并控制运算模块将运算结果写入到数据输出单元中;运算模块,用于根据微指令设置排序规则,将待排序的数据向量或排序向量的中间结构排序为由小到大的向量或由大到小的向量,形成与待排序的数据向量等长度的排序后的向量;数据输出单元,用于存储排序后的向量。2.根据权利要求1所述的装置,其特征在于,所述排序规则包括冒泡排序、选择排序、快速排序、归并排序和/或二分排序规则。3.根据权利要求2所述的装置,其特征在于,所述排序规则为归并排序规则。4.根据权利要求3所述的装置,其特征在于,所述运算模块包括由n个向量归并单元构成的第一运算子模块,其中,n为大于等于2的自然数,第一运算子模块每次从数据存储单元中读取不大于2n个已经归并的子向量或者有序子向量,然后进行归并,转存入数据存储单元中,直到已经归并的子向量的长度等于待排序的数据向量长度,形成排序后的向量。5.根据权利要求1-4任一所述的装置,其特征在于,所述运算模块还包括进行非向量排序的第二运算子模块,第二运算子模块用以完成除向量排序外的运算操作。6.一种向量排序方法,其特征在于包括:步骤1,控制单元3从数据存储单元1中获取所要执行的指令,单元根据指令的操作码判断指令的类型,若指令为排序指令,转到步骤5,否则,转到步骤2执行;步骤2,控制单元3控制运算模块2从数据存储单元1中获取执行操作所需的源数据,并将其送入到第二运算子模块22;步骤3,控制单元3控制第二运算子模块22根据指令内容完成相应的运算,获取运算结果;步骤4,控制单元3控制第二运算子模块22将运算结果根据指令中目的操作数的地址写入到数据输出单元...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1