余弦距离计算单元、方法、加速单元和电子设备技术

技术编号:32335661 阅读:9 留言:0更新日期:2022-02-16 18:43
本申请实施例提供了一种余弦距离计算单元、方法、加速单元和电子设备,该余弦距离计算单元用于计算第一归一化向量和第二归一化向量的余弦距离,包括2

【技术实现步骤摘要】
余弦距离计算单元、方法、加速单元和电子设备


[0001]本申请实施例涉及芯片
,尤其涉及一种余弦距离计算单元、方法、加速单元和电子设备。

技术介绍

[0002]在人脸匹配、指纹匹配等应用场景,需要计算目标向量与多个样本向量之间的余弦距离(余弦相似度),进而根据计算出的余弦距离确定与目标向量相匹配的一个或多个样本向量。比如,在人脸匹配场景,获取到目标用户的目标人脸向量后,算目标人脸向量与特征库中每个样本人脸向量之间的余弦距离,进而根据计算出的余弦距离,获取与目标人脸向量之间余弦距离较大的若干样本人脸向量对应的人脸作为候选人脸,完成一次完整的人脸检测。
[0003]目前,在计算向量之间的余弦距离时,通过离线软件计算两个向量之间的余弦距离。
[0004]然而,通过离线软件计算余弦距离的方法存在较大的延迟,导致余弦距离计算的实时性较差。

技术实现思路

[0005]有鉴于此,本申请实施例提供一种余弦距离计算方案,以至少部分解决上述问题。
[0006]根本本申请实施例的第一方面,提供了一种余弦距离计算单元,用于计算第一归一化向量和第二归一化向量的余弦距离,包括2
L
个乘法器、L个加法器层,其中第i加法器层包括2
L

i
个第i加法器,其中1≤i≤L,L为正整数,每个乘法器接收所述第一归一化向量的一个向量元素和所述第二归一化向量中的相应向量元素作为输入;所述2
L
个乘法器中每两个乘法器分为一组,对应于一个第一加法器,该组中的两个乘法器的输出作为该第一加法器的输入;对于第1至第L

1加法器层中的第i加法器层,每两个第i加法器分为一组,对应于第i+1加法器层中的一个第i+1加法器,该组中的两个第i加法器的输出作为该第i+1加法器的输入;所述余弦距离根据所述第L加法器层的输出确定。
[0007]根据本申请实施例的第二方面,提供了一种加速单元,包括:
[0008]根据上述第一方面中任一个所述的余弦距离计算单元;
[0009]控制器,用于控制所述余弦距离计算单元工作。
[0010]根据本申请实施例的第三方面,提供了一种电子设备,包括:
[0011]根据上述第二方面中任一个所述的加速单元;
[0012]处理单元,用于将第一向量归一化成所述第一归一化向量,将第二向量归一化成所述第二归一化向量,并调度所述加速单元执行所述第一归一化向量和第二归一化向量的余弦距离的计算。
[0013]根据本申请实施例的第四方面,提供了一种余弦距离计算方法,用于计算第一归一化向量和第二归一化向量的余弦距离的余弦距离计算单元,所述余弦距离计算单元包括
2
L
个乘法器、L个加法器层,其中第i加法器层包括2
L

i
个第i加法器,其中1≤i≤L,L为正整数,所述方法包括:
[0014]通过每个乘法器接收所述第一归一化向量的一个向量元素和所述第二归一化向量中的相应向量元素作为输入;
[0015]将所述2
L
个乘法器中每两个乘法器分为一组,对应于一个第一加法器,该组中的两个乘法器的输出作为该第一加法器的输入;
[0016]对于第1至第L

1加法器层中的第i加法器层,将每两个第i加法器分为一组,对应于第i+1加法器层中的一个第i+1加法器,该组中的两个第i加法器的输出作为该第i+1加法器的输入;
[0017]根据所述第L加法器层的输出确定所述余弦距离。
[0018]根据本申请实施例的第五方面,提供了一种匹配方法,包括:
[0019]获取待匹配的第一数据和第二数据,其中,所述第一数据和所述第二数据为以下之一:图像数据、文本数据和语音数据;
[0020]获取对所述第一数据进行特征提取后生成的第一向量,并获取对所述第二数据进行特征提取后生成的第二向量;
[0021]将所述第一向量归一化成第一归一化向量,将所述第二向量归一化成第二归一化向量;
[0022]通过余弦距离计算单元包括的每个乘法器接收所述第一归一化向量的一个向量元素和所述第二归一化向量中相应向量元素作为输入,其中,所述余弦距离计算单元包括2
L
个乘法器、L个加法器层,其中第i加法器层包括2
L

i
个第i加法器,其中1≤i≤L,L为正整数;
[0023]将所述2
L
个乘法器中每两个乘法器分为一组,对应于一个第一加法器,该组中的两个乘法器的输出作为该第一加法器的输入;
[0024]对于第1至第L

1加法器层中的第i加法器层,将每两个第i加法器分为一组,对应于第i+1加法器层中的一个第i+1加法器,该组中的两个第i加法器的输出作为该第i+1加法器的输入;
[0025]根据所述第L加法器层的输出确定所述第一归一化向量和所述第二归一化向量的余弦距离;
[0026]在所述余弦距离小于预设的第一距离阈值时,确定所述第一数据与所述第二数据相匹配。
[0027]根据本申请实施例的第六方面,提供了一种聚类方法,包括:
[0028]获取多个待聚类数据和聚类中心;
[0029]确定聚类中心对应的第一向量,及每个所述待聚类数据对应的第二向量;
[0030]针对每个所述待聚类数据,均执行:
[0031]将所述第一向量归一化成第一归一化向量,将该待聚类数据对应的所述第二向量归一化成第二归一化向量;
[0032]通过余弦距离计算单元包括的每个乘法器接收所述第一归一化向量的一个向量元素和所述第二归一化向量中相应向量元素作为输入,其中,所述余弦距离计算单元包括2
L
个乘法器、L个加法器层,其中第i加法器层包括2
L

i
个第i加法器,其中1≤i≤L,L为正整
数;
[0033]将所述2
L
个乘法器中每两个乘法器分为一组,对应于一个第一加法器,该组中的两个乘法器的输出作为该第一加法器的输入;
[0034]对于第1至第L

1加法器层中的第i加法器层,将每两个第i加法器分为一组,对应于第i+1加法器层中的一个第i+1加法器,该组中的两个第i加法器的输出作为该第i+1加法器的输入;
[0035]根据所述第L加法器层的输出确定所述第一归一化向量和所述第二归一化向量的余弦距离;
[0036]若所述余弦距离小于预设的第二距离阈值,则确定该待聚类数据属于所述聚类中心对应的聚类组。
[0037]根据本申请实施例提供的余弦距离计算方案,由于第一归一化向量和第二归一化向量的模均为1,根据余弦距离计算公式,仅需要计算第一归一化向量和第二归一化向量中相应向量元素的乘积,然后对各相应向量元素的乘积进行求和,便能够获得第一归一化向量和第二归一化向量的余弦距本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种余弦距离计算单元,用于计算第一归一化向量和第二归一化向量的余弦距离,包括2
L
个乘法器、L个加法器层,其中第i加法器层包括2
L

i
个第i加法器,其中1≤i≤L,L为正整数,每个乘法器接收所述第一归一化向量的一个向量元素和所述第二归一化向量中的相应向量元素作为输入;所述2
L
个乘法器中每两个乘法器分为一组,对应于一个第一加法器,该组中的两个乘法器的输出作为该第一加法器的输入;对于第1至第L

1加法器层中的第i加法器层,每两个第i加法器分为一组,对应于第i+1加法器层中的一个第i+1加法器,该组中的两个第i加法器的输出作为该第i+1加法器的输入;所述余弦距离根据第L加法器层的输出确定。2.根据权利要求1所述的余弦距离计算单元,还包括第一归一化向量缓存单元、第二归一化向量缓存单元和累加器,其中,所述第一归一化向量缓存单元用于缓存所述第一归一化向量,所述第二归一化向量缓存单元用于缓存所述第二归一化向量;所述第一归一化向量和所述第二归一化向量各自具有M个向量元素,每个向量元素为2
N
位,所述第一归一化向量缓存单元和所述第二归一化向量缓存单元各自的数据通道位宽为2
P
;第L加法器的输出作为所述累加器的输入,所述累加器将连续K个时钟周期接收到的输入累加,作为所述第一归一化向量和第二归一化向量的余弦距离的计算结果,其中,K=roundup(M/min(2
P

N
,2
L
)),roundup()是向上取整函数。3.根据权利要求2所述的余弦距离计算单元,其中,N从包括k个递增的正整数N1~N
k
的集合中选择;所述2
L
个乘法器中包括至少个具有位输入端的乘法器;所述2
L
个乘法器中包括至少个具有位输入端的乘法器,其中,1≤i≤k

1。4.根据权利要求3所述的余弦距离计算单元,其中,在N=N
i
时,输入端位数大于或等于位的乘法器的位被用于输入向量元素,其中,输入端的位数大于位的乘法器的后位被用于输入向量元素,前面的位为符号位。5.根据权利要求4所述的余弦距离计算单元,其中,如果输入的向量元素为正数,所述符号位为全0;如果输入的向量元素为负数,所述符号位为全1。6.一种加速单元,包括:根据权利要求1

5中任一个所述的余弦距离计算单元;控制器,用于控制所述余弦距离计算单元工作。7.根据权利要求6所述的加速单元,还包括:标准化接口,接受所述控制器的控制,能够获取不同存储格式的所述第二归一化向量。8.根据权利要求6所述的加速单元,还包括:余弦距离排序单元,用于对所述余弦距离计算单元分别针对第一归一化向量和多个第二归一化向量确定的余弦距离进行排序。9.根据权利要求8所述的加速单元,其中,所述余弦距离排序单元包括至少两个串联的缓存单元,每个缓存单元包括缓存空间和比较器,所述缓存空间至少用于缓存一个余弦距离和对应的第二归一化向量的标识,所述比较器用于按照预定规则,比较所述缓存单元接收到的余弦距离与所述缓存空间缓存的余弦距离的大小关系,将符合预定规则的余弦距离
及对应的第二归一化向量的标识保留在所述缓存空间,将不符合预定规则的余弦距离及对应的第二归一化向量的标识挤出所述缓存单元并传输给串联的下一个缓存单元。10.根据权利要求9所述的加速单元,其中,所述预定规则包括:所述缓存单元接收到的余弦距离与所述缓存空间缓存的余弦距离中较大的一个余弦距离。11.一种电子设备,包括:根据权利要求6
...

【专利技术属性】
技术研发人员:李玉涛
申请(专利权)人:平头哥上海半导体技术有限公司
类型:发明
国别省市:

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

1