当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于K最近邻搜索的系统、装置和方法制造方法及图纸

技术编号:13290898 阅读:59 留言:0更新日期:2016-07-09 09:23
描述了用于k-最近邻方法(KNN)搜索。具体而言,描述了KNN加速器及其使用的实施例。在一些实施例中,KNN加速器包括:多个矢量部分距离计算电路,其中的每一个用于运算部分和;最小排序网络,其用于对来自所述多个矢量部分距离计算电路的部分和进行排序,以找到k最近邻匹配;以及全局控制电路,其用于控制所述多个矢量部分距离计算电路的操作的方式。

【技术实现步骤摘要】

概括地说,本专利技术的领域涉及计算机处理器架构,并且更具体地说,涉及最近邻搜索。
技术介绍
存在许多以下应用,其中,快速和有效的、针对数据集的多维特征(点)的最近邻搜索是想要的。例如,这种类型的搜索在诸如图像重建和机器学习的领域中是有利的。存在若干种最近邻数据集搜索的方法。在最近邻搜索中,给出空间中的一组点和输入距离(查询点),则进行搜索以寻找集合中的与该输入距离最接近的点。附图说明本专利技术通过举例的方式来示出,并且不受限于所附附图中的图,在附图中,类似的标记指示类似的元件,并且其中:图1根据一个实施例示出了高等级的kNN加速器机构。图2根据一个实施例示出了示例性矢量部分距离计算电路。图3根据一个实施例示出了平方差数据元素计算电路的示例性矢量部分距离和。图4根据一个实施例示出了绝对差数据元素计算电路的示例性矢量部分距离和。图5根据一个实施例示出了示例性局部控制电路。图6根据一个实施例示出了示例性曼哈顿距离排序过程。图7根据一个实施例示出了示例性数据元素欧几里得距离排序过程。图8根据一个实施例示出了使用部分距离的示例性排序操作。图9根据一个实施例示出了示例性全局控制电路。图10根据一个实施例示出了示例性等级0比较节点电路。图11根据一个实施例示出了示例性等级k比较节点电路。图12根据一个实施例示出了示例性8比特/16比特可重新配置计算电路。图13根据一个实施例示出了针对具有16比特元素的平方和的示例性部分距离计算。图14根据一个实施例示出了余弦相似度计算(1d距离)电路,并且根据一个实施例示出了针对点积的示例性部分距离计算。图15根据一个实施例示出了kNN搜索的一种示例性方法。图16A是根据本专利技术的实施例,示出了示例性顺序流水线和示例性寄存器重命名、乱序分发/执行流水线两者的框图。图16B是根据本专利技术的实施例,示出了要包括在处理器中的顺序架构核心和示例性的寄存器重命名、乱序分发/执行架构核心的两种示例性实施例的框图。图17A-B示出了更具体的示例性顺序核心架构的框图,该核心将是芯片中若干个逻辑块(包括相同类型的和/或不同类型的其他核心)中的一个。图18是处理器1800的框图,根据本专利技术的实施例,其可能具有一个以上的核心、可能具有集成存储器控制器,并且可能具有集成图形。图19-22是示例性计算机架构的框图。图23是根据本专利技术的实施例,将软件指令转换器的、将源指令集中的二进制指令转换为目标指令集中的二进制指令的使用进行对比的框图。具体实施方式在下面的描述中,阐述了许多具体细节。然而,可以理解的是,可以在不具有这些具体细节的情况下实践本专利技术的实施例。在其他实例中,公知的电路、结构和技术没有详细示出,以免模糊对该描述的理解。在说明书中对“一个实施例”、“实施例”、“示例性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不必包括该特定特征、结构或特性。此外,这样的短语不必指的是同一实施例。此外,当结合实施例来描述特定的特征、结构或特性时,应当认为将这种特征、结构或特性影响为结合无论是否明确描述了的其他实施例是在本领域技术人员中的知识范围内的。用于最近邻搜索的方法是计算从输入实例到数据集中的每个点的距离,以及跟踪最短距离。然而,这种简单的方法对较大的数据集来说可能并不可行。距离运算可以通过使用k维(k-d)树、每次一个特征地对所有特征执行详尽检查来完成。因此,这种方法是慢的,并且另外,具有高功率消耗。另一种最近邻搜索使用Voronoi图。每个Voronoi图将平面分成相等的近邻区域(被称为小区)。其通过多个小区来示出,每个小区具有一个特征(点)。理论上,通过使用Voronoi图来定位特定小区中的特征,可以找到针对任意输入实例的“最佳匹配”特征。然而,如图所示,Voronoi小区是高度形状不规则的,并且难以计算(它们都是时间和处理器密集型)和使用。换句话说,Voronoi图不适合帮助方便、或高效的近邻特征搜索。本文详细描述了要用于改进的最邻近搜索的系统、装置和方法的实施例,其克服了上述方法的缺点。总之,给出输入(即,观察),则完成对特征空间(即,特征的词典)最佳匹配特征的搜索。这种方法尤其适合于通常稀疏地在高维矢量空间中呈现(注意,本说明书中的特征是矢量,并且因此,特征和特征矢量可互换使用)的矢量。以下详述的是k-最近邻(KNN)加速器的实施例,其调整距离计算的准确度,以最小化查找每个最近邻所需的等级。通过使用仅低准确度计算,将许多候选矢量从搜索空间消除,同时使用更高准确度的之后迭代来将更接近该最近邻的剩余候选消除,以声明优胜方(winner)。由于大多数的计算要求较低的准确度并且消耗较低的能量,因此整体kNN能量效率被显著提高。通常,该kNN加速器是中央处理单元(CPU)、图形处理单元(GPU)等的一部分。但是,kNN加速器可能在CPU、GPU等的外部。图1示出了根据实施例的高等级kNN加速器。在该加速器中,存在几个主要部件,其包括多个矢量部分距离计算电路103_0至103_N、全局控制电路105、以及最小排序网络107。将在下面详细讨论这些部件中的每一个。将查询对象矢量101输入到用于部分距离计算的多个矢量部分距离计算电路103_0到103_N。用于存储该对象矢量的存储器没有示出,但其存在。部分距离计算电路103_0到103_N计算针对每个参考矢量的部分距离和累加距离,并向最小排序网络107提供有效的指示。如本文中所描述的,使用查询(101)和所存储的矢量之间的多迭代部分距离运算,并且提高每次迭代中最低有效位精确度,比过去的方法更节能。部分距离计算包括针对不同的距离度量(例如,欧几里德(平方和)距离和曼哈顿(绝对差和)距离),在每次迭代中计算从MSB开始的完整距离的较少的比特。以合适的有效性(significance)将部分结果相加到所累积的完整距离,从而使得随着计算继续,提高较低有效性位的准确度。图2示出了根据一个实施例的示例性矢量部分距离计算电路203。该矢量由许多维构成,在本例中每个维度由8b表示。在每个维度中的个体距离首先由205计算,并且随后将其相加以在211中寻找总距离。局部控制电路207提供关于不同的数据元素运算器电路205要选择哪些比特的指示。如上所述,可本文档来自技高网...

【技术保护点】
一种装置,包括:至少一个矢量部分距离计算电路,其用于运算针对搜索空间中的一组矢量的部分和以及累加距离;最小排序网络,其用于对来自所述累加距离的所选择的一组比特进行排序,以指示来自所述搜索空间中的所述矢量的所选择的一组比特的最小值以及所述最小值是否是唯一的;以及全局控制电路,其用于接收所述最小排序网络的输出,以及用于控制所述至少一个矢量部分距离计算电路的操作的方式。

【技术特征摘要】
2014.12.24 US 14/582,607;2015.11.18 US 14/944,8281.一种装置,包括:
至少一个矢量部分距离计算电路,其用于运算针对搜索空间中的一组
矢量的部分和以及累加距离;
最小排序网络,其用于对来自所述累加距离的所选择的一组比特进行
排序,以指示来自所述搜索空间中的所述矢量的所选择的一组比特的最小
值以及所述最小值是否是唯一的;以及
全局控制电路,其用于接收所述最小排序网络的输出,以及用于控制
所述至少一个矢量部分距离计算电路的操作的方式。
2.根据权利要求1所述的装置,其中,每个矢量部分计算电路包括:
多个数据元素运算器电路;
压缩器树电路,其用于将所述多个数据元素运算器电路的每个结果相
加;
局部控制电路,其用于输出来自所述累加距离的较小窗口的比特,以
及使用所述最小排序网络的结果来确定何时将针对矢量的计算和排序进行
至下次迭代或者将其从所述搜索空间中移除;以及
累加器,其用于在当前迭代中将所述部分距离的结果相加,其中,正
确的有效性是通过在相加至经由先前迭代累加的距离之前,由移位器来移
位所述部分距离而提供的。
3.根据权利要求1所述的装置,其中,所述最小排序网络包括:
多个第一等级比较节点,其用于从相邻的矢量部分距离计算电路接收
部分和以及有效比特,并且输出有效比特、精确度比特、地址、以及和,
其中,所述第一等级比较节点用于:
对所接收的相邻有效比特进行逻辑或操作,以提供所输出的有效比
特,
对所接收的相邻有效比特进行异或操作,
对所述异或操作的结果与相邻和比较的可能差值的和的输出进行

\t逻辑或操作,以生成所输出的精确度比特,其中,所述精确度比特为1,以
指示所述两个输入之间的差值是大于可编程门限的或者两个输入是无效
的;以及
多个第二等级比较节点,其用于从相邻比较节点接收部分和、有效
比特、地址、以及精确度比特,并且输出有效比特、精确度比特、地址、
以及和,所接收的和的比较的结果用于从传入精确度信号中进行选择,以
及对所选择的精确度与在这个节点处计算的所述精确度信号进行逻辑与,
以产生所输出的精确度信号,所输出的精确度信号用于指示是否所述输出
和是唯一的,其中,所述比较的所述结果用于形成所述地址的最高顺序比
特。
4.根据权利要求3所述的装置,其中,所述全局控制电路包括:
或操作树,其用于从多个局部控制电路接收多个消除比特并且对其进
行或操作;
全局掩码,其用于向所述全局控制逻辑指示针对将包含下一个最近邻
的矢量组,全局指针需要跳回到何处;
选择器,其用于从递增了1的先前全局指针以及来自耦合到所述全局
掩码的优先级编码器的输出中来选择所述全局指针。
5.根据权利要求1所述的装置,其中,每维度比特大小、维数、以及
参考的数量是可重新配置的。
6.根据权利要求2所述的装置,其中,所述多个数据元素运算器电路
中的每一个是部分距离运算绝对差和电路。
7.根据权利要求2所述的装置,其中,所述多个数据元素运算器电路
中的每一个是部分距离运算平方和电路。
8.根据权利要求2所述的装置,其中,所述多个数据元素运算器电路
中的每一个是可重新配置的,以操作作为针对多个数据元素比特宽度的较

\t大数据元素...

【专利技术属性】
技术研发人员:H·考尔M·A·安德斯S·K·马修
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1