[发明专利]一种国产申威26010众核处理器上K-means算法的高性能并行实现方法有效
申请号: | 201810188779.2 | 申请日: | 2018-03-08 |
公开(公告)号: | CN108509270B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 杨超;李敏;闫碧莹 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/48 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 安丽 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 国产 26010 处理器 means 算法 性能 并行 实现 方法 | ||
本发明提出了一种国产申威26010众核处理器上K‑means算法的高性能并行实现方法,基于国产处理器申威26010平台,针对聚类阶段,本发明设计了一种块距离矩阵计算与规约操作融合的计算框架,该框架使用三层分块策略进行任务划分,同时设计协作式的核间数据共享方案和基于寄存器通信机制的簇标签规约方法,及使用双缓冲技术,指令重排等优化技术。针对更新中心点阶段,本发明设计了动态调度的任务划分方式。通过在真实数据集上测试,本发明可以达到最大348.1GFlops的浮点计算性能,相比理论上最大性能,可以获得47%~84%的浮点计算效率,相比不融合的计算方式,可以获得最高1.7x,平均1.3x的加速比。
技术领域
本发明属于机器学习中的聚类算法的并行加速研究领域,具体涉及K-means算法在国产申威26010众核处理器上的高性能并行实现方法。
背景技术
K-means是无监督学习中一种经典的基于距离计算的聚类算法,它根据样本间的相似度度量将样本数据划分成不同的簇,使同一簇中的样本间的相似度最大化。由于简单,易实现,无需标记样本等特点,K-means在图像处理、数据挖掘、文本聚类、生物学等领域有着广泛的应用,并越来越多的被用作许多更复杂算法的预处理手段。大数据时代的到来,使得样本数据的特征维度从原来的几十维上升到了数以千计,相应的,对计算速度也提出了更高的要求,因此,研究K-means的并行加速对于实际应用是非常重要且有意义的。
目前,已有许多基于GPU平台的并行化K-means算法的研究。其中,单GPU上最好的实现方案是You Li(Li Y,Zhao K,Chu X,et al.Speeding up k-Means algorithm byGPUs[J].Journal of ComputerSystem Sciences,2013,79(2):216-229.)的算法。You Li的算法率先提出,对于高维度样本,K-means的聚类过程跟基础线性代数库(BLAS)中的矩阵乘矩阵(GEMM)函数的计算模式有很大的相似性,他通过采用GEMM的并行化方案来计算K-means聚类阶段的各样本间的距离,并将计算结果存储到一个距离矩阵,其后通过读取距离矩阵并进行规约操作,求出各样本的簇标签。该方案充分利用GPU的强大计算能力。但是K-means算法真正需要得到的结果是每个样本的簇标签,距离矩阵只是求解簇标签数组的一个中间数据,在You Li的算法中,距离矩阵计算完成后,被写入了内存,接下来又被从内存读入,增加了额外的访存操作,提高了系统的通信压力,尤其突出了现代大多数的高性能硬件平台(CPU,GPU,SW26010等)普遍存在的访存墙问题。此外,由于缺乏精细调优,其并行实现只能达到机器峰值浮点性能的15.9%。
国产申威26010众核处理器是我国自主研发的一款主从核异构的高性能平台,它由4个核组组成,核组间通过Noc(Network on Chip)相连,并共享一个32GB的主存空间。每个核组由1个主核和一个8×8的从核阵列组成。主核和从核都支持256位向量浮点指令。从核阵列可以提供742.4GFlops的浮点计算能力。每个从核拥有一个独立(私有)的用户可控的64KB的LDM(Local DeviceMemory,局部存储器)空间。从核可以直接访问主存,也可以采用DMA接口进行主存与本地LDM间的数据传输,且后者具有更小的延迟,提供了实际22GB/s的访存带宽。从核间通过行/列数据总线相连,这使得同行及同列的不同从核间可以通过寄存器通信达到高效的数据共享。从核有2条流水线,P0和P1。其中标量整数指令可以在P0或者P1上执行;浮点运算指令只能在P0上执行;访存,寄存器通信,控制转移指令只能在P1上执行。因此,对于浮点计算占优的算法来说,充分利用P0流水线来进行浮点运算,可以获得更高的浮点计算性能。申威26010众核处理器各项软硬件参数如表1所示:
表1:申威26010众核处理器软硬件参数
同时,目前国产申威平台上,还没有高性能的K-means算法实现,不利用机器学习应用在该平台上的应用与普及。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810188779.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于监督混洗蛙跳算法的软硬件划分方法
- 下一篇:一种数据处理方法及系统