CN110796193A - 一种基于可重构方式的knn算法的硬件实现系统和方法 - Google Patents
一种基于可重构方式的knn算法的硬件实现系统和方法 Download PDFInfo
- Publication number
- CN110796193A CN110796193A CN201911037856.5A CN201911037856A CN110796193A CN 110796193 A CN110796193 A CN 110796193A CN 201911037856 A CN201911037856 A CN 201911037856A CN 110796193 A CN110796193 A CN 110796193A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- distance
- calculation
- sorting
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24147—Distances to closest patterns, e.g. nearest neighbour classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于可重构方式的KNN算法的硬件实现系统,包括控制器模块、距离计算模块、排序模块、决策模块、地址产生模块和数据分发模块,其中,控制器模块用于配置运算所需要的参数并将参数送入到地址产生模块和数据分发模块,地址产生模块生成地址数据然后通过数据分发模块送入距离计算模块,然后将得到计算的距离后送入排序模块然后得到最小的K个值,通过决策模块得到最终标签,然后通过结果分发模块和写结果地址产生模块写入到SRAM相应位置;所述距离计算模块为一个实数乘法器和三个实数加法器组成的乘累加单元。本发明同时提供一种方法,使用乘法器和加法器搭建一个全流水的乘累加模块减少了距离计算所需的时间。
Description
技术领域
本发明属于机器学习分类算法的硬件实现领域,更具体地说,涉及一种基于可重构方式的KNN算法的硬件实现系统和方法。
背景技术
KNN算法(K-NearestNeighbor,K最近分类邻算法)是一种非参数分类算法,在未知分布的分类上具有高分类精度,在非正态分布分类上具有低错误率,因此被广泛应用于机器学习、随机规划、模式识别等领域。所谓K最近邻分类算法就是寻找距离待分类样本距离最近的K个类别已知的样本,待分类样本的类别由这K个样本决定。如图1所示。如果我们需要确定圆圈属于哪种分类,要做的就是选出距离目标点距离最近的K个点,看这K个点的大多数是什么形状。当K取3的时候,我们可以看出距离最近的三个分别是三角形、三角形、正方形,因此得到的目标点也为三角形。
K最近邻分类算法核心是最后的决策环节,如果待分类样本最近的K个类别已知的样本大多数属于一种分类,则该样本也属于这种分类。由于K最近邻分类算法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来判别最终的类别,因此对于交叉和重叠样本集来说,K最近邻分类算法比其他分类方法更加合适。
K最近邻分类算法硬件实现主要有以下几个要素:训练集、测试集、样本间距离的计算方法和K值的选取,训练集中每个样本是有标签的,测试集是没有标签的,但是训练集和测试集的维度是相同的,将测试集中样本与训练集中的每一个样本进行比较,找到与当前样本最为相近的K个样本,并获取这K个样本的标签,最后选择这K个样本中出现次数最多分类,作为测试集样本分类。
K最近邻分类算法的步骤如下:
1、计算训练集数据和测试集数据的欧式距离;
2、计算距离同时进行排序得到距离最小的K个值;
3、每个测试集样本遍历训练集样本,并得到最终的K个训练集样本;
4、最后选择这K个样本中出现次数最多分类,作为测试集样本分类。
从以上步骤可以发现K最近邻分类算法实现过程中需要大量距离计算和排序运算,其执行过程属于串行流水操作。样本间距离的选择是指测试集与训练集之间距离计算方法,常用的距离计算方法有:欧氏距离、余弦距离、汉明距离、曼哈顿距离等等。最后是最近邻的K值的选取,K值的选取会影响待分类样本的分类结果,会影响算法的偏差和方差。其中K值较小相当于用较小领域的训练样本进行预测,虽然误差会减少,K值的减少就意味着整体模型变得更加复杂,容易发生过拟合即增大了方差;K值较大相当于用较大领域的样本进行预测,其优势是可以减小学习的估计误差,但是学习的近似误差会增大。这种情况下,与输入样本距离较大的训练集样本也能够对预测产生影响,且K值增大意味着整体的模型变得简单。K很大,那么可以减少干扰数据的影响,但是此时就导致了系统性误差,比如如果取K为总的训练集数据,那么每次投票肯定是训练数据中多的类别胜利。显然训练数据的系统性偏差会影响结果。
K值大小通常会在3~20直接选取,并且K值一般为奇数,在实际应用中,一般采用交叉验证法(简单来说,就是一部分样本做训练集,一部分做测试集)来选择最优的K值。传统排序方式对于选择最小的k个值所需时间大多大于K并且无法使用一个比较器来实现。
K最近邻分类算法是机器学习领域的主流算法,广泛用于样本分类领域,传统的硬件实现在进行距离计算模块的计算时,各算法模块之间一般采用串行的计算方法,由于K最近邻分类算法分类时需要计算待分类的特征向量与已训练的具有类别标签的样本集中的每个样本的距离,导致当样本维度和样本数量较大时计算复杂度高,采用软件方式计算时速度慢、实时性差,影响了其在实际系统中的应用。对此,有必要提出一种有效的解决办法。
发明内容
1.要解决的问题
针对现有技术中存在的K最近邻分类算法中存在的实现起来较复杂且实时性差、采用软件计算时速度慢的问题,本发明提供一种基于可重构方式的KNN的硬件实现系统和方法。
2.技术方案
为了解决上述问题,本发明所采用的技术方案如下:一种基于可重构方式的KNN算法的硬件实现系统,包括控制器模块、距离计算模块、排序模块、决策模块、地址产生模块和数据分发模块;地址产生模块包括写结果地址产生模块;数据分发模块包括结果分发模块;其中,控制器模块用于配置运算所需要的参数并将参数送入到地址产生模块和数据分发模块;地址产生模块生成地址数据然后通过数据分发模块送入距离计算模块;距离计算模块接收数据分发模块发送的数据并将计算后的距离数据送入排序模块,所述距离计算模块计算每个测试集样本与所有训练集样本的对应欧式距离,距离计算模块为一个实数乘法器和三个实数加法器组成的乘累加单元;排序模块对距离计算模块发送的数据进行排序后得到最小的K个值然后发送给决策模块,决策模块寻找标签地址以得到最终标签;结果地址产生模块产生对应地址同时将数据通过结果分发模块写入到SRAM相应位置。本发明使用一个乘法和三个加法器搭建一个全流水的乘累加模块大大减少了距离计算所需的时间,有效解决现有技术中存在的K最近邻分类算法中存在的实现起来较复杂且实时性差的问题。
进一步地,若M>[logK]+1,则距离计算模块的计算时间覆盖排序模块和决策模块的计算时间;若M≤[logK]+1,则排序模块的计算时间覆盖距离计算模块和决策模块的计算时间,其中,M为距离计算模块计算一个样本距离的时间,[K]+1为排序模块的计算时间,即对于距离计算结果已经排序的的K个距离,插入一个距离计算结果重新排序所需的时间,其中,3≤K≤20,2≤M≤64。因为决策模块的计算时间太短,一般在计算时,决策模块的计算时间永远可以和排序模块的计算时间或者距离计算模块的计算时间并行,因此只需要比较距离计算模块的计算时间和排序模块的计算时间即可,当M>[logK]+1,则距离计算模块的计算时间大于排序模块的计算时间,因此距离计算模块的计算时间覆盖排序模块和决策模块的计算时间;当M≤[logK]+1,则排序模块的计算时间大于距离计算模块的计算时间,因此排序模块的计算时间覆盖距离计算模块和决策模块的计算时间。这样采用并行的计算方式,可以有效提高提高计算速度,节省运算资源。
进一步地,根据存储资源按照训练集数据、测试集数据、训练集标签和结果数据的比例分配存储资源。根据训练集数据规模A1、测试集数据规模A2、训练集标签规模A3、结果数据A4和存储资源大小大致按照A1:A2:A3:A4的比例给训练集数据、测试集数据、训练集标签和结果数据分配资源。
进一步地,所述排序模块获取每个测试集和所有训练集样本中要选取距离最小的K个样本,每计算得到一个距离数值,若该距离数值小于现有的K个样本中距离最大的值,则将此值与剩下的K-1个值重新排序,排序模块的计算时间为[logK]+1,其中,3≤K≤20。
进一步地,决策模块根据最终得到的最小的K个值通过寻址方式找到训练集样本对应的标签,然后通过计数的方式K个值中数量最多的标签,确定测试集分类结果并将结果存回SRAM。
本发明同时提供一种基于可重构方式的KNN算法的硬件实现方法,包括以下步骤:
S1:通过地址产生模块和数据分发模块从bank中分别取X个测试集样本数据和一个训练集样本数据,送入到距离计算模块进行X路乘累加计算;
S2:距离计算结果进入排序模块进行判断并进行排序,若M>[logK]+1,则距离计算模块的计算时间覆盖排序模块和决策模块的计算时间;若M≤[logK]+1,则排序模块的计算时间覆盖距离计算模块和决策模块的计算时间,其中,M为距离计算模块计算一个样本距离的时间,[K]+1为排序模块的计算时间,其中,3≤K≤20,2≤M≤64;
S3:通过排序模块得到每个测试集和所有训练集样本中要选取距离最小的K个样本,每计算得到一个距离,若该距离小于现有的K个样本中距离最大的值,则将此值与剩下的K-1个值重新排序;
S4:距离计算模块计算完一个测试集样本与所有训练集的距离后发给决策模块,决策模块得到距离最小的K个值;
S5:在决策模块中通过寻址的方式确定K个样本的分类,然后选择K个样本中出现次数最多的分类,作为测试集样本分类;
S6:得到分类类别,通过数据分发模块和地址产生模块将结果存回bank中。
进一步地,步骤S1具体包括以下步骤:
S11:根据计算资源,决定并行计算为X路并行计算,因此从测试集中同时取X个样本,连续不断供数;
S12:从训练集中取出一个样本并连续不断供数,训练集数据和测试集数据通过加法器做减法,得到中间结果数据分两路送入乘法器,乘法器将计算的结果数据送入加法器;
S13:第一个加法器将乘法器输出的结果数据减少为Y个并送入第二个加法器,第二个加法器将接收的数据减少为Y/2个,最后一个加法器将上述两个数据相加,得到结果数据;其中,加法器有Y个延时的周期。一般情况下,1≤Y≤10。
3.有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明的距离计算模块采用乘累加计算单元,能够实现全流水计算,因此能够极大地提高计算速度;
(2)本发明根据样本维度和K值的大小比较,可以实现排序模块计算时间覆盖距离计算模块和决策模块的计算时间或者距离计算模块的计算时间覆盖排序模块和决策模块的计算时间,大大降低了运算时间;
(3)本发明的排序模块采用的是堆排序方式,使用一个比较器的情况下,K个数据进行全排序所需时间为[logK]+1,有效降低运算时间,提高运算效率。
附图说明
图1为现有技术中K最近邻分类算法的原理图;
图2为本发明的架构图;
图3为本发明的存储阵列映射图;
图4为本发明的乘累加结构图;
图5为本发明的排序和测试集标签决策示意图;
图6为本发明的训练集与测试集乒乓示意图;
图7为本发明的流程图。
具体实施方式
下面结合具体实施例对本发明进一步进行描述。
如图2所示,本发明包括控制器模块、距离计算模块、排序模块、决策模块、地址产生模块和数据分发模块,其中,地址产生模块包括读训练集地址产生模块、读测试集地址产生模块、读训练集标签地址产生模块和写结果地址产生模块;数据分发模块包括训练集分发模块、测试集分发模块、寻找标签地址模块和结果分发模块;决策模块包括寻找标签地址模块。控制器模块用于配置运算所需要的各种参数并将参数送入到地址产生模块和数据分发模块,地址产生模块生成对应数据地址通过数据分发模块读取数据送入到距离计算模块,距离计算模块接收数据分发模块发送的数据并将计算后的距离数据送入排序模块,排序模块对距离计算模块发送的数据进行排序后得到最小的K个值然后发送给决策模块,决策模块寻找标签地址以得到最终标签;结果地址产生模块产生对应地址同时将数据通过结果分发模块写入到SRAM相应位置。
其中,数据分发模块和决策模块两个模块均包括寻找地址标签模块,寻找地址标签模块在数据分发模块中具有标签数据分发功能,在决策模块中通过最终测试标签确定在原有训练集中位置的功能。
排序模块获取每个测试集和所有训练集样本中要选取距离最小的K个样本,每计算得到一个距离,若该距离小于现有的K个样本中距离最大的值,则将此距离值与剩下的K-1个值重新排序,排序模块的计算时间为[logK]+1。
距离计算模块用于计算每个测试集样本与所有训练集样本的对应欧式距离,通过设计一个用一个实数乘法器和三个实数加法器组成的乘累加单元来计算距离,可以实现同一个测试集样本与不同训练集样本计算距离时流水操作和不同测试集样本之间的流水计算。
决策模块根据最终得到的最小的K个值通过寻址方式找到训练集样本对应的标签,然后通过计数的方式K个值中数量最多的标签,这个测试集就分类为此标签,将结果存回SRAM。
根据样本维度和K值关系,距离计算模块和排序模块并行计算;若样本的维度为M,则距离计算模块的计算时间为M,排序模块的计算时间为logK+1,因为决策模块的计算时间太短,计算时决策模块的计算时间永远可以和排序模块的计算时间或者距离计算模块的计算时间并行,因此只需要比较距离计算模块的计算时间和排序模块的计算时间即可,当M>ogK+1,即距离计算模块的计算时间大于排序模块的计算时间,因此距离计算模块的计算时间覆盖排序模块和决策模块的计算时间;当M≤logK+1,即排序模块的计算时间大于距离计算模块的计算时间,因此排序模块的计算时间覆盖距离计算模块和决策模块的计算时间。通过距离计算模块和排序模块并行计算,可以有效缩短计算时间,提高效率。
图3是本发明的存储阵列映射图,因为K最近邻分类算法有三种源数据,分别为训练集、测试集和训练集标签,另外还有一种结果数据,根据存储资源和SRAM接口性质,我们可以得到如下分配策略:片上数据存储模块设定存储资源分为32N个bank,每个bank的深度为M,分配8N个bank乒乓存储训练集的数据,8N个bank乒乓存储测试集的数据,8N个bank乒乓存储训练集的标签数据,最后8N个bank存储结果数据,根据计算资源可以采用8路并行,每8个测试集样本就需要遍历整个训练集样本。
在本实施例中,存储资源设定为128个bank,每个bank的深度为4096,分配32个bank乒乓存储训练集数据,32个bank乒乓存储测试集数据,32个bank存储训练集标签数据,32个bank存储结果数据。
如图4所示,为乘累加单元的结构图,其工作流程如下:
(1)、根据计算资源确定样本数量,在本实施例中采用8路并行计算,因此从测试集中同时取8个样本,连续不断供数;具体实施的时候可以根据计算资源具体确定样本数量,并不限于8个。
(2)、从训练集中取出一个样本并连续不断供数,训练集数据和测试集数据通过加法器做减法,得到结果分两路送入乘法器,乘法器将计算结果送入加法器;
(3)、由于本实施例中加法器是4拍延时,因此第一个加法器将接收的数据减少为4个,第二个加法器将第一个加法器送入的数据减少为2个,最后一个加法器将上述两个数据相加,得到结果。
图5是排序和测试集标签决策示意图,乘累加计算之后,选取了距离最小的K个值,采用堆排序的方式,对于已经排序好的K-1个值,插入一个值所需要的时间为[logK]+1,最后判断输入样本种类。对于乘累加得到的结果需要通过排序模块,得到距离最小的K个值,排序之后,当得到最小的K个值,然后再与训练集标签对比,寻找K个值中数量最多的标签,将测试样本标签设置为该标签。
图6是本发明中训练集与测试集乒乓示意图,因为训练集样本和测试集样本多过大,需要进行乒乓存储,计算测试集每个样本都需要遍历训练集,若测试集样本为D,采用8路并行计算,训练集需要遍历D/8次。因为DDR的AXI总线为256bit,每次只能搬运一种类型的源数据,训练集、测试集和结果数据需要错位搬运,最大化搬运效率和计算速度。
图7是本发明的流程图,具体过程如下:
(1)、通过地址产生模块和数据分发模块从bank中分别取X个测试集样本数据和一个训练集样本数据,送入到距离计算模块进行X路乘累加计算;X取什么值取决于用户对计算效率的需要,在本实施例中,X可取值8;
(2)、距离计算结果进入排序模块进行判断并进行排序,若M>[logK]+1,则距离计算模块的计算时间覆盖排序模块和决策模块的计算时间;若M≤[logK]+1,则排序模块的计算时间覆盖距离计算模块和决策模块的计算时间,其中,M为距离计算模块计算一个样本距离的时间,[K]+1为排序模块的计算时间,其中,3≤K≤20,2≤M≤64;
(3)、通过排序模块得到每个测试集和所有训练集样本中要选取距离最小的K个样本,每计算得到一个距离,若该距离小于现有的K个样本中距离最大的值,则将此值与剩下的K-1个值重新排序,其中,3≤K≤20;
(4)、距离计算模块计算完一个测试集样本与所有训练集的距离后发给决策模块,决策模块得到距离最小的K个值;
(5)、在决策模块中通过寻址的方式确定K个样本的分类,然后选择K个样本中出现次数最多的分类,作为测试集样本分类;
(6)、得到分类类别,通过数据分发模块和地址产生模块将结果存回bank中。
需要说明的是,在本发明中,控制器模块配置的参数包括K值大小、维度大小、训练集样本大小、测试集样本大小等参数,对控制器模块参数的配置通过外部设置进行。
本发明基于可重构方式的K最近邻分类算法支持任意样本分类和任意维度大小的运算,降低了传统实现方式的计算量,权衡计算和存储资源实现最大化多路并行,可以有效地节约运算资源和提高计算速度。作为机器学习领域典型的分类算法,有着广泛的应用前景,针对不同的场合有良好的应用价值。
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (7)
1.一种基于可重构方式的KNN算法的硬件实现系统,其特征在于:包括控制器模块、距离计算模块、排序模块、决策模块、地址产生模块和数据分发模块;地址产生模块包括写结果地址产生模块;数据分发模块包括结果分发模块;
其中,控制器模块用于配置运算所需要的参数并将参数送入到地址产生模块和数据分发模块;
地址产生模块生成地址数据然后通过数据分发模块送入距离计算模块;
距离计算模块接收数据分发模块发送的数据并将计算后的距离数据送入排序模块,所述距离计算模块计算每个测试集样本与所有训练集样本的对应欧式距离,距离计算模块为一个实数乘法器和三个实数加法器组成的乘累加单元;
排序模块对距离计算模块发送的数据进行排序后得到最小的K个值然后发送给决策模块,决策模块寻找标签地址以得到最终标签;
结果地址产生模块产生对应地址同时将数据通过结果分发模块写入到SRAM相应位置。
2.根据权利要求1所述的基于可重构方式的KNN算法的硬件实现系统,其特征在于:若M>[logK]+1,则距离计算模块的计算时间覆盖排序模块和决策模块的计算时间;若M≤[logK]+1,则排序模块的计算时间覆盖距离计算模块和决策模块的计算时间,其中,M为距离计算模块计算一个样本距离的时间,[K]+1为排序模块的计算时间,即对于距离计算结果已经排序的的K个距离,插入一个距离计算结果重新排序所需的时间,其中,3≤K≤20,2≤M≤64。
3.根据权利要求1所述的基于可重构方式的KNN算法的硬件实现系统,其特征在于:根据存储资源按照训练集数据、测试集数据、训练集标签和结果数据的比例分配存储资源。
4.根据权利要求1所述的基于可重构方式的KNN算法的硬件实现系统,其特征在于:所述排序模块获取每个测试集和所有训练集样本中要选取距离最小的K个样本,每计算得到一个距离数值,若该距离数值小于现有的K个样本中距离最大的值,则将此值与剩下的K-1个值重新排序,排序模块的计算时间为[logK]+1,其中,3≤K≤20。
5.根据权利要求4所述的基于可重构方式的KNN算法的硬件实现系统,其特征在于:决策模块根据最终得到的最小的K个值通过寻址方式找到训练集样本对应的标签,然后通过计数的方式K个值中数量最多的标签,确定测试集分类结果并将结果存回SRAM。
6.一种基于可重构方式的KNN算法的硬件实现方法,其特征在于:包括以下步骤:
S1:通过地址产生模块和数据分发模块从bank中分别取X个测试集样本数据和一个训练集样本数据,送入到距离计算模块进行X路乘累加计算;
S2:距离计算结果进入排序模块进行判断并进行排序,若M>[logK]+1,则距离计算模块的计算时间覆盖排序模块和决策模块的计算时间;若M≤[logK]+1,则排序模块的计算时间覆盖距离计算模块和决策模块的计算时间,其中,M为距离计算模块计算一个样本距离的时间,[K]+1为排序模块的计算时间,其中,3≤K≤20,2≤M≤64;
S3:通过排序模块得到每个测试集和所有训练集样本中要选取距离最小的K个样本,每计算得到一个距离,若该距离小于现有的K个样本中距离最大的值,则将此值与剩下的K-1个值重新排序,其中,3≤K≤20;
S4:距离计算模块计算完一个测试集样本与所有训练集的距离后发给决策模块,决策模块得到距离最小的K个值;
S5:在决策模块中通过寻址的方式确定K个样本的分类,然后选择K个样本中出现次数最多的分类,作为测试集样本分类;
S6:得到分类类别,通过数据分发模块和地址产生模块将结果存回bank中。
7.根据权利要求6所述的基于可重构方式的KNN算法的硬件实现方法,其特征在于:步骤S1具体包括以下步骤:
S11:根据计算资源,决定并行计算为X路并行计算,因此从测试集中同时取X个样本,连续不断供数;
S12:从训练集中取出一个样本并连续不断供数,训练集数据和测试集数据通过加法器做减法,得到中间结果数据分两路送入乘法器,乘法器将计算的结果数据送入加法器;
S13:第一个加法器将乘法器输出的结果数据减少为Y个并送入第二个加法器,第二个加法器将接收的数据减少为Y/2个,最后一个加法器将上述两个数据相加,得到结果数据;其中,加法器有Y个延时的周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037856.5A CN110796193A (zh) | 2019-10-29 | 2019-10-29 | 一种基于可重构方式的knn算法的硬件实现系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037856.5A CN110796193A (zh) | 2019-10-29 | 2019-10-29 | 一种基于可重构方式的knn算法的硬件实现系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110796193A true CN110796193A (zh) | 2020-02-14 |
Family
ID=69441794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911037856.5A Pending CN110796193A (zh) | 2019-10-29 | 2019-10-29 | 一种基于可重构方式的knn算法的硬件实现系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110796193A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106355199A (zh) * | 2016-08-24 | 2017-01-25 | 中国科学院计算技术研究所 | 一种k近邻算法的加速装置及方法 |
CN106778869A (zh) * | 2016-12-16 | 2017-05-31 | 重庆邮电大学 | 一种基于参考点的快速精确近邻分类算法 |
CN108600246A (zh) * | 2018-05-04 | 2018-09-28 | 浙江工业大学 | 一种基于knn算法的网络入侵检测并行化加速方法 |
CN108762719A (zh) * | 2018-05-21 | 2018-11-06 | 南京大学 | 一种并行广义内积重构控制器 |
US20190251480A1 (en) * | 2018-02-09 | 2019-08-15 | NEC Laboratories Europe GmbH | Method and system for learning of classifier-independent node representations which carry class label information |
-
2019
- 2019-10-29 CN CN201911037856.5A patent/CN110796193A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106355199A (zh) * | 2016-08-24 | 2017-01-25 | 中国科学院计算技术研究所 | 一种k近邻算法的加速装置及方法 |
CN106778869A (zh) * | 2016-12-16 | 2017-05-31 | 重庆邮电大学 | 一种基于参考点的快速精确近邻分类算法 |
US20190251480A1 (en) * | 2018-02-09 | 2019-08-15 | NEC Laboratories Europe GmbH | Method and system for learning of classifier-independent node representations which carry class label information |
CN108600246A (zh) * | 2018-05-04 | 2018-09-28 | 浙江工业大学 | 一种基于knn算法的网络入侵检测并行化加速方法 |
CN108762719A (zh) * | 2018-05-21 | 2018-11-06 | 南京大学 | 一种并行广义内积重构控制器 |
Non-Patent Citations (2)
Title |
---|
CD YU ET AL.: "Performance optimization for the k-nearest neighbors kernel on x86 architectures", 《IEEE》 * |
柴志雷,阳文敏: "一种KNN算法的可重构硬件加速器设计", 《计算机应用研究》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ren et al. | Selection-based resampling ensemble algorithm for nonstationary imbalanced stream data learning | |
Halappanavar et al. | Scalable static and dynamic community detection using grappolo | |
JP5425541B2 (ja) | マルチプロセッサ・システム上でデータ・セットを区分化およびソートするための方法および装置 | |
CN107908536B (zh) | Cpu-gpu异构环境中对gpu应用的性能评估方法及系统 | |
Sujatha et al. | New fast k-means clustering algorithm using modified centroid selection method | |
CN112487750A (zh) | 一种基于存内计算的卷积加速计算系统及方法 | |
Imani et al. | Nvalt: Nonvolatile approximate lookup table for GPU acceleration | |
US20240062816A1 (en) | Adaptive memory management and control circuitry | |
US20030235099A1 (en) | Search memory, memory search controller, and memory search method | |
CN110163289A (zh) | 一种基于最大近邻比的任意形状数据的聚类方法及系统 | |
CN110969260A (zh) | 不平衡数据过采样方法、装置及存储介质 | |
CN106886467A (zh) | 基于分组‑综合多目标进化的多任务测试优选方法 | |
US11436025B2 (en) | Smart compute resistive memory | |
Fan et al. | Fast sparse gpu kernels for accelerated training of graph neural networks | |
CN108108251A (zh) | 一种基于MPI并行化的参考点k近邻分类方法 | |
Liu et al. | A weight-incorporated similarity-based clustering ensemble method | |
CN110796193A (zh) | 一种基于可重构方式的knn算法的硬件实现系统和方法 | |
CN102254040A (zh) | 一种基于支撑向量机的Web划分方法 | |
CN105354243B (zh) | 基于归并聚类的并行化频繁概率子图搜索方法 | |
CN111045959B (zh) | 一种基于存储优化的复杂算法变量映射方法 | |
Kargar et al. | E2-NVM: A Memory-Aware Write Scheme to Improve Energy Efficiency and Write Endurance of NVMs using Variational Autoencoders. | |
Tian et al. | Lookup table allocation for approximate computing with memory under quality constraints | |
CN105337759A (zh) | 一种基于社区结构的内外比度量方法及社区发现方法 | |
CN112990274A (zh) | 一种基于大数据的风电场异常数据自动辨识方法 | |
CN112464988A (zh) | 一种针对k-nn算法临近点查找的优化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |