分布式前K个计算的制作方法

文档序号:38038436发布日期:2024-05-17 13:26阅读:31来源:国知局
分布式前K个计算的制作方法

本说明书大体上涉及通过跨多个硬件计算图块(tile)分布计算来执行前k(topk)个计算。


背景技术:

1、前k个计算是接收查询向量和候选向量的集合并根据某个距离度量来标识最接近查询向量的k个候选向量的计算。


技术实现思路

1、本说明书大体上描述了用于跨集成电路内的多个硬件计算图块(即,硬件计算单元)分布前k个计算的技术。前k个计算的输出根据指定的距离度量从最接近查询向量的候选向量的集合返回k个候选向量。k的值在计算之前指定,并且通常相对于候选向量的总数较小。例如,如果存在一百万个候选向量,则k的值可以小于两千。因此,前k个计算的目标是根据距离度量来确定最接近查询向量的候选向量的大集合的小子集。

2、具体地,每个计算图块例如使用计算图块的专用硬件来计算查询向量与候选向量的集合的相应子集中的每个候选向量之间的相应距离。然后,集成电路使用相应距离来迭代地更新截止距离值,并且在迭代更新之后,选择具有比最终截止距离值更近的距离的候选向量作为用于前k个计算的k个候选向量。

3、本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。

4、一些专用集成电路(asic)包括可以在硬件中非常快速地计算向量之间的距离的多个计算图块。也就是说,每个计算图块是专用硬件加速器,其包括可以用于计算距离的硬件。例如,一些神经网络加速器包括多个计算图块,每个计算图块包括乘法累加单元(mac)集合,该乘法累加单元集合可以用于并行地或更一般地以最小延迟执行多个距离计算。然而,这些计算图块具有有限的专用存储器,并且由于它们的特殊性,无法执行许多其他类型的计算。

5、另外,大规模前k个计算,即,需要从候选向量的大集合中标识相对少量k个候选向量的计算,是许多工业应用——例如,机器学习、信息检索、文档排名、互联网搜索服务等——的重要组成部分。

6、然而,这些计算图块不能有效地执行大规模前k个计算。具体地,任何单个给定计算图块的有限专用存储器不足以存储必须从中找到k个最接近向量的候选向量的大集合。此外,虽然计算图块可以在硬件中执行距离计算,但是计算图块不能执行在硬件中执行前k个计算所需的其他操作,例如,将大量距离彼此进行比较。更具体地,因为所有候选向量不能适配(fit in)任何单个计算图块的存储器,所以为了执行前k个计算,给定的计算图块将需要能够将存储在存储器中的当前子集中的候选向量的距离与先前为先前存储在存储器中的候选向量计算的距离进行比较。然而,这些计算图块的硬件不能执行这些比较,例如,因为它们不能被表示为可以由计算图块的mac执行的操作。

7、本说明书中描述的技术利用计算图块在硬件中计算距离的能力,并且划分计算图块与集成电路的处理核心(processing core)之间的工作,以便允许高效地执行前k个计算。具体地,通过仅要求计算图块计算距离并将所计算的距离与阈值进行比较,所描述的技术利用硬件图块用于高效距离计算的能力,而不要求任何单个图块存储多于将适配图块的指定存储器的候选向量的大集合的小子集。此外,通过执行所描述的技术,处理核心仅要求使用在计算图块中的每个上并行计算的计数来更新“截止值”,从而导致利用集成电路的分布式性质并且由集成电路的硬件配置激励的低延迟计算。

8、在附图和下面的描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,主题的其他特征、方面和优点将变得显而易见。



技术特征:

1.一种由包括多个计算单元的集成电路执行的方法,所述方法包括:

2.根据权利要求1所述的方法,其中,初始化所述截止距离值、生成所述一个或多个测试截止距离值以及更新所述截止距离值由与所述计算单元分离的所述集成电路的处理核心执行。

3.根据权利要求2所述的方法,其中,确定所述最终截止距离值还包括,在每次迭代时:

4.根据任一前述权利要求所述的方法,其中,由所述集成电路提供具有满足所述最终截止距离值的相应距离的所述候选向量作为针对所述查询向量和所述候选向量的集合的前k个计算的输出包括:

5.根据任一前述权利要求所述的方法,其中,

6.根据权利要求5所述的方法,其中,存在单个测试截止距离值,并且其中所述更新还包括:

7.根据权利要求5所述的方法,其中,存在多个测试截止距离值,并且其中,所述更新还包括:

8.根据任一前述权利要求所述的方法,其中,所述截止距离值由比特序列表示,其中,所述多次迭代中的每次迭代对应于所述序列中的不同比特,并且其中,从截至所述迭代的所述截止距离值生成所述迭代的一个或多个测试截止距离值包括:生成测试截止距离值,所述测试截止距离值具有(i)与所述迭代对应的比特的值1;和(ii)与截至所述迭代的所述截止距离值相同的与任何先前迭代对应的比特的值。

9.根据权利要求1至7中的任一项所述的方法,其中,所述截止距离值由比特序列表示,其中,所述多次迭代中的每次迭代对应于所述序列中的不同的多个比特,并且其中,从截至所述迭代的所述截止距离值生成所述迭代的一个或多个测试截止距离值包括生成多个测试截止距离值,其中,所述多个测试截止距离值中的每个测试截止距离值具有(i)来自与所述迭代对应的所述多个比特的值的不同组合;以及(ii)与截至所述迭代的所述截止距离值相同的与任何先前迭代对应的比特的值。

10.根据任一前述权利要求所述的方法,其中,由所述集成电路从所述截止距离值确定最终截止距离值包括在所述多次迭代中的最后一次迭代处:

11.一个或多个存储指令的计算机可读存储介质,所述指令在由集成电路执行时使所述集成电路执行任一前述权利要求的相应方法的相应操作。

12.一种集成电路,包括多个计算单元并且被配置为执行根据权利要求1至10中的任一项所述的相应方法的相应操作。

13.一种用于执行前k个计算的集成电路,所述集成电路包括多个计算单元,并且还包括:

14.根据权利要求13所述的集成电路,其中,所述多个计算单元中的每个计算单元被配置为针对分配给所述计算单元的所述候选向量的所述相应子集中的每个候选向量计算所述查询向量与所述候选向量之间的所述相应距离。


技术总结
用于跨集成电路的多个计算单元分布前k个计算的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。方法之一包括:由多个计算单元中的每个计算单元并且针对分配给计算单元的候选向量的相应子集中的每个候选向量,计算查询向量和候选向量之间的相应距离;由集成电路初始化截止距离值;由集成电路确定最终截止距离值;以及由集成电路提供具有满足最终截止距离值的相应距离的候选向量作为查询向量和候选向量的集合的前k个计算的输出。

技术研发人员:埃里克·康拉德·埃尔森,斯图尔特·克里斯托弗·贝内迪克特·阿贝尔克龙比
受保护的技术使用者:渊慧科技有限公司
技术研发日:
技术公布日:2024/5/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1