基于MIC众核架构的并行算法设计与优化

来源 :南京航空航天大学 | 被引量 : 2次 | 上传用户:gv_coolway
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,众核处理器(Many Ingerated Cores,MIC)越来越多地为人们所关注,众核架构已经成为许多超算的首选。目前,科学与工程应用最广泛的是有限差分计算、稀疏矩阵乘、线性方程组迭代求解等算法,其多为访存密集型计算,而新一代MIC处理器Knight Landing(KNL)在处理这类访存密集型算法时有不错的效果。本文将在众核架构上对上述的并行算法进行设计与优化,从以下几个方面进行研究:第一、稀疏矩阵向量乘算法的设计与优化。稀疏矩阵向量乘算法(SpMV)是求解大规模线性方程组常用的算法,优化SpMV的关键是压缩稀疏矩阵。一方面,MIC相比CPU有更多的向量位(512位SIMD),在MIC上采用传统CPU的压缩方法会导致SIMD利用率低的问题。另一方面,GPU和MIC存在架构差异,如果采用GPU上的压缩方法虽然可以解决SIMD利用率低的问题,但会产生核心负载不均衡的新问题。本文设计一种有效解决上述问题的新压缩算法,同时对该算法使用AVX512指令集掩码优化,获得了30%左右的性能提升。第二、模板算法的设计与优化,主要从两方面研究。模板算法(Stencil)是求解有限差分的常见算法,兼具访存密集与缓存延迟的特点。针对Stencil的一级缓存利用率低,时间局部性差的问题,本文设计一种正反向更新算法用于提升Stencil计算的缓存利用率。此外,针对Stencil算法访存密集的特点,研究不同的多通道内存(MCDRAM)模式和缓存集群(cluster)模式对计算性能的影响,设计一种MCDRAM和DDR并发存储的方法用于解决MCDRAM访存延迟问题。第三、BP神经网络的设计与优化。BP神经网络是采用反向误差传播(Back Propagation,BP)算法的人工神经网络,对于处理器的浮点计算能力要求比较高。本文对BP神经网络进行了向量化扩展,并使用寄存器分块和缓存分块方法进行优化。实验结果表明在KNL上最快能达到220img/s的处理速度,其加速比达到了13.2,为GPU的2.9倍,KNC的2.28倍。本文面向高性能计算中科学与工程应用常见算法,分析了稀疏矩阵向量乘、有限差分模板计算以及BP神经网络算法的特点,在众核MIC处理器上开展了基于众核架构的算法设计与优化研究,并取得了较好的加速效果。
其他文献
关于儿童母语词汇习得,不同的研究者提出不同的理论解释。一部分研究者认为儿童是在一定制约条件影响下有选择有顺序地习得母语词汇的。本文主要探讨其中的三个制约条件:整体