CN108600246A - 一种基于knn算法的网络入侵检测并行化加速方法 - Google Patents
一种基于knn算法的网络入侵检测并行化加速方法 Download PDFInfo
- Publication number
- CN108600246A CN108600246A CN201810418164.4A CN201810418164A CN108600246A CN 108600246 A CN108600246 A CN 108600246A CN 201810418164 A CN201810418164 A CN 201810418164A CN 108600246 A CN108600246 A CN 108600246A
- Authority
- CN
- China
- Prior art keywords
- data point
- intrusion detection
- distance
- parallelization
- arest neighbors
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
一种基于KNN算法的网络入侵检测并行化加速方法。方法采用了CUDA并行计算模型,首先针对基于KNN算法的网络入侵检测进行了并行化分析,在计算网络入侵检测数据点到训练数据集的距离时,采用了CUDA提供的通用矩阵乘函数进行加速,提高了运算速度;然后,在距离排序阶段,提供了两种并行化排序策略的选择机制,可以根据少量数据的排序结果,灵活选择排序时间少的排序算法进行距离排序;最后,在入侵检测数据点的分类阶段,采用基于CUDA的原子加法操作进行统计。实验结果表明,本发明提出的加速方法是有效的,在保证检测率的情况下,有效地提高了网络入侵检测的并行化加速性能。
Description
(一)技术领域
本发明涉及信息安全领域的网络入侵检测技术,是一种基于KNN算法的网络入侵检测并行化加速方法。
(二)背景技术
网络入侵检测的目的是分析网络传输的数据流量,从中发现和检测出异常流量。目前有许多分类算法应用于网络入侵检测系统,其中基于KNN(K-Nearest Neighbor:K最近邻)分类算法的网络入侵检测最为常用。KNN算法最为经典的求解方法就是暴力搜索方法,该方法首先依次计算每个网络入侵检测数据点到网络入侵检测训练数据集的距离,然后依次将每个入侵检测数据点的距离进行快速排序,从而得到距离该入侵检测数据点最近的k个训练数据点,最后根据这k个训练数据点的分类来判断入侵检测数据点的所属类别。若需要进行辨别的入侵检测数据点的数量为m,训练数据集中的数据点数量为n,每个入侵检测数据点的维度为d,则在距离计算阶段的时间复杂度为O(mnd),距离排序阶段的时间复杂度为O(mnlogn)。随着入侵检测数据点和网络入侵检测训练数据集规模的不断增加,KNN算法的计算时间和成本开销将会成倍增长,执行效率将大大降低,无法满足大数据时代下的快速计算。为了提高KNN算法在大规模网络入侵检测数据集上的检测速度,一种有效的途径就是将KNN算法移植到多核架构上,例如目前流行的图形处理单元GPU(Graphics ProcessingUnit),然后运用CUDA(Compute Unified Device Architecture)编程模型进行并行化加速,这样可以节省大量运算时间,提高算法的执行效率。
CUDA是由NVIDIA公司推出的编程模型,是一种专注于并行计算的平台。CUDA架构的出现改变了传统的GPU程序编程方式,使用CUDA时不需要将程序任务转换为GPU图形处理任务,也不需要借助图形学API来进行GPU的数据管理。GPU是能够并行执行大量线程的协处理器。一个简单的GPU源程序包括运行在CPU上的主机端代码和运行在GPU上的内核(kernel)代码。它采用普通程序员更容易掌握的类C语言来编程,大大降低了开发难度。
很多研究都采用CUDA模型来并行化加速基于KNN算法的网络入侵检测。常见的方法是将网络入侵检测数据点到网络入侵检测训练数据集的距离计算移植到GPU中执行,而距离排序和判断所属类别则放在CPU中执行,这种方法执行效率高而且应用普遍,但是网络入侵检测数据在GPU和CPU端之间的传输时间也大幅增加。也有一些方法针对算法运行时网络入侵检测数据量的大小进行划分。当数据量较小时,就一次读入设备进行计算,当数据量较大时,就分批次读入设备进行计算,这种流式计算方法在面对大数据量时简单有效,但没有充分利用GPU内部的存储器体系。目前,采用CUDA模型来并行化加速基于KNN分类算法的网络入侵检测方法,存在的主要问题如下:1)距离计算时的并行度不高,每个线程只负责一个网络入侵检测数据点到网络入侵检测训练数据集的距离计算,没有充分利用CUDA的硬件特性;2)距离排序的时间复杂度高,对n个距离进行排序,大多数方法的时间复杂度为O(nlogn)或者O(n2),没有合理利用CUDA存储器体系;3)入侵检测数据点的分类阶段,多数方法将数据重新移植到CPU中执行,没有利用CUDA的原子特性,加大了数据的计算成本和传输开销。
(三)发明内容
本发明要克服现有技术的上述不足之处,提供一种基于KNN算法的网络入侵检测并行化加速方法。
本发明首先针对KNN分类算法中复杂的距离计算问题,将计算的公共部分提取出来,采用CUDA提供的通用矩阵乘函数,实现了网络入侵检测数据点与网络入侵检测训练数据集之间的距离计算,提高了运算速度。然后,在距离排序阶段,先抽取一行距离数据进行排序实验,测试两种排序算法所需时间,根据排序时间大小,选择基于k次最小值查找的最近邻选择算法或者基于双调排序的最近邻选择算法来进行距离排序。最后,把入侵检测数据点的分类阶段也移植到GPU,采用原子加法操作进行并行处理,从而提高整体效率。本发明主要充分利用CUDA架构的特性,对基于KNN算法的网络入侵检测进行并行化加速,同时根据官方提供的高性能函数库对检测算法进行优化,在保证系统检测率的前提下,获得良好的加速比。
本发明是通过以下技术方案达到上述目的:一种基于KNN算法的网络入侵检测并行化加速方法,具体的实施步骤如下:
(1)在CPU端和GPU端进行算法的初始化。在CPU端初始化m个待检测的网络入侵检测数据点,n个带有分类标号的网络入侵检测训练数据点,每个数据点的维度为d,最近邻的个数为k(k≤n)。在GPU端分配待检测的网络入侵检测数据点集和训练数据点集的内存空间,将数据从CPU端拷贝至GPU端。
(2)并行化计算m个入侵检测数据点至n个训练数据点的距离,获得维度为m*n的距离矩阵。在GPU端,开启m个线程计算入侵检测数据点矩阵x的平方x2,每个线程计算一个入侵检测数据点在d个维度上的平方和;接着,开启n个线程计算训练数据点矩阵y的平方y2,每个线程计算一个训练数据点在d个维度上的平方和;然后,计算x2+y2;最后,在GPU端调用CUDA提供的通用矩阵乘函数cublasSgemm()进行距离计算,得到一个维度为m*n的距离矩阵Z,每一行代表一个入侵检测数据点与n个训练数据点的距离。
cublasSgemm()函数属于Cublas库,实现的矩阵运算如下:
Z=alpha*OP(A)*OP(B)+beta*C
上述公式中alpha取值为-2,beta取值为1。调用cublasSgemm()函数时,公式中OP(A)代表入侵检测数据点矩阵x的转置,入侵检测数据点矩阵x的维度为d*m,其转置矩阵的维度为m*d。OP(B)是训练数据点矩阵y,其维度为d*n。这样,OP(A)和OP(B)相乘所得结果矩阵的维度为m*n。C代表入侵检测数据点矩阵x和训练数据点矩阵y的平方和,即x2+y2,其维度为m*n。最后相加得到距离矩阵Z。
(3)采用两种并行化排序算法对距离矩阵的任意一行数据进行排序,选择排序时间较小的算法来进行下一步的计算。在GPU端,从距离矩阵Z中随机抽取一行数据,对这一行的n个距离值进行两次并行化排序来计算k个最近邻,即k个距离最近的训练数据点。第一次排序采用基于k次最小值查找的最近邻选择算法,第二次排序采用基于双调排序的最近邻选择算法,如果第一次排序所需时间小于第二次排序所需时间,则继续下一步;否则,跳转至步骤(5)。
(4)采用基于k次最小值查找的最近邻选择算法,对距离矩阵的每一行数据进行并行化排序,计算每个入侵检测数据点的k个最近邻。在GPU端,首先,将全局存储器中的距离矩阵Z拷贝至共享内存;然后,开启m个线程块,每个线程块负责一行数据(即一个入侵检测数据点的距离数据)的排序,每个线程块内开启(说明:此处为向上取整)个线程进行比较和循环迭代,经过k次查找得到属于该入侵检测数据点的k个近邻,即k个距离最近的训练数据点;最后,每个线程块分别输出自己的k个最近邻,跳转至步骤(6)。
(5)采用基于双调排序的最近邻选择算法,对距离矩阵的每一行数据进行并行化排序,计算每个入侵检测数据点的k个最近邻。在GPU端,首先,检查是否需要补充元素。如果n≠2a(a>0),则需要补足最少个数的元素使n=2a,补足的元素统一为能够表示的最大数。接着,将距离矩阵Z拷贝至共享内存,开启m个线程块,每个线程块负责一行数据(即一个入侵检测数据点的距离数据)的排序,每个线程块内总共进行a轮迭代,前a-1轮迭代进行相邻两个单调性相反的序列合并,并分别按相反单调性递归进行双调排序。直至第a轮迭代时,合并前面两个长度为n/2的单调序列为一个长度为n的双调序列;然后,每个线程块内开启n/2个线程做两两元素的比较,得到两个长度为n/2的子双调序列,按此方式循环迭代a轮,每轮都会开启n/2个线程参与计算,直至最后一轮迭代时是长度为2的序列相比较,即可得出单调递增的距离序列。最后,每个线程块分别输出自己的k个最近邻,即k个距离最近的训练数据点,并继续下一步。
(6)根据k个最近邻的计算结果,采用并行化的方式对每个入侵检测数据点进行分类。在GPU端,首先,开启m个线程块,每个线程块负责一个待检测的入侵检测数据点分类标号的统计,每个线程块在共享内存上开辟一个数组,数组长度为训练数据点的类别个数;接着,每个线程块内开启k个线程,每个线程统计自己对应位置上数据(即对应的最近邻训练数据点)的类别标号,采用CUDA内部的原子加法操作统计,即atomicAdd()操作。最后,同步线程块内线程,得到数组的最终值,数组中数字最大的类别即为该入侵检测数据点的分类。
(7)将步骤(6)的计算结果从GPU端拷贝至CPU端,输出m个待检测的入侵检测数据点的分类标号,如果该分类标号属于网络入侵分类标号,则判断该入侵检测数据点为入侵,否则为正常。
对于步骤(3)和步骤(4)中的基于k次最小值查找的最近邻选择算法,算法概述如下:对于一个待检测的网络入侵检测数据点,经过距离计算后,可以得到它与n个网络入侵检测训练数据点的距离向量{d0,d1,...dn-2,dn-1}。为了从该距离向量中选择出k(k≤n)个最小的距离,可以在(说明:此处为向下取整)处把向量一分为二。比较d0和的大小可以得到和比较d1和的大小可以得到和继续比较,直到之前的一个元素和比较得到和当n为奇数时,最后一个元素dn-1只计算min{dn-1}。这些两两元素之间的比较是不相关的,符合GPU并行执行的特性。经过第一轮比较器之后会产生两个子向量l1和l2,如果n为偶数,两个子向量分别为:
如果n为奇数,则子向量l2为:
产生两个子向量l1和l2需要经过次大小比较,在GPU中这次比较可以同时执行,对于要寻找到本轮迭代中的最小值来说,它必定存在于子向量l2中,子向量l2中有个元素,循环迭代上一步的过程,继续将向量l2一分为二做比较,直至l2中只存在一个元素时结束迭代,此时最后的这个元素就是本轮迭代中得到的最小值。经过上述的第一次最小值查找操作之后,距离向量变为{e0,e1,...en-2,en-1},并且en-1这个元素是该向量中的最小值,也是方法查找出的第一个最近邻元素,然后继续对{e0,e1,...en-2}向量做如上操作,即第二次最小值查找操作,可以得到第二个最近邻元素。经过k次最小值查找之后,就可以找出初始向量中的k个最近邻元素,由于每轮迭代中可以在GPU中开启多线程并行查找,将原本时间复杂度为O(n)的比较阶段降为O(1),所以一次最小值查找的时间复杂度就等于迭代次数那么整体k次最小值查找的时间复杂度就是相比于其他排序算法拥有良好的时间复杂度。
举个例子,若一个测试数据到训练数据集的距离向量为{3,7,2,5,0,4,1,6},需要从向量中选择出前2个距离最小的元素。第一轮查找阶段,首先经过第一次比较器的作用之后得到的子向量l1为{3,7,2,6},子向量l2为{0,4,1,5}。第二次将向量l2作为输入,经过比较器之后得到l1为{1,5},l2为{0,4},经过第三次比较之后得到l1为{4},l2为{0},此时向量l2中只剩余一个元素0,即为最小值。第一轮查找结束之后得到的向量变为{3,7,2,6,1,5,4,0},将最后一个元素去掉之后得到{3,7,2,6,1,5,4},这就是第二轮查找的输入向量;第二轮查找阶段,根据输入向量{3,7,2,6,1,5,4},重新经过上述比较器流程之后可以得到最小值1。这样,前2个距离最小元素就被查找出来。
本发明的有益效果在于:(1)充分利用了CUDA的通用矩阵乘函数,提高了网络入侵检测数据点距离计算的并行度;(2)提供了两种并行化排序策略的选择机制,提高了距离排序阶段的执行效率;(3)利用CUDA的原子加法操作统计入侵检测数据点的分类标号,从而将所有计算都移植到GPU中实现,提高了整体性能。
附图说明
附图1本发明方法的流程图。
具体实施方式
下面结合附图进一步说明本发明的技术方案。
本发明的一种基于KNN算法的网络入侵检测并行化加速方法,具体的实施步骤如下:
(1)在CPU端和GPU端进行算法的初始化。在CPU端初始化m个待检测的网络入侵检测数据点,n个带有分类标号的网络入侵检测训练数据点,每个数据点的维度为d,最近邻的个数为k(k≤n)。在GPU端分配待检测的网络入侵检测数据点集和训练数据点集的内存空间,将数据从CPU端拷贝至GPU端。
(8)并行化计算m个入侵检测数据点至n个训练数据点的距离,获得维度为m*n的距离矩阵。在GPU端,开启m个线程计算入侵检测数据点矩阵x的平方x2,每个线程计算一个入侵检测数据点在d个维度上的平方和;接着,开启n个线程计算训练数据点矩阵y的平方y2,每个线程计算一个训练数据点在d个维度上的平方和;然后,计算x2+y2;最后,在GPU端调用CUDA提供的通用矩阵乘函数cublasSgemm()进行距离计算,得到一个维度为m*n的距离矩阵Z,每一行代表一个入侵检测数据点与n个训练数据点的距离。
cublasSgemm()函数属于Cublas库,实现的矩阵运算如下:
Z=alpha*OP(A)*OP(B)+beta*C
上述公式中alpha取值为-2,beta取值为1。调用cublasSgemm()函数时,公式中OP(A)代表入侵检测数据点矩阵x的转置,入侵检测数据点矩阵x的维度为d*m,其转置矩阵的维度为m*d。OP(B)是训练数据点矩阵y,其维度为d*n。这样,OP(A)和OP(B)相乘所得结果矩阵的维度为m*n。C代表入侵检测数据点矩阵x和训练数据点矩阵y的平方和,即x2+y2,其维度为m*n。最后相加得到距离矩阵Z。
(2)采用两种并行化排序算法对距离矩阵的任意一行数据进行排序,选择排序时间较小的算法来进行下一步的计算。在GPU端,从距离矩阵Z中随机抽取一行数据,对这一行的n个距离值进行两次并行化排序来计算k个最近邻,即k个距离最近的训练数据点。第一次排序采用基于k次最小值查找的最近邻选择算法,第二次排序采用基于双调排序的最近邻选择算法,如果第一次排序所需时间小于第二次排序所需时间,则继续下一步;否则,跳转至步骤(5)。
(3)采用基于k次最小值查找的最近邻选择算法,对距离矩阵的每一行数据进行并行化排序,计算每个入侵检测数据点的k个最近邻。在GPU端,首先,将全局存储器中的距离矩阵Z拷贝至共享内存;然后,开启m个线程块,每个线程块负责一行数据(即一个入侵检测数据点的距离数据)的排序,每个线程块内开启(说明:此处为向上取整)个线程进行比较和循环迭代,经过k次查找得到属于该入侵检测数据点的k个近邻,即k个距离最近的训练数据点;最后,每个线程块分别输出自己的k个最近邻,跳转至步骤(6)。
(4)采用基于双调排序的最近邻选择算法,对距离矩阵的每一行数据进行并行化排序,计算每个入侵检测数据点的k个最近邻。在GPU端,首先,检查是否需要补充元素。如果n≠2a(a>0),则需要补足最少个数的元素使n=2a,补足的元素统一为能够表示的最大数。接着,将距离矩阵Z拷贝至共享内存,开启m个线程块,每个线程块负责一行数据(即一个入侵检测数据点的距离数据)的排序,每个线程块内总共进行a轮迭代,前a-1轮迭代进行相邻两个单调性相反的序列合并,并分别按相反单调性递归进行双调排序。直至第a轮迭代时,合并前面两个长度为n/2的单调序列为一个长度为n的双调序列;然后,每个线程块内开启n/2个线程做两两元素的比较,得到两个长度为n/2的子双调序列,按此方式循环迭代a轮,每轮都会开启n/2个线程参与计算,直至最后一轮迭代时是长度为2的序列相比较,即可得出单调递增的距离序列。最后,每个线程块分别输出自己的k个最近邻,即k个距离最近的训练数据点,并继续下一步。
(5)根据k个最近邻的计算结果,采用并行化的方式对每个入侵检测数据点进行分类。在GPU端,首先,开启m个线程块,每个线程块负责一个待检测的入侵检测数据点分类标号的统计,每个线程块在共享内存上开辟一个数组,数组长度为训练数据点的类别个数;接着,每个线程块内开启k个线程,每个线程统计自己对应位置上数据(即对应的最近邻训练数据点)的类别标号,采用CUDA内部的原子加法操作统计,即atomicAdd()操作。最后,同步线程块内线程,得到数组的最终值,数组中数字最大的类别即为该入侵检测数据点的分类。
(6)将步骤(6)的计算结果从GPU端拷贝至CPU端,输出m个待检测的入侵检测数据点的分类标号,如果该分类标号属于网络入侵分类标号,则判断该入侵检测数据点为入侵,否则为正常。
如附图1说明:本方法首先在CPU端初始化待检测的网络入侵检测数据点和带有分类标号的网络入侵检测训练数据集,在GPU端分配内存接收CPU传输过来的数据。接着,在GPU端进行基于通用矩阵乘函数的距离计算,得到待检测的入侵检测数据点与训练数据集之间的距离矩阵;然后,在GPU端随机抽取一个入侵检测数据点的距离向量(即距离矩阵的一行数据)进行排序实验,分别对其进行基于k次最小值查找的最近邻选择和基于双调排序的最近邻选择。对比两种排序算法的执行时间,选定时间较少的排序算法对距离矩阵的所有数据进行排序,从而获得每个入侵检测数据点的k个最近邻,即k个距离最小的训练数据点;随后,在GPU端,根据这k个最近邻的分类标号,采用原子加法操作计算每个分类标号的出现次数,值最大的即为待检测的网络入侵检测数据点的分类标号。将所有待检测的网络入侵检测数据点的分类标号从GPU端拷回CPU端,如果分类标号属于入侵数据的标号,则判断该待检测的网络入侵检测数据点为入侵数据,否则为正常数据。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
Claims (1)
1.一种基于KNN算法的网络入侵检测并行化加速方法,包括如下步骤:
(1)在CPU端和GPU端进行算法的初始化;在CPU端初始化m个待检测的网络入侵检测数据点,n个带有分类标号的网络入侵检测训练数据点,每个数据点的维度为d,最近邻的个数为k(k≤n);在GPU端分配待检测的网络入侵检测数据点集和训练数据点集的内存空间,将数据从CPU端拷贝至GPU端;
(2)并行化计算m个入侵检测数据点至n个训练数据点的距离,获得维度为m*n的距离矩阵;在GPU端,开启m个线程计算入侵检测数据点矩阵x的平方x2,每个线程计算一个入侵检测数据点在d个维度上的平方和;接着,开启n个线程计算训练数据点矩阵y的平方y2,每个线程计算一个训练数据点在d个维度上的平方和;然后,计算x2+y2;最后,在GPU端调用CUDA提供的通用矩阵乘函数cublasSgemm()进行距离计算,得到一个维度为m*n的距离矩阵Z,每一行代表一个入侵检测数据点与n个训练数据点的距离;
(3)采用两种并行化排序算法对距离矩阵的任意一行数据进行排序,选择排序时间较小的算法来进行下一步的计算;在GPU端,从距离矩阵Z中随机抽取一行数据,对这一行的n个距离值进行两次并行化排序来计算k个最近邻,即k个距离最近的训练数据点;第一次排序采用基于k次最小值查找的最近邻选择算法,第二次排序采用基于双调排序的最近邻选择算法,如果第一次排序所需时间小于第二次排序所需时间,则继续下一步;否则,跳转至步骤(5);
(4)采用基于k次最小值查找的最近邻选择算法,对距离矩阵的每一行数据进行并行化排序,计算每个入侵检测数据点的k个最近邻;在GPU端,首先,将全局存储器中的距离矩阵Z拷贝至共享内存;然后,开启m个线程块,每个线程块负责一行数据(即一个入侵检测数据点的距离数据)的排序,每个线程块内开启(说明:此处为向上取整)个线程进行比较和循环迭代,经过k次查找得到属于该入侵检测数据点的k个近邻,即k个距离最近的训练数据点;最后,每个线程块分别输出自己的k个最近邻,跳转至步骤(6);
(5)采用基于双调排序的最近邻选择算法,对距离矩阵的每一行数据进行并行化排序,计算每个入侵检测数据点的k个最近邻;在GPU端,首先,检查是否需要补充元素;如果n≠2a(a>0),则需要补足最少个数的元素使n=2a,补足的元素统一为能够表示的最大数;接着,将距离矩阵Z拷贝至共享内存,开启m个线程块,每个线程块负责一行数据(即一个入侵检测数据点的距离数据)的排序,每个线程块内总共进行a轮迭代,前a-1轮迭代进行相邻两个单调性相反的序列合并,并分别按相反单调性递归进行双调排序;直至第a轮迭代时,合并前面两个长度为n/2的单调序列为一个长度为n的双调序列;然后,每个线程块内开启n/2个线程做两两元素的比较,得到两个长度为n/2的子双调序列,按此方式循环迭代a轮,每轮都会开启n/2个线程参与计算,直至最后一轮迭代时是长度为2的序列相比较,即可得出单调递增的距离序列;最后,每个线程块分别输出自己的k个最近邻,即k个距离最近的训练数据点,并继续下一步;
(6)根据k个最近邻的计算结果,采用并行化的方式对每个入侵检测数据点进行分类;在GPU端,首先,开启m个线程块,每个线程块负责一个待检测的入侵检测数据点分类标号的统计,每个线程块在共享内存上开辟一个数组,数组长度为训练数据点的类别个数;接着,每个线程块内开启k个线程,每个线程统计自己对应位置上数据(即对应的最近邻训练数据点)的类别标号,采用CUDA内部的原子加法操作统计,即atomicAdd()操作;最后,同步线程块内线程,得到数组的最终值,数组中数字最大的类别即为该入侵检测数据点的分类;
(7)将步骤(6)的计算结果从GPU端拷贝至CPU端,输出m个待检测的入侵检测数据点的分类标号,如果该分类标号属于网络入侵分类标号,则判断该入侵检测数据点为入侵,否则为正常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810418164.4A CN108600246B (zh) | 2018-05-04 | 2018-05-04 | 一种基于knn算法的网络入侵检测并行化加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810418164.4A CN108600246B (zh) | 2018-05-04 | 2018-05-04 | 一种基于knn算法的网络入侵检测并行化加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108600246A true CN108600246A (zh) | 2018-09-28 |
CN108600246B CN108600246B (zh) | 2020-08-21 |
Family
ID=63620823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810418164.4A Active CN108600246B (zh) | 2018-05-04 | 2018-05-04 | 一种基于knn算法的网络入侵检测并行化加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108600246B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321476A (zh) * | 2019-05-21 | 2019-10-11 | 湖南大学 | 基于局部敏感哈希的并行矩阵分解计算实现方法 |
CN110796193A (zh) * | 2019-10-29 | 2020-02-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于可重构方式的knn算法的硬件实现系统和方法 |
CN111865334A (zh) * | 2020-08-17 | 2020-10-30 | 长安大学 | 一种低密度奇偶校验码的高速滑窗置信解码方法 |
CN112380003A (zh) * | 2020-09-18 | 2021-02-19 | 北京大学 | 一种gpu处理器上的k-nn的高性能并行实现装置 |
CN112749739A (zh) * | 2020-12-31 | 2021-05-04 | 天博电子信息科技有限公司 | 一种网络入侵检测方法 |
CN113032007A (zh) * | 2019-12-24 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685268A (zh) * | 2013-12-10 | 2014-03-26 | 华东理工大学 | 一种基于gpu和svm的网络入侵检测方法 |
US20140215621A1 (en) * | 2013-01-25 | 2014-07-31 | REMTCS Inc. | System, method, and apparatus for providing network security |
CN105959175A (zh) * | 2016-04-21 | 2016-09-21 | 南开大学 | 基于GPU加速的kNN算法的网络流量分类方法 |
-
2018
- 2018-05-04 CN CN201810418164.4A patent/CN108600246B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140215621A1 (en) * | 2013-01-25 | 2014-07-31 | REMTCS Inc. | System, method, and apparatus for providing network security |
CN103685268A (zh) * | 2013-12-10 | 2014-03-26 | 华东理工大学 | 一种基于gpu和svm的网络入侵检测方法 |
CN105959175A (zh) * | 2016-04-21 | 2016-09-21 | 南开大学 | 基于GPU加速的kNN算法的网络流量分类方法 |
Non-Patent Citations (3)
Title |
---|
YI-SHAN LIN,CHUN-LIANG LEE,YAW-CHUNG CHEN: "A Capability-based Hybrid CPU/GPU Pattern Matching Algorithm for Deep Packet Inspection", 《PROCEEDINGS OF 2015 THE 4TH INTERNATIONAL CONFERENCE ON CONTROL, ROBOTICS AND INFORMATICS (ICCRI 2015)》 * |
张毅峰: "快速智能入侵检测技术研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
魏紫: "使用GPU实现快速K近邻搜索算法", 《科技信息》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321476A (zh) * | 2019-05-21 | 2019-10-11 | 湖南大学 | 基于局部敏感哈希的并行矩阵分解计算实现方法 |
CN110321476B (zh) * | 2019-05-21 | 2021-04-02 | 湖南大学 | 基于局部敏感哈希的并行矩阵分解计算实现方法 |
CN110796193A (zh) * | 2019-10-29 | 2020-02-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于可重构方式的knn算法的硬件实现系统和方法 |
CN113032007A (zh) * | 2019-12-24 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN111865334A (zh) * | 2020-08-17 | 2020-10-30 | 长安大学 | 一种低密度奇偶校验码的高速滑窗置信解码方法 |
CN112380003A (zh) * | 2020-09-18 | 2021-02-19 | 北京大学 | 一种gpu处理器上的k-nn的高性能并行实现装置 |
CN112380003B (zh) * | 2020-09-18 | 2021-09-17 | 北京大学 | 一种gpu处理器上的k-nn的高性能并行实现装置 |
CN112749739A (zh) * | 2020-12-31 | 2021-05-04 | 天博电子信息科技有限公司 | 一种网络入侵检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108600246B (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108600246A (zh) | 一种基于knn算法的网络入侵检测并行化加速方法 | |
Benatia et al. | Sparse matrix format selection with multiclass SVM for SpMV on GPU | |
Li et al. | An inexact interior point method for l 1-regularized sparse covariance selection | |
Naumov | Incomplete-LU and Cholesky preconditioned iterative methods using CUSPARSE and CUBLAS | |
Tang et al. | Accelerating sparse matrix-vector multiplication on GPUs using bit-representation-optimized schemes | |
Kerr et al. | Eiger: A framework for the automated synthesis of statistical performance models | |
Benatia et al. | Machine learning approach for the predicting performance of SpMV on GPU | |
Kovantsev et al. | Analysis of multivariate time series predictability based on their features | |
Schubert et al. | Exploiting Access Pattern Characteristics for Join Reordering | |
WO2023019899A1 (zh) | 神经网络实时剪枝方法、系统及神经网络加速器 | |
Man et al. | An efficient parallel sorting compatible with the standard qsort | |
Tomov et al. | Accelerating the reduction to upper Hessenberg form through hybrid GPU-based computing | |
Balaprakash et al. | Empirical performance modeling of GPU kernels using active learning | |
Cai et al. | Jump: a fast deterministic algorithm to find the closest pair of subsequences | |
CN109815104B (zh) | 基于软错误感知的gpgpu程序近似分析系统及方法 | |
Zhang et al. | Fast n-point correlation function approximation with recursive convolution for scalar fields | |
Goodwin | Efficiently computing the power set in a parallel environment | |
Bui | Efficient framework for learning code representations through semantic-preserving program transformations | |
Akl et al. | Constant delay parallel counters | |
Thouti et al. | An OpenCL method of parallel sorting algorithms for GPU architecture | |
Soh et al. | Dynamic Tensor Linearization and Time Slicing for Efficient Factorization of Infinite Data Streams | |
Goodwin | Linearizing Computing the Power Set with OpenMP | |
Sampath et al. | The top-K tau-path screen for monotone association | |
Sawerwain | GPU-based parallel algorithms for transformations of quantum states expressed as vectors and density matrices | |
Faujdar et al. | Performance analysis of parallel sorting algorithms using GPU computing |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |