[发明专利]基于SoC-FPGA的自重构K-means聚类技术实现方法有效
申请号: | 201510308043.0 | 申请日: | 2015-06-08 |
公开(公告)号: | CN104850866B | 公开(公告)日: | 2018-05-01 |
发明(设计)人: | 蒲宇亮;黄乐天;彭军;贺江 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06K9/62 | 分类号: | G06K9/62 |
代理公司: | 成都金英专利代理事务所(普通合伙)51218 | 代理人: | 袁英 |
地址: | 610041 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 soc fpga 自重 means 技术 实现 方法 | ||
技术领域
本发明涉及数据挖掘技术领域,尤其涉及一种基于SoC-FPGA的自重构K-means聚类技术实现方法。
背景技术
K-means算法作为最常用的聚类算法,以其简单、有效等优点被大量应用于模式识别、机器学习及数据挖掘等领域,具体如自动文献分类整理、神经网络的基函数中心确定、核磁共振图像分割处理等。K-means聚类属于无监督学习,其流程如图1所示,基本思想是以空间中K个质心为基准,通过样本点离各个质心的距离对样本进行归类,并计算当前各类的新质心。多次迭代更新聚类质心,直到质心收敛为主。K-means聚类过程示意图如图2所示。从算法过程中不难发现K-means中涉及大量计算,特别涉及样本点与质心的距离计算以及更新质心运算时,会带来很大的计算开销。在实际的数据挖掘任务中,样本规模往往非常庞大,相应的计算资源和存储资源消耗都非常大,由于FPGA内部资源有限,如何对K-means聚类过程进行时间和空间上的优化是目前该领域研究的一个难题。
通过现有文献搜索,发现利用FPGA优化K-means聚类技术的文章主要集中在时间优化方面,采取的实现方式存在开发周期长、跨平台移植性差、不适于多处理器异构平台协同加速等不足。Kutty,Boussaid等人于2013年在International Symposium on Circuits and Systems(ISCAS)上发表文章《A high speed configurable FPGA architecture for k-mean clustering》,采用全局可配置的方法在FPGA上实现了K-means聚类算法的加速。这种传统的HDL硬件编程语言进行开发使开发人员将大量精力花在时序逻辑等开发难度大的模块,无法专注于算法本身,造成开发效率低下。另一方面,由于HDL硬件语言只能针对FPGA平台进行开发,造成系统的可移植性和兼容性低。
2008年,Apple公司提出了第一个面向异构系统通用目的并行编程的开放式免版税标准,全称Open Computing Language(OpenCL),即开放式计算语言。OpenCL适用于不同处理器的协同并行计算,其支持的异构协处理器包括CPU、GPU、DSP等,代码通用性强,能轻松在不同设备端进行移植。2011年,Altera公司发布了FPGA的OpenCL标准开发计划,并于2013年推出了基于OpenCL框架的FPGA产品,将跨平台并行编程标准OpenCL扩展到了FPGA领域。
在编程模式上,FPGA执行程序全部采用类C/C++风格的OpenCL语言开发,开发简便,修改灵活,能大大缩短研发周期,减少产品维护和升级的研发成本;另一方面,新方法基于OpenCL架构,代码可以实现跨平台快速移植,适合扩展和应用于多处理器异构平台的协同加速之中。同时,由于FPGA设备引入内核自重构机制,编译时能充分利用Altera公司提供的针对FPGA-OpenCL开发的优化技术,达到了充分挖掘利用FPGA硬件资源的目的。
发明内容
本发明的目的在于克服现有技术的不足,提供一种提升了K-means聚类算法的执行速度、获得了更高的能量效率的基于SoC-FPGA的自重构K-means聚类技术实现方法,解决现有技术的针对已有的K-means聚类算法存在的运算量大,占用硬件资源多,功耗大,系统时延大等问题。
本发明的目的是通过以下技术方案来实现的:基于SoC-FPGA的自重构K-means聚类技术实现方法,它包括以下步骤:
S1:在OpenCL编程架构下,构建ARM主机端和FPGA设备端协作的SoC-FPGA异构平台模型,ARM主机端对环境参数进行配置,完成初始化;所述的ARM主机端与FPGA设备端通过AXI片内总线连接;
S2:ARM主机端构建OpenCL主机程序,主机程序创建内核,完成ARM主机端与OpenCL设备端的内存分配,并向内存中写入数据,通过参数传递的方式完成ARM主机端与OpenCL设备端的内存映射;
S3:ARM主机端的主机程序配置FPGA设备端工作组组数、工作组大小以及计算单元维度,并调用FPGA端的内核程序,将样本集数据和初始质心数据经过AXI片内总线传输至FPGA设备端,其中,所述的样本集数据存储在全局内存中,所述的质心数据存储在局部内存中;
S4:FPGA设备端构建第一OpenCL内核程序,所述的第一OpenCL内核程序并行流水地计算每个样本集数据到每个质心的欧式距离,产生一个距离矩阵;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510308043.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多灰阶隐形二维码的生成装置
- 下一篇:城市快速提取方法及装置