CN110807521A - 支持向量运算的处理装置、芯片、电子设备和方法 - Google Patents

支持向量运算的处理装置、芯片、电子设备和方法 Download PDF

Info

Publication number
CN110807521A
CN110807521A CN201911040131.1A CN201911040131A CN110807521A CN 110807521 A CN110807521 A CN 110807521A CN 201911040131 A CN201911040131 A CN 201911040131A CN 110807521 A CN110807521 A CN 110807521A
Authority
CN
China
Prior art keywords
input vector
result
segment
operation unit
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911040131.1A
Other languages
English (en)
Other versions
CN110807521B (zh
Inventor
杨龚轶凡
郑瀚寻
闯小明
曾昭睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhonghao Xinying Hangzhou Technology Co ltd
Original Assignee
Shenzhen Xinying Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Xinying Technology Co Ltd filed Critical Shenzhen Xinying Technology Co Ltd
Priority to CN201911040131.1A priority Critical patent/CN110807521B/zh
Publication of CN110807521A publication Critical patent/CN110807521A/zh
Application granted granted Critical
Publication of CN110807521B publication Critical patent/CN110807521B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Advance Control (AREA)

Abstract

本申请公开了支持向量运算的处理装置、芯片、电子设备和方法,其中处理装置包括:分级设置的多个运算单元,每级运算单元能够按照同一组输入向量中的输入向量元素的排列顺序分别获取对应的至少两个输入向量元素;第一级的运算单元对其自身所获取的输入向量元素进行运算,并输出相应的结果;后续级的运算单元对上一级的运算单元所输出的结果及其自身所获取的输入向量元素进行运算,并输出相应的结果。通过上述方式,本申请能够提高处理装置的运算效率。

Description

支持向量运算的处理装置、芯片、电子设备和方法
技术领域
本申请涉及人工智能技术领域,特别是涉及支持向量运算的处理装置、芯片、电子设备和方法。
背景技术
在人工智能算法的发展下,神经网络算法变得越来越受计算机科学家的重视。其中向量运算大量存在神经网络算法运算中,对于大规模向量运算,现代计算机的算力受到了挑战。向量运算的专用数字电路是提高大规模向量运算的效率的有效方案。
目前的计算单元运算大规模向量内部元素求和或者比较最大最小值时需要多次循环来求出结果,难以实现大规模数据吞吐量和高并行度,运行效率低下。
发明内容
本申请主要解决的技术问题是提供支持向量运算的处理装置、芯片、电子设备和方法,能够提高向量运算的处理效率。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种支持向量运算的处理装置,包括分级设置的多个运算单元,每级运算单元能够按照同一组输入向量中的输入向量元素的排列顺序分别获取对应的至少两个输入向量元素;第一级的运算单元对其自身所获取的输入向量元素进行运算,并输出相应的结果;后续级的运算单元对上一级的运算单元所输出的结果及其自身所获取的输入向量元素进行运算,并得出相应的结果。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种神经网络芯片,包括上述的处理装置。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种电子设备,包括上述的神经网络芯片。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种支持向量运算的处理方法,包括:每级所述运算单元能够按照同一组输入向量中的输入向量元素的排列顺序分别获取对应的至少两个输入向量元素;第一级的所述运算单元对其自身所获取的输入向量元素进行运算,并输出相应的结果发送给下一级的所述运算单元;后续级的所述运算单元获取来自于上一级的所述运算单元的结果,并对上一级的所述运算单元所输出的结果及其自身所获取的输入向量元素进行运算,并得出相应的结果。
与现有技术相比,本申请的有益效果是:通过设置分级设置的多个运算单元,第一级的运算单元进行相应运算后,输出相应的运算结果至下一级的运算单元,后续级的运算单元对上一级的运算单元所输出的结果及其自身所获取的输入向量元素进行运算,输出相应的结果,分级计算能够提高运算单元的处理速度,而且可以实现对同一组输入向量的流水式运算,还可以实现对不同组的输入向量进行连续计算,提高整个处理装置的高吞吐量计算。
附图说明
图1是本申请支持向量运算的处理装置实施例的电路示意框图;
图2是本申请支持向量运算的处理装置实施例中的运算单元的第一电路示意框图;
图3是本申请支持向量运算的处理装置实施例中的运算单元的第二电路示意框图;
图4是本申请支持向量运算的处理装置实施例在整段式运算模式下进行并行运算过程示意图;
图5是本申请支持向量运算的处理装置实施例在分段式运算模式下进行并行运算过程示意图;
图6是本申请神经网络芯片实施例的结构示意框图;
图7是本申请电子设备实施例的结构示意框图;
图8是本申请支持向量运算的处理方法实施例的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参阅图1,本申请支持向量运算的处理装置实施例,可以包括分级设置的多个运算单元10、解码器20、分段寄存器30和运算结果筛选单元40。
分级设置的多个运算单元10之间可以顺次连接,也即相邻级的运算单元10之间可以相互连接。每级的运算单元10能够按照同一组输入向量中的输入向量元素的排列顺序分别获取对应的至少两个输入向量元素。在本实施例中,同一组输入向量是指一个输入向量,也是可以依次排列的多个输入向量的组合。
第一级的运算单元10对其自身所获取的输入向量元素进行运算,并输出相应的结果。后续级的运算单元10对上一级的运算单元10所输出的结果及其自身所获取的输入向量元素进行运算,并得出相应的结果。在本实施例中,上一级的运算单元10所输出的相应结果可以是其进行运算所得出的运算结果,也可以是根据实际运算情况所设置的结果。
通过设置第一级的运算单元10进行相应运算后,输出相应的运算结果至下一级的运算单元10,后续级的运算单元10对上一级的运算单元10所输出的结果及其自身所获取的输入向量元素进行运算,输出相应的结果,分级计算能够提高运算单元10的处理速度,而且可以实现对同一组输入向量的流水式运算,还可以实现对不同组的输入向量进行连续计算,提高整个处理装置的高吞吐量计算。
运算单元10可以具有多个运算模式,例如为整段式运算模式和分段式运算模式。在整段式运算模式下,多个运算单元10将所获取的输入向量元素作为整体,并进行连续运算。在分段式运算模式下,多个运算单元10将所获取的输入向量元素划分成多个分段,并分别对各分段内输入向量元素进行运算。设置运算单元10具有多个运算模式,能够满足不同情形的向量元素运算,实现多样运算。
运算单元10可以具有多个运算功能,例如为求和运算功能和比较运算功能。多个运算单元10在执行求和运算功能时,可以将所获取的输入向量元素进行求和运算,运算结果为和值。多个运算单元10在整段式运算模式下执行求和运算功能时,将该同一组输入向量的所有输入向量元素进行求和运算。多个运算单元10在分段式下执行求和运算功能时,将同一组输入向量的各分段内是输入向量元素分别进行求和运算。
多个运算单元10在执行比较运算功能时,可以将所获取的输入向量元素进行大小比较运算,运算结果为最大值或最小值。多个运算单元10在整段式运算模式下执行比较运算功能时,将该同一组输入向量的所有输入向量元素进行比较运算。多个运算单元10在分段式下执行求和运算功能时,将同一组输入向量的各分段内的输入向量元素分别进行比较运算。
参阅图2和3,各运算单元10可以包括分级设置的多组子运算单元100。每组子运算单元100中包括至少一子运算单元100。第一组子运算单元100中的子运算单元100分别对运算单元10所获取的输入向量元素中的部分输入向量元素进行运算,并输出运算结果。其余组子运算单元100中的子运算单元100对前一组子运算单元100中的运算结果进行运算,并输出相应的运算结果。
每一子运算单元100包括运算选择器110、结果选择器120以及并联设置于运算选择器110和结果选择器120之间的至少两个运算器130。运算选择器110可以用于切换整段式运算模式或者分段式运算模式,和/或将输入向量元素发送至对应的运算器130。结果选择器120用于将对应的运算器130的运算结果输出。
至少两个运算器130可以包括用于执行求和运算功能的加法器131和用于执行比较运算功能的比较器132。加法器131可以包括整型加法器1311、浮点加法器1312。整型加法器1311可以用于将每个输入向量元素划分为同位宽的高位整形数和低位整形数,并将其获取的所有输入向量元素的高位整形数和低位整形数分别进行求和运算。浮点加法器1312可以用于将其获取的输入向量元素作为浮点数进行求和运算。比较器132用于将其获取的输入向量元素进行大小比较运算。
解码器20可以用于对接收到的模式选择指令进行解析,并将解析结果发送给多个运算单元10。多个运算单元10可以根据模式选择指令执行模式选择指令所指定的运算模式,比如整段式运算模式或者分段式运算模式,如此可以实现多个运算单元10能够根据解析结果在整段式运算模式和分段式运算模式之间进行切换。具体地,运算单元10中各子运算单元100的运算选择器110可以用于根据模式选择指令切换整段式运算模式或者分段式运算指令,使得加法器131或者比较器132在整段式运算模式下或者分段式运算模式下进行运算。
解码器20用于对接收到的运算选择指令进行解析,多个运算单元10可以根据运算选择指令执行运算选择指令所指定的运算功能,比如求和运算功能或者比较运算功能。具体地,每个运算单元10中各子运算单元100的运算选择器110可以用于根据运算选择指令所指定的运算功能,将输入向量元素发送至对应的运算器。若运算选择指令对应整型的求和运算,则将输入向量元素发送至整型加法器1311进行相应的运算;若运算选择指令对应浮点的求和运算,则将输入向量元素发送至浮点加法器1312进行相应的运算;若运算选择指令对应比较运算,则将输入向量元素发送至比较器132进行相应的运算。
在一个示例性场景中,将包括模式选择指令和运算选择指令的指令输入到解码器20中,解码器20将接收到的指令进行解析。
若解析结果对应整段式运算模式以及求和运算功能,则所有的运算单元10中各子运算单元100的运算选择器110可以用于根据模式选择指令执行整段式运算模式,使得加法器131在整段式运算模式下进行求和运算。若解析结果对应整段式运算模式以及比较运算功能,则多个运算单元10中各子运算单元100的运算选择器110可以用于根据模式选择指令执行整段式运算模式,使得比较器132在整段式运算模式下进行比较运算。
若解析结果对应分段式运算模式以及求和运算功能,多个运算单元10中各子运算单元100的运算选择器110可以选择分段式运算模式,使得加法器131在分段式运算模式下进行求和运算;若解析结果为分段式运算模式以及比较运算功能,多个运算单元10中各子运算单元100的运算选择器110可以选择分段式运算模式,使得加法器131在分段式运算模式下执行比较运算功能。
参阅图2和图4,本实施例如下对整段式运算模式进行示例性描述:
在整段式运算模式下,当前级的运算单元10执行相应的运算功能后,将运算结果输出至下一级的运算单元10。运算结果筛选单元40可以用于将最后一级的运算单元10的运算结果设置到输出向量中的第一预设输出向量元素中,并将其余输出向量元素置零。
以每个运算单元10可以接收8个输入向量元素为例,对多个运算单元10在整段式运算模式下执行求和运算功能的过程进行示例性描述:
当第一级的运算单元10将其自身所获取的8个输入向量元素进行求和运算功能,得出该8个输入向量元素的和值。第一级的运算单元10将会该和值传递到下一级的运算单元10。下一级的运算单元10会利用上一级的运算单元10的运算结果和其自身所获取的8个输入向量元素进行求和运算,也即将其自身所获取的8个输入向量元素的和值与上一级的运算单元10所传递的和值进行求和,相当于这两个运算单元10的16个输入向量元素进行求和,到最后一级的运算单元10,即可以输出该组输入向量的输入向量元素的求和结果即和值。
例如,每个运算单元10可以包括8个子运算单元100。第一组子运算单元100包括4个子运算单元。第一组子运算单元10的第一个子运算单元100对输入向量元素1和输入向量元素2进行求和运算,将两者的和值作为结果1进行输出;第二个子运算单元100对输入向量元素3和输入向量元素4进行求和运算,将两者的和值作为结果2进行输出;第三个子运算单元100对输入向量元素5和输入向量元素6进行求和运算,将两者的和值作为结果3进行输出;第四个子运算单元100对输入向量元素7和输入向量元素8进行求和运算,将两者的和值作为结果4进行输出。
第二组子运算单元100可以包括2个子运算单元100。第二组子运算单元100的第一个子运算单元100接收结果1和结果2进行求和运算,将两者的和值作为结果5进行输出;第二个子运算单元100接收结果3和结果4进行求和运算,将两者的和值作为结果6进行输出;
第三组子运算单元100可以包括1个子运算单元100,该子运算单元100接收结果5和结果6进行求和运算,将两者的和值作为结果7进行输出。
第四组子运算单元100可以包括1个子运算单元100,该子运算单元可以接收结果7和上一级的运算单元10的输出的结果(除了第一级的运算单元10不存在上一级的运算单元10外)进行求和运算,将两者的和值作为结果8进行输出。该结果8可以输出至下一级的运算单元10。
多个运算单元10通过各自的子运算单元100的配合和运算,能够对同一组输入向量的输入向量元素进行相应的运算,进而得到运算结果。
如图4所示,为了提高处理装置的运行效率,进一步优化流水式运算满足大吞吐量的运算,不同组的输入向量可以依次输入到多个运算单元10中,以使得多个运算单元10依次对该不同组的输入向量进行运算。至少两个运算单元10能够在同一时段对从不同组的输入向量所获得的输入向量元素进行并行运算。
例如,将输入向量A为[a1,a2,a3,a4,a5,……],输入向量B为[b1,b2,b3,b4,b5,……],输入向量C为[c1,c2,c3,c4,c5,……],输入向量D为[d1,d2,d3,d4,d5,……]依次输入到多个运算单元10中进行运算。
第一级的运算单元10在时段1对接收到输入向量A的输入向量元素a1-a8进行求和运算,将输入向量A中a1-a8相加得到运算结果sum(a1-a8),接着将运算结果输出给下一级的运算单元10。输出完成后,此时第一级的运算单元10会在时段2接收到的输入向量B中的输入向量元素b1-b8进行求和运算。下一级的运算单元10在时段2对接收到的第一级的运算单元10所输出的sum(a1-a8)和输入向量A中的输入向量元素a9-a16进行求和运算,输出sum(a1-a16)给再下一级的运算单元10。由于第一级的运算单元10在时段1对输入向量元素a1-a8进行求和运算完成,其可以在时段2接着接收输入向量B中输入向量元素b1-b8进行运算。第一级的运算单元10对输入向量B的输入向量元素b1-b8的求和运算与下一级的运算单元10对sum(a1-a8)和a9-a16的求和运算可以在相同的时段2进行并行计算。
第一级的运算单元10在时段2内对输入向量元素b1-b8进行求和运算完成,第一级的运算单元10接着在时段3接收到输入向量C中输入向量元素c1-c8进行求和运算。第二级的运算单元10在时段3接收sum(b1-b8)和b9-b16进行求和运算。第三级的运算单元10在时段3对sum(a1-a16)和a17-a24进行求和运算,第一级运算单元10在时段3可以和后面两级的运算单元10进行并行计算。
以此类推,第一级的运算单元10在时段4可以对输入向量D的输入向量元素d1-d8进行求和运算,第二级的运算单元10在时段4可以对输入向量元素c9-c16和sum(c1-c8)进行求和运算。第三级的运算单元10在时段4可以对sum(b1-b16)和b17-b24进行求和运算。第四级的运算单元10在时段4可以对sum(a1-a24)和a25-a32进行求和运算。通过设置流水线式的并行计算,可以提高装置运行效率,可以在每个时段新输入一组输入向量,实现多个输入向量的部分元素同时运算。在多输入向量输入时,多个运算单元10可以形成了流水线式的运算过程。同一时段,每个运算单元10都可以在执行运算,实现大吞吐量的运算。
具体地,第一级的运算单元10的第一组子运算单元100的4个子运算单元100分别接收a1、a2,a3、a4,a5、a6,a7、a8进行求和运算,第二组子运算单元100的一个子运算单元100接收a1和a2的求和运算结果sum(a1-a2)以及a3和a4的运算结果sum(a3-a4)进行求和运算,得到运算结果sum(a1-a4),另一个子运算单元100接收a5和a6的求和运算结果sum(a5-a6)以及a3和a4的运算结果sum(a7-a8)进行求和运算,得到运算结果sum(a5-a8)。第三组子运算单元100接收运算结果sum(a1-a4)和运算结果sum(a5-a8)进行求和运算,得到运算结果sum(a1-a8),并将sum(a1-a8)发送到下一级的运算单元10的第四组子运算单元100中。
下一级的运算单元10的第四组子运算单元100接收第一级运算单元10的运算结果sum(a1-a8)和自身前三组子运算单元100的运算结果sum(a9-a16)进行求和运算,得到运算结果sum(a1-a16),发送给再下一级的运算单元10的第四组子运算单元100,如此类推。
如图2所示,结果1-结果8还可以输出至运算结果筛选单元40,运算结果筛选单元40接收各运算单元10输出的结果1-结果8,并进行筛选处理。具体地,运算结果筛选单元40进行筛选处理后,可以用于将最后一级的运算单元10进行求和运算的运算结果设置到输出向量中的第一预设输出向量元素中,并将其余输出向量元素置零。第一预设输出向量元素可以为与输入向量的最后一个输入向量元素所对应的输出向量元素。
例如对于输入向量A而言,其对应的输出向量为[m1,m2,m3,……],在对输入向量A进行求和运算后,经过运算结果筛选单元40进行对各运算单元10所输出的结果进行筛选处理m1,m2,m3等设置为0,最终得到的输出向量为[0,0,0,……sum(a1,a2,a3,……)]。
多个运算单元10在整段式模式下执行比较功能的过程,类似于上述在整段式模式下执行求和功能的过程。例如比较功能为求最大值时,第一级运算单元10在时段1接收输入向量A的a1-a8并进行比较以输出比较结果max(a1-a8),并将max(a1-a8)发送给下一级的运算单元10,下一级的运算单元10在时段2接收到输入max(a1-a8),并在时段2将max(a1-a8)和a9-a16进行比较以输出比较结果sum(a1-a16)。对于多个运算单元10在整段式模式下执行比较运算功能的过程可以参照上述执行求和运算功能的描述,在此不再赘述。
当然,本实施例的处理装置可以根据相应的运算选择指令在整段式运算模式下执行比较运算,求解最大值或者最小值对应的序列号。也即,在同一组输入向量中对全部输入向量元素进行数值大小比较,并将数值最大或数值最小的输入向量元素所在的序列号设置到输出向量的第一预设输出向量元素,其他元素设置为零。第一预设输出向量元素例如是输出向量的最后一位输出向量元素。
例如现有一个输入向量为[4,5,6,7],元素4所处的比特位序列号为3,元素5所在的比特位序列号为2,元素6所在的比特位序列号为1,元素7所在的比特位序列号为0,如果执行整段式运算模式和比较运算,求最大值序号,那么输出向量将为[0,0,0,0]。
处理装置在执行整段式运算模式时,可以不需要分段寄存器的参与,或者可以说分段寄存器在整段式运算模式中不起作用。
参阅图3和图5,本实施例如下对分段式运算模式进行示例性描述:
分段寄存器30用于存储分段标记。多个运算单元10可以根据分段标记将输入向量元素进行分段,分别对各分段内的输入向量元素进行运算,分别输出各分段所对应的运算结果。例如,每个运算单元10中各子运算单元100的运算选择器110在根据解码器20的解析结果执行分段式运算模式时,均可以接收分段寄存器30的标记位所存储的分段标记,进而每个子运算单元100可以获知该组输入向量的分段情况,分别对各分段内的输入向量元素进行相应的运算。
例如分段寄存器30包括分别与各输入向量元素对应的标记位。每个标记位用于存储第一分段标记或第二分段标记。第一分段标记可以设置为“0”,第二分段标记可以设置为“1”。第一分段标记用于指示与其所存储的标记位对应的输入向量元素与后续的输入向量元素属于同一分段。第二分段标记用于指示与其所存储的标记位对应的输入向量元素与后续的输入向量元素分属不同的分段。
也即标志位的标记规则可以为:以第一分段标记“0”为每一分段的起始点,按照输入向量元素的排列顺序,若遇到第二分段标记“1”则截止,并包含第二分段标记“1”作为一个分段,第二分段标记“1”之后则为另一分段。当连续出现两个第二分段标记“1”时,单独第二分段标记1作为一个分段。同一组输入向量的最后一个输入向量元素对应的标记位既可以为“0”,也可以为“1”,因为无论是“0”或者“1”,均会在最后一个输入向量元素处终结最后一个分段。
例如,输入向量为[3,5,1,3,3,2,1,6,4,1,3,2……4,6,6,2],分段寄存器30的标记位存储[0,0,1,1,0,1,0,0,0,1,1,1……0,0,0,0]。将上述输入向量的各分段的输入向量元素分别进行求和运算,具体可以如下表1:
表1分段式运算模式求和运算举例
序列号 0 1 2 3 4 5 6 7 8 9 10 11 N-4 N-3 N-2 N-1
标记位 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 #
输入向量 3 5 1 3 3 2 1 6 4 1 3 2 4 6 6 2
输出向量 0 0 9 3 0 5 0 0 0 12 3 2 0 0 0 18
例如将上述输入向量的各分段的输入向量元素分别进行比较运算,以输出最大值,具体可以如下表2:
表2分段式运算模式比较运算举例
序列号 0 1 2 3 4 5 6 7 8 9 10 11 N-4 N-3 N-2 N-1
标记位 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 #
输入向量 3 5 1 3 3 2 1 6 4 1 3 2 4 6 6 2
输出向量 0 0 5 3 0 3 0 0 0 6 3 2 0 0 0 18
在上述表1和表2中,序列号可以是指输入向量元素和输出两项元素的排列序列号。标记位是指分段寄存器30的标记位。“#”表示最后一个输入向量元素对应的分段标记可以为第一分段标记,也可以为第二分段标记。输入向量中序列号0-2对应输入向量元素3、5、1为第一个分段,序列号3对应的输入向量元素3则单独为第二个分段,序列号4-5对应的输入向量元素3、2则为第三个分段,序列号6-9对应输入向量元素1、6、4、1为第四个分段,序列号10对应的输入向量元素3和序列号11对应的输入向量元素2分别为第五个分段和第六个分段,以上述标记规则类推。
对各分段分别进行求和运算,对第一个分段的输入向量元素3、5、1进行求和运算,运算结果为9。对第二个分段的输入向量元素3进行求和运算,运算结果依然为3,具体的运算结果可以见上述表1。
对各分段分别进行比较运算,例如求解各分段的最大值,对第一个分段的输入向量元素3、5、1进行最大值比较运算,运算结果为5。对第二个分段的输入向量元素3进行最大值比较运算,运算结果依然为3,具体的运算结果可以见上述表2。
在分段运算模式下,运算结果筛选单元40用于将各分段的运算结果设置到输出向量中的第二预设输出向量元素,并将其余输出向量元素置零。第二预设输出向量元素例如为各分段的第二分段标记或者终结位置所对应的输出向量元素。
对于不包含最后一个输入向量元素的分段而言,其运算结果可以设置到与该分段的第二分段标记对应的输出向量元素中,也即与该分段的第二分段标记对应的输入向量元素的序列号相同的输出向量元素中。对于包含最后一个输入向量元素的分段而言,其并不一定具有第二分段标记,若其以最后一个输入向量元素作为该分段的终结位置,那么该分段的是运算结果可以设置到与该终结位置对应的输出向量元素中。
运算单元10在执行分段式运算模式时,接收分段寄存器30的标记位所存储的分段标记,并可以根据分段标记判断其自身的最后一个分段内的输入向量元素与下一级的运算单元10的第一个分段内的输入向量元素是否属于同一分段。
若属于同一分段,则将最后一个分段对应的运算结果发送至下一级的运算单元10。
若不属于同一分段,在执行求和运算功能时,则将零值输出至下一级的运算单元10,以便于下一级的运算单元10基于零值和其自身所接收的输入向量元素进行运算。
若不属于同一分段,在执行最大值的比较运算时,则将预设最小值输出至下一级的运算单元10,以便于下一级的运算单元10基于预设最小值和其自身所接收的输入向量元素进行运算。在本实施例中,预设最小值可以是指运算单元10本身在硬件上所能够支持的最小值。当然,预设最小值也可以根据所运算的输入向量的情况进行设定,预设最小值等于或者小于该输入向量中的最小的输入向量元素。
若不属于同一分段,在执行最小值的比较运算时,则将预设最大值输出至下一级的运算单元10,以便于下一级的运算单元10基于无穷大值和其自身所接收的输入向量元素进行运算。在本实施例中,预设最大值可以是指运算单元10本身在硬件上所能够支持的最大值。当然,预设最大值也可以根据所运算的输入向量的情况进行设定,预设最大值等于或者大于该输入向量中的最大的输入向量元素。
例如,在上述表1中,将序列号0-7对应的输入向量元素输出至第一级的运算单元10中进行运算,序列号6-7对应的输入向量元素属于第一级的运算单元10的最后一分段与下一级的运算单元10中序列号8-9对应的输入向量元素同属一个分段,那么第一级的运算单元10将序列号6-7对应的输入向量元素1、6进行求和运算,运算结果为7,将该运算结果发送至下一级的运算单元10中,便于该下一级的运算单元10将该运算结果和输入向量元素4、1进行求和运算,该分段的运算结果为12。
假设表1中,与序列号7对应的标记位为第二分段标记“1”,则第一级的运算单元10的最后一个分段为完整的分段,与下一级的第一分段不属于同一个分段。那么第一级的运算单元10向下一级的运算单元10所输出的相应的结果为零值,也即将零值传输给下一级的运算单元10。零值不会影响下一级的运算单元10的第一个分段的运算结果。
例如,在上述表2中,将序列号0-7对应的输入向量元素输出至第一级的运算单元10中进行运算,序列号6-7对应的输入向量元素属于第一级的运算单元10的最后一分段与下一级的运算单元10中序列号8-9对应的输入向量元素同属一个分段,那么第一级的运算单元10将序列号6-7对应的输入向量元素1、6进行最大值的比较运算,运算结果为6,将该运算结果发送至下一级的运算单元10中,便于该下一级的运算单元10将该运算结果和输入向量元素4、1进行最大值的比较运算,该分段的运算结果为6。
假设在上述表2中,与序列号7对应的标记位为第二分段标记“1”,则第一级的运算单元10的最后一个分段为完整的分段,与下一级的第一分段不属于同一个分段。第一级的运算单元10向下一级的运算单元10所输出的相应的结果可以为预设最小值,也即将预设最小值传输给下一级的运算单元10,预设最小值不会影响下一级的运算单元10的第一个分段的进行最大值的比较运算。当然,如果进行最小值的比较运算,那么则将预设最大值传输值下一级的运算单元10,预设最大值不会影响下一级的运算单元10进行最小值的比较运算。
在分段式运算模式下,类似于整段式运算模式中的阐述。至少两个运算单元10能够在同一时段对从不同组的输入向量所获得的输入向量元素进行并行运算。
如图5所示,第一级的运算单元10在时段1接收输入向量元素a1-a8进行求和运算,其中输入向量元素a1-a5为一个分段,a6-a8属于另外一个分段,得出sum(a1-a5)和sum(a6-a8),并将sum(a6-a8)输送至第二级的运算单元10。第一级运算单元10在时段1对a1-a8进行求和运算完成,可以接着在时段2接收另一组输入向量的输入向量元素,例如b1-b8。由于a6-a8和a9-a12属于同一分段,而a9-a12和a13-a16属于不同的分段,第二级的运算单元在时段2可以将sum(a6-a8)和a9-a12进行求和运算,且将a13-a16进行求和运算。第一级的运算单元10和第二级的运算单元10可以在时段2对从不同组的输入向量所获得输入向量元素进行并行计算。
在分段式运算模式下,运算选择器110用于根据分段寄存器30的分段标记,将所获取到的输入向量元素或上一组子运算单元100的运算结果进行选择性屏蔽,并将屏蔽掉的输入向量元素和运算结果发送至对应的后续组的子运算单元100。具体地,每个运算单元10的每个运算子单元的运算选择器110可以接收到对应分段式运算模式的解析结果并执行分段式运算模式,进而每个子运算单元100的运算选择器110均可以从分段寄存器30接收到分段标记等信息,以便于各运算选择器110进行相应的选择性屏蔽,使得各运算子单元能够有效地相互配合进行分段运算。
如图3所示,每个运算单元10包括4组子运算单元100。例如第一组子运算单元100包括4个并列的子运算单元100,每个子运算单元100至少可以接收2个输入向量元素。第二组子运算单元100可以包括2个并列的子运算单元100。第三组子运算单元100可以包括1个子运算单元100。第四组子运算单元100包括1个子运算单元100。
以下给出4组子运算单元100的一种示例性运算逻辑,但不限于此:
第一组子运算单元100的每个子运算单元100分别接收2个输入向量元素。经过相应的运算后,第一组子运算单元100的第一个子运算单元100输出结果1、第二个子运算单元100输出结果2、第三个子运算单元100输出结果3、第四个子运算单元100输出结果4。
第二组子运算单元100的第一个子运算单元100接收结果1和结果2,可以根据分段标记对结果1和结果2进行选择性屏蔽,进行运算后输出结果5。第二组子运算单元100的第二个子运算单元100接收结果3、结果4以及输入向量元素6,可以根据分段标记对结果3、结果4以及输入向量元素6进行选择性屏蔽,并进行运算后输出结果6。
第三组子运算单元100的子运算单元100接收结果5、结果6、结果3以及输入向量元素4,可以根据分段标记对结果5、结果6、结果3以及输入向量元素4进行选择性屏蔽,并进行运算后输出结果7。
第四组子运算单元100的子运算单元100接收结果7、结果1、结果5、输入元素1以及上一级的运算单元10的最后一个分段的运算结果,以根据分段标记对结果7、结果1、结果5、输入向量元素1以及上一级的运算单元10的最后一个分段的运算结果进行选择性屏蔽。
如图3所示,每个运算单元10还包括传递结果筛选器140,接收输入向量元素8、结果6、结果7、结果8,可以根据分段标记对输入向量元素8、结果6、结果7、结果8进行选择性屏蔽,并将相应的结果传递到下一级的运算单元10。
通过上述各组子运算单元100之间的运算逻辑,可以实现对各种分段情况进行运算,满足各种分段需求。
对于每组子运算单元100如何进行屏蔽,如下进行举例说明:
在如下描述中,若当前执行的是求和运算功能,预设值可以为零值;若当前执行的是求最大值的比较运算功能,预设值可以预设最小值;若当前执行的是求最小值的比较运算功能,预设值可以为预设最大值。
对于第一组子运算单元100而言,假设第一组子运算单元100接收8个输入向量元素,如输入向量元素1-8。第一组子运算单元100的第一个子运算单元100,在输入向量元素1和输入向量元素2属于同一个分段时,将输入向量元素1和输入向量元素2进行运算,输出结果1;在输入向量元素1和输入向量元素2不属于同一个分段时,将输入向量元素1进行屏蔽,将输入向量元素2和预设值进行运算,将输入向量元素1输出至第四组子运算单元100。如果输入向量元素1单独为一个分段,则第四组子运算单元100则屏蔽结果7、结果1、结果5以及上一级的运算单元10的最后一个分段的运算结果,直接将输入向量元素1作为结果8输出。如果输入向量元素1和上一级的运算单元10的最后一个分段同属于一个分段,则第四组子运算单元100则屏蔽结果7、结果1和结果5,直接将输入向量元素1和上一级的运算单元10的最后一个分段的运算结果进行运算得出结果8输出。
第一组子运算单元100的第二个子运算单元100,在输入向量元素3和输入向量元素4属于同一个分段时,将输入向量元素3和输入向量元素4进行运算,输出结果2;在输入向量元素3和输入向量元素4不属于同一个分段时,将输入向量元素4进行屏蔽,将输入向量元素3和预设值进行运算,输出结果2。将输入向量元素4输出至第三组子运算单元100。如果输入向量元素4单独为一个分段,则第三组子运算单元100屏蔽结果5、结果6和结果3,并将输入向量元素4和预设值进行运算输出结果7。如果输入向量元素4和后续的输入向量元素同属于一个分段,输入向量元素4可以相应和结果3或者结果6进行运算,输出结果7。
第二组子运算单元100的第一个子运算单元100,在结果1和结果2对应的输入向量元素属于同一个分段时,将结果1和结果2进行运算输出结果5;在结果1和结果2对应的输入向量元素不属于同一分段时,屏蔽结果1,并将结果2和预设值进行运算后输出结果5。将结果1输出至第四组子运算单元100。
第二组子运算单元100的第二个子运算单元100,在结果3和结果4对应的输入向量元素属于同一个分段时,将结果3和结果4进行运算输出结果6;在结果3和结果4对应的输入向量元素不属于同一个分段时,将结果3进行屏蔽,将结果4和预设值进行运算输出结果6。将结果3单独输出给第三组子运算单元100。
第三组子运算单元100,在结果3和结果5对应的输入向量元素属于同一个分段,而和结果4对应的输入向量元素属于不同的分段时,屏蔽输入元素4和结果6,将结果3和结果5进行运算,输出结果7;在结果3和结果5对应的输入向量元素不属于同一个分段,而和输入向量元素4以及结果4属于同一个分段时,屏蔽结果5,将结果3和结果6以及输入向量元素4进行运算,输出结果7;在结果3和结果5以及结果4对应的输入向量元素不属于同一个分段,且和输入向量元素4属于同一个分段时,屏蔽结果5和结果6,将结果3和输入向量元素4进行运算,输出结果7。将结果5输出至第四组子运算单元100,并可以将结果6输出至传递结果筛选器140。
第四组子运算单元100,在输入向量元素1和上一级的运算单元10的最后一个分段属于同一个分段,而和输入向量元素2-8不属于同一个分段时,屏蔽结果1、结果5、结果7,将输入向量元素1和上一级的运算单元10的最后一个分段的运算结果进行运算,输出结果8;在结果1对应的输入向量元素和上一级的运算单元10的最后一个分段属于同一个分段,而和输入向量元素3-8不属于同一个分段时,屏蔽结果5、结果7和输入元素1,将结果1和上一级的运算单元10的最后一个分段的运算结果进行运算,输出结果8;在结果5对应的输入向量元素和上一级的运算单元10的最后一个分段属于同一个分段,而和后续的输入向量元素不属于同一个分段时,屏蔽结果7和输入元素1,将结果5和上一级的运算单元10的最后一个分段的运算结果进行运算,输出结果8;在结果1-3对应的输入向量元素和上一级的运算单元10的最后一个分段属于同一个分段时,而和结果4对应的输入向量元素属于不同分段时,屏蔽结果1、结果5和输入向量元素1,则将结果7和上一级的运算单元10的最后一个分段的运算结果进行运算,输出结果8。
传递结果筛选器140,在输入元素8和下一级的运算单元10的第一个分段属于同一个分段时,则将输入元素8传递到下一级的运算单元10;在结果4对应输入向量元素和下一级的运算单元10的第一个分段属于同一个分段时,在将结果6传输至下一级的运算单元10;在结果3、结果4对应的输入向量元素和下一级的运算单元10的第一个分段属于同一个分段时,则将结果6传输至下一级的运算单元10;在结果2-4对应的输入向量元素和下一级的运算单元10的第一个分段属于同一个分段时,则将结果7传递至下一级的运算单元10;在结果1-8对应的输入向量元素和下一级的运算单元10的第一个分段属于同一个分段时,则将结果8传递至下一级的运算单元10。
某一级的运算单元10为例,接收8个输入向量元素,假设输入向量元素1、2和3属于同一分段,输入向量元素4、5、6、7和8属于另一分段。输入向量元素1和输入向量元素2一起进入第一组子运算单元100的第一个子运算单元100完成运算,输出结果1。输入向量元素3和输入向量元素4进入第一组子运算单元100的第二个子运算单元100,在此子运算单元100中运算选择器110可以根据分段标记屏蔽掉输入向量元素4,可以仅仅让输入向量元素3和预设值作运算,输出结果2。当结果2和结果1一同进入第二组子运算单元100的第一个子运算单元100完成运算,输出结果5。如果输入向量元素1、2、和3为一个完整的分段,则结果5就被传到运算结果筛选单元40,直接作为相应的输出向量元素。
输入元素5和输入元素6进入第一组子运算单元100的第三个子运算单元100完成运算,得出结果3。输入元素7和输入元素8进入第一组子运算单元100的第四个子运算单元100完成运算,得出结果4。结果3和结果4进入第二组子运算单元100的第二个子运算单元100进行运算,完成计算得出结果6,结果6输入第三组子运算单元100。
输入向量元素4、结果3、结果5和结果6输入到第三组子运算单元100,第三组子运算单元100的运算选择器110根据分段标记屏蔽结果3和结果5,只对结果6和输入元素4进行运算,得出结果7。如果结果7对应的输入向量元素为完整分段,则可以将结果7输出至相应的输出向量元素。如果结果7对应输入向量元素与下一级运算单元10的第一个分段同属一个分段,则可以通过传递结果筛选器140将结果7传递至下一级运算单元10。
在上述例子的基础上,假设输入向量元素1、2和3同属于一个分段,输入向量元素4、5和6属于另一个分段,输入向量元素7和8同属于一个分段时,第二组子运算单元100的第二个子运算单元100接收结果3和结果4,其运算选择器110可以根据分段标记屏蔽结果3,而将结果4和预设值进行运算得出结果6,如果输入向量元素7、8和下一级运算单元10的第一个分段同属一个分段,则可以通过传递结果筛选器140将结果6输出至下一级运算单元10。
第三组子运算单元100接收被屏蔽的输入向量元素4、被屏蔽的结果3、结果5和结果6。由于输入向量元素4、5和6属于一个分段,第三组子运算单元100根据分段标记将结果5和结果6屏蔽,对输入向量元素4和结果3进行运算,得出结果7。然后,可以通过运算结果筛选单元40可以将结果7输出至相应的输出向量元素。
如果输入向量元素1、2和3与上一级运算单元10的最后一个分段同属于一个分段,第四组子运算单元100可以屏蔽输入向量元素1、结果1和结果7。将结果5以及上一级运算单元10最后一个分段的运算结果进行运算,得出结果8,并输出至相应的输出向量元素。
假设输入向量元素1和2同属一个分段,输入向量元素3-8同属于一个分段,则第二组子运算单元100的第一子运算单元100接收结果1和结果2,屏蔽结果1,将结果2和0进行运算得出结果5。第三组子运算单元100接收结果5和6进行运算,如果输入向量元素1、2和上一级运算单元10的最后一个分段同属于一个分段,则第四组子运算单元100可以接收结果1以及上一级运算单元10最后一个分段的运算结果进行运算,得出结果8,并输出至相应的输出向量元素。
同理,除了以上举例外,上述提及的各组子运算单元100的运算逻辑,能够满足其他各种分段方式进行计算。
参阅图6,本申请神经网络芯片实施例所提供的神经网络芯片2包括上述本申请支持向量运算的处理装置实施例中所描述的处理装置1,也即可以将处理装置1和其他部件封装成神经网络芯片2。
本实施例中关于处理装置1的描述请参照上述本申请支持向量运算的处理装置1,在此不再赘述。
参阅图7,本申请电子设备实施例所描述的电子设备3包括本申请神经网络芯片实施例中描述的神经网络芯片2。本实施例的电子设备3可以是手机、电脑、笔记本电脑、平板电脑、车载终端、智能穿戴设备、服务器等。
本实施例中关于神经网络芯片2的描述请参照上述本申请支持向量运算的处理装置实施例和本申请神经网络芯片实施例,在此不再赘述。
参阅图8,本申请支持向量运算的处理方法实施例,应用于上述的本申请支持向量运算的处理装置实施例中所描述的处理装置,可以包括如下步骤:
S100:每级运算单元10能够按照同一组输入向量中的输入向量元素的排列顺序分别获取对应的至少两个输入向量元素;
S200:第一级的运算单元10对其自身所获取的输入向量元素进行运算,并输出相应的运算结果发送给下一级的运算单元10;
S300:至少部分后续级的运算单元10获取来自于上一级的运算单元10,并对上一级的运算单元10所输出的运算结果及其自身所获取的输入向量元素进行运算,并得出相应的运算结果。
关于本实施例中更多方法步骤或者内容,可以参照上述本申请支持向量运算的处理装置实施例中的相应描述,在此不再赘述。
综上所述,上述各实施例通过设置第一级的运算单元10进行相应运算后,输出相应的运算结果至下一级的运算单元10,后续级的运算单元10对上一级的运算单元10所输出的结果及其自身所获取的输入向量元素进行运算,输出相应的结果,分级计算能够提高运算单元10的处理速度,而且可以实现对同一组输入向量的流水式运算,还可以实现对不同组的输入向量进行连续计算,提高整个处理装置的高吞吐量计算。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (15)

1.一种支持向量运算的处理装置,其特征在于,包括:
分级设置的多个运算单元,每级所述运算单元能够按照同一组输入向量中的输入向量元素的排列顺序分别获取对应的至少两个输入向量元素;
其中,第一级的所述运算单元对其自身所获取的输入向量元素进行运算,并输出相应的结果;后续级的所述运算单元对上一级的所述运算单元所输出的结果及其自身所获取的所述输入向量元素进行运算,并输出相应的结果。
2.根据权利要求1所述的处理装置,其特征在于:
所述多个运算单元中的至少两个运算单元能够在同一时段对从不同组所述输入向量所获得的所述输入向量元素进行并行运算,所述至少两个运算单元中在所述同一时段各自获取一组所述输入向量,且所述至少两个运算单元所获取的所述输入向量均不同。
3.根据权利要求1所述的处理装置,其特征在于:
所述处理装置还包括解码器,用于对接收到的运算选择指令和/或模式选择指令进行解析,并将解析结果发送给所述多个运算单元,以使得所述多个运算单元执行所述运算选择指令所指定的运算功能和/或执行所述模式选择指令所指定的运算模式。
4.根据权利要求3所述的处理装置,其特征在于:
所述运算模式包括整段式运算模式和分段式运算模式,所述多个运算单元能够执行所述模式选择指令在整段式运算模式和分段式运算模式之间进行切换,其中在所述整段式运算模式下,所述多个运算单元将所获取的所述输入向量元素作为整体,并进行连续运算;在所述分段式运算模式下,所述多个运算单元将所获取的所述输入向量元素划分成多个分段,并分别对各所述分段内输入向量元素进行运算。
5.根据权利要求4所述的处理装置,其特征在于:
所述处理装置还包括分段寄存器,所述分段寄存器用于存储分段标记;
在所述分段式运算模式下,所述多个运算单元根据所述分段指示将所述输入向量元素进行分段,分别对各所述分段内的所述输入向量元素进行运算,分别输出各分段所对应的运算结果。
6.根据权利要求5所述的处理装置,其特征在于:
所述分段寄存器包括分别与各所述输入向量元素对应的标记位,每个所述标记位用于存储第一分段标记或第二分段标记,其中所述第一分段标记用于指示对应的输入向量元素与后续的输入向量元素属于同一分段,所述第二分段标记用于指示对应的输入向量元素与后续的输入向量元素分属不同的分段。
7.根据权利要求6所述的处理装置,其特征在于:
在所述分段式运算模式下,所述运算单元用于判断其自身的最后一个分段内的所述输入向量元素与下一级的所述运算单元的第一个分段内的所述输入向量元素是否属于同一分段,若属于同一分段,则将所述自身的最后一个分段对应的运算结果发送至下一级的所述运算单元。
8.根据权利要求7所述的处理装置,其特征在于:
所述运算功能至少包括求和运算功能和比较运算功能;
在所述整段式运算模式下,所述运算单元在执行所述求和运算功能或者所述比较运算功能时,求和结果或者比较结果作为所述相应的结果进行输出;和/或,
在所述分段式运算模式下,所述运算单元判断其自身的最后一个分段内的所述输入向量元素与下一级的所述运算单元的第一个分段内的所述输入向量元素不属于同一分段,在执行所述求和运算功能时,则将零值输出至下一级的所述运算单元;在执行所述比较运算功能时,则对应将预设最大值或者预设最小值输出至下一级的所述运算单元,所述预设最大值为所述运算单元所能够支持的最大值,所述预设最小值为所述运算单元所能够支持的最小值。
9.根据权利要求7所述的处理装置,其特征在于:
所述处理装置包括运算结果筛选单元,用于对所述运算单元的运算结果进行筛选处理;
在整段式运算模式下,所述运算结果筛选单元将最后一级的所述运算单元的运算结果设置到所述输出向量中的第一预设输出向量元素中,并将其余所述输出向量元素置零;
在所述分段运算模式下,所述运算结果筛选单元用于将各所述分段的运算结果设置到所述输出向量中的第二预设输出向量元素,并将其余所述输出向量元素置零。
10.根据权利要求4所述的处理装置,其特征在于:
各所述运算单元包括分级设置的多组子运算单元,每组子运算单元中包括至少一子运算单元,其中第一组所述子运算单元中的子运算单元分别对所述运算单元所获取的所述输入向量元素中的部分输入向量元素进行运算,并输出运算结果;其余组所述子运算单元中的子运算单元对前一组所述子运算单元中的运算结果进行运算,并输出相应的运算结果。
11.根据权利要求10所述的处理装置,其特征在于:
每一子运算单元包括运算选择器、结果选择器以及并联设置于所述运算选择器和结果选择器之间的至少两个运算器,其中所述运算选择器用于根据模式选择指令切换所述整段式运算模式或者所述分段式运算模式,和根据运算选择指令所指定的运算功能将所述输入向量元素发送至对应的所述运算器,所述结果选择器用于将所述对应的运算器的运算结果输出。
12.根据权利要求11所述的处理装置,其特征在于:
所述运算功能至少包括求和运算功能和比较运算功能;所述至少两个运算器包括用于执行所述求和运算功能的加法器和用于执行所述比较运算功能的比较器,其中所述加法器包括整型加法器、浮点加法器,所述整形加法器用于将每个所述输入向量元素划分为同位宽的高位整形数和低位整形数,并将其获取的所有所述输入向量元素的所述高位整形数和所述低位整形数分别进行求和运算;所述浮点加法器用于将其获取的所述输入向量元素作为浮点数进行求和运算;所述比较器用于将其获取的所述输入向量元素进行大小比较运算;和/或,
在所述分段式运算模式下,所述运算选择器用于根据所述分段寄存器的分段标记,将所获取到的所述输入向量元素或上一组所述子运算单元的运算结果进行选择性屏蔽,并将屏蔽掉的所述输入向量元素和所述运算结果发送至对应的后续组的所述子运算单元。
13.一种神经网络芯片,其特征在于,包括如权利要求1-11任一项所述的处理装置。
14.一种电子设备,包括如权利要求13所述的神经网络芯片。
15.一种支持向量运算的处理方法,应用于如权利要求1所述的处理装置,其特征在于:
每级所述运算单元能够按照同一组输入向量中的输入向量元素的排列顺序分别获取对应的至少两个输入向量元素;
第一级的所述运算单元对其自身所获取的输入向量元素进行运算,并输出相应的结果发送给下一级的所述运算单元;
后续级的所述运算单元获取来自于上一级的所述运算单元的结果,并对上一级的所述运算单元所输出的结果及其自身所获取的输入向量元素进行运算,并得出相应的结果。
CN201911040131.1A 2019-10-29 2019-10-29 支持向量运算的处理装置、芯片、电子设备和方法 Active CN110807521B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911040131.1A CN110807521B (zh) 2019-10-29 2019-10-29 支持向量运算的处理装置、芯片、电子设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911040131.1A CN110807521B (zh) 2019-10-29 2019-10-29 支持向量运算的处理装置、芯片、电子设备和方法

Publications (2)

Publication Number Publication Date
CN110807521A true CN110807521A (zh) 2020-02-18
CN110807521B CN110807521B (zh) 2022-06-24

Family

ID=69489542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911040131.1A Active CN110807521B (zh) 2019-10-29 2019-10-29 支持向量运算的处理装置、芯片、电子设备和方法

Country Status (1)

Country Link
CN (1) CN110807521B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945479A (en) * 1985-07-31 1990-07-31 Unisys Corporation Tightly coupled scientific processing system
CN104899180A (zh) * 2014-03-06 2015-09-09 Arm有限公司 用于执行向量扫描运算的数据处理设备和方法
CN105453028A (zh) * 2013-08-14 2016-03-30 高通股份有限公司 向量积累方法及设备
CN107957975A (zh) * 2017-12-15 2018-04-24 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN109815438A (zh) * 2019-01-21 2019-05-28 清华大学 基于混合基运算的高效能浮点fft硬件加速器设计方法
CN110188869A (zh) * 2019-05-05 2019-08-30 北京中科汇成科技有限公司 一种基于卷积神经网络算法的集成电路加速计算的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945479A (en) * 1985-07-31 1990-07-31 Unisys Corporation Tightly coupled scientific processing system
CN105453028A (zh) * 2013-08-14 2016-03-30 高通股份有限公司 向量积累方法及设备
CN104899180A (zh) * 2014-03-06 2015-09-09 Arm有限公司 用于执行向量扫描运算的数据处理设备和方法
CN107957975A (zh) * 2017-12-15 2018-04-24 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN109815438A (zh) * 2019-01-21 2019-05-28 清华大学 基于混合基运算的高效能浮点fft硬件加速器设计方法
CN110188869A (zh) * 2019-05-05 2019-08-30 北京中科汇成科技有限公司 一种基于卷积神经网络算法的集成电路加速计算的方法及系统

Also Published As

Publication number Publication date
CN110807521B (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
US20210349692A1 (en) Multiplier and multiplication method
CN109543140B (zh) 一种卷积神经网络加速器
CN105051679B (zh) 用于支持矢量排序算法和其他算法的具有树状结构的功能单元
US20150227367A1 (en) Data processing apparatus and method for performing segmented operations
CN109753268B (zh) 多粒度并行运算乘法器
CN105373517A (zh) 基于Spark的分布式稠密矩阵求逆并行化运算方法
CN112204517A (zh) 多输入浮点加法器
EP3283945B1 (en) Mixed-radix carry-lookahead adder architecture
CN110807521B (zh) 支持向量运算的处理装置、芯片、电子设备和方法
CN113496762B (zh) 一种生物基因序列的概要数据生成方法及系统
CN106778812A (zh) 聚类实现方法和装置
CN116661734B (zh) 支持多输入多格式的低精度乘加运算器
CN112988229B (zh) 基于异构计算的卷积神经网络资源优化配置方法
CN113407351A (zh) 执行运算的方法、装置、芯片、设备、介质和程序产品
Padmanabhan et al. Optimal design-space exploration of streaming applications
CN112241252A (zh) 用于处理浮点数的设备和方法
CN112241251A (zh) 用于处理浮点数的设备和方法
CN116974512A (zh) 浮点运算装置、矢量处理装置、处理器及电子设备
CN117407640A (zh) 一种矩阵计算方法及装置
CN110147289A (zh) 异常消息筛选方法和装置以及计算机可读存储介质
CN115222014A (zh) 用于神经网络模型执行的加速单元及服务器
Datta et al. Fast parallel algorithm for prefix computation in multi-mesh architecture
Dulac et al. Implementation and evaluation of a parallel architecture using asynchronous communications
CN116894209B (zh) 采样点的分类方法、装置、电子设备及可读存储介质
CN114996915B (zh) 基于归一化算子库的专用处理器指令系统设计方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20210208

Address after: 311201 No. 602-11, complex building, 1099 Qingxi 2nd Road, Hezhuang street, Qiantang New District, Hangzhou City, Zhejiang Province

Applicant after: Zhonghao Xinying (Hangzhou) Technology Co.,Ltd.

Address before: 518 000 514, building 10, Shenzhen Bay science and technology ecological park, No.10, Gaoxin South 9th Road, high tech Zone community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: Shenzhen Xinying Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant