[发明专利]一种国产申威26010众核处理器上K-means算法的高性能并行实现方法有效
申请号: | 201810188779.2 | 申请日: | 2018-03-08 |
公开(公告)号: | CN108509270B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 杨超;李敏;闫碧莹 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/48 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 安丽 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 国产 26010 处理器 means 算法 性能 并行 实现 方法 | ||
1.一种国产申威26010众核处理器上K-means算法的高性能并行实现方法,所述方法基于国产申威26010处理器的一个核组,每个核组由一个主核与64个从核组成,所述K-means算法包括:(a)初始化中心点步骤、(b)聚类步骤、(c)计算迭代收敛值步骤和(d)更新中心点步骤;首先,完成步骤(a)、(b),再根据(c)求出迭代收敛值并判断是否收敛,若没有收敛,再次进入步骤(b)-(d)组成的主循环中;若收敛,则返回当前聚类结果并退出,输出每个样本对应的簇标签;其特征在于:所述方法主要对耗时比较多的(b)和(d)步骤进行并行优化;
所述(b)聚类步骤实现为:计算每个样本与所有中心点的距离,为每个样本求出距离最近的中心点,并将中心点下标存储为此样本的簇标签,进而将所有所述的样本划分到距离最近的簇中;
所述(d)更新中心点步骤为:将每个所述簇对应的所述中心点更新为属于所述簇的所有所述样本的加权平均;
所述(b)聚类步骤实现如下:建立一种将块距离矩阵计算与簇标签规约融合的并行实现框架,所述框架以接口层、驱动层和核心层的三层代码设计结构进行聚类的并行实现,其中接口层为主核端操作,驱动层和核心层为从核端操作;所述框架采用逻辑分块、物理分块和寄存器分块的三层分块算法,其中驱动层进行逻辑分块和物理分块操作,核心层进行寄存器分块操作,具体实现如下:
(1)首先,接口层读取输入数据,将输入数据存成一个n×d维的样本矩阵,n为样本的个数,d为样本的维度,将中心点存成d×k维的中心点矩阵,其中k为簇数,即中心点的个数,接着接口层对输入参数n、d、k进行检查,若n、d、k为正整数,则检查合格,调用驱动层函数;
(2)然后驱动层进行逻辑分块和物理分块,即将样本矩阵和中心点矩阵分别在n、d和k维进行逻辑分块划分,得到样本矩阵块和中心点矩阵块,以n、k、d的for循环组织顺序对各个块进行遍历;在n循环内部进行k循环,在k循环内部先进行d循环,调用基于寄存器通信的两步的簇标签规约函数;在d循环内部首先发起DMA传输,将样本矩阵块与中心点矩阵块从主存传到从核上的LDM中,再调用核心层函数进行所述样本矩阵块与中心点矩阵块的距离计算,得到一个距离矩阵块;
(3)接着驱动层将逻辑分块得到的样本矩阵块,中心点矩阵块和距离矩阵块进一步进行物理块划分,分别划分为64个更小的距离矩阵块,称为tile,分别为样本矩阵tile和中心点矩阵tile和距离矩阵tile;每个样本矩阵tile和中心点矩阵tile被DMA传输到64个从核中的对应从核上的高效缓存LDM中,如果样本矩阵块的第i个tile和中心点矩阵块的第i个tile被传输到第i个从核上;同时每个从核在其LDM中为距离矩阵tile开辟内存空间,并负责计算所述距离矩阵tile的值,驱动层调用核心层函数进行所负责的距离矩阵tile的计算;
(4)在核心层,每个从核在计算所负责的距离矩阵tile时,需要从别的从核获得计算所述距离矩阵tile所需要的样本矩阵tile和中心点矩阵tile;调用一次基于寄存器分块方法的计算函数;在计算函数中,每个从核通过汇编代码的方式,进行所负责的距离矩阵tile的计算;
(5)接着每个从核完成其上的距离矩阵tile的计算后,采用基于寄存器通信的簇标签规约方法,求取所述距离矩阵tile每一行的最小值,所述最小值所对应的全局列标即为相应全局行标所对应的样本的簇标签;
(6)最后将所述样本的簇标签存储到主存中,完成聚类操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810188779.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于监督混洗蛙跳算法的软硬件划分方法
- 下一篇:一种数据处理方法及系统