发明名称 基于SoC-FPGA的自重构K-means聚类技术实现方法
摘要 本发明公开了一种基于SoC-FPGA的自重构K-means聚类技术实现方法,它包括以下步骤:S1:构建ARM主机端和FPGA设备端协作的SoC-FPGA异构平台模型;S2:ARM主机端构建OpenCL主机程序,创建内核,完成内存分配与映射;S3:主机程序调用FPGA设备端的内核程序,将数据传输至FPGA设备端;S4:第一OpenCL内核程序并行流水地计算欧式距离,产生一个距离矩阵;S5:自重构第二OpenCL内核程序,筛选出每行最小的元素并记录其对应质心;S6:自重构第三OpenCL内核程序,实现各个质心簇中所有样本点的距离累加以及数量统计工作;S7:主机程序计算出新质心数据;S8:主机程序进行迭代判断。本发明不仅提升了K-means聚类算法的执行速度,获得了更高的能量效率,而且通过内核自重构,解决了FPGA硬件资源不足的问题。
申请公布号 CN104850866A 申请公布日期 2015.08.19
申请号 CN201510308043.0 申请日期 2015.06.08
申请人 电子科技大学 发明人 蒲宇亮;黄乐天;彭军;贺江
分类号 G06K9/62(2006.01)I 主分类号 G06K9/62(2006.01)I
代理机构 成都金英专利代理事务所(普通合伙) 51218 代理人 袁英
主权项 基于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内核程序并行流水地计算每个样本集数据到每个质心的欧式距离,产生一个距离矩阵;S5:FPGA设备端自重构第二OpenCL内核程序,所述的第二OpenCL内核程序接收第一OpenCL内核程序产生的距离矩阵,对于矩阵中的每行数据运用并归查找的方法并行处理距离矩阵的每行数据,筛选出每行最小的元素并记录其对应质心,完成样本集的归类处理;S6:FPGA设备端自重构第三OpenCL内核程序,所述的第三OpenCL内核程序采用并行方式对每个质心簇中的样本点距离进行累加,统计出每个质心簇中样本点个数,并将数据结果通过AXI总线传回ARM主机端;S7:ARM主机端的主机程序通过各个质心簇的距离累加和分别除以各自的样本点数量,计算出新质心数据;S8:ARM主机端的主机程序将新质心与原质心进行做差比较:(1)若结果大于给定标准,则继续进行聚类迭代,跳转至步骤S2;(2)若结果小于给定标准,表明质心收敛,则不再进行聚类迭代,整个K‑means聚类任务完成。
地址 610041 四川省成都市高新区(西区)西源大道2006号