一种基于OpenCL的KNN-GPU加速方法
【专利摘要】本发明涉及一种基于OpenCL的KNN-GPU加速方法。本发明主要完成KNN算法的并行化实现,首先是CPU端的准备工作,包括OpenCL平台的初始化、设备端的存储配置,然后在GPU上的计算过程,包括设备端的测试数据及训练数据在索引空间表示、距离计算及排序等步骤,最后将GPU端所得到的分类结果输出到CPU端显示。本发明还对GPU端的内存访问进行了优化,采用了局部存储器的存储和读取数据,进一步提高了并行化效率。通过实验证明,本发明能够有效提高KNN分类算法的效率,且分类精度保持不变,能够广泛应用于文本及图像等分类计算中。
【专利说明】—种基于OpenCL的KNN-GPU加速方法
【技术领域】
[0001]本发明涉及基于OpenCL平台的GPU并行加速领域,具体涉及一种基于OpenCL的KNN分类的GPU加速新方法。
【背景技术】
[0002]K 最近邻(K-Nearest Neighbor,简称 KNN)算法最初由 Cover 和 Hart 于 1968 年提出,随后得到广泛深入的分析和研究,该算法是一种基于类比学习的算法,对于未知的或者符合正态分布的样本可以获得较高的分类精度,并且具有鲁棒性、方法简单等优点。
[0003]KNN算法的基本思想是:假设每一个类包含多个样本数据,而且每个数据都有一个唯一的类标记表示这些样本类别,分别计算每个样本数据到待分类数据的距离,取和待分类数据最近的k各样本数据,根据这k个近邻的类别确定待分类样本归属。
[0004]KNN分类是一种基于要求的或懒惰的学习方法,它存放所有的训练样本,直到测试样本需要分类时才建立分类。如果数据量比较小,KNN算法还是有客观的速度的。而当