论文部分内容阅读
Stencil计算是高性能计算领域的七个主要计算核心之一,是大量科学计算和工程计算的核心,被广泛应用于大气模拟,流体力学等多个领域。Stencil计算虽然具有天然的数据并行性,但其计算访存比较低,主存带宽受限严重,在传统冯诺依曼架构的CPU上,以及适合开展数据处理的GPU上所获得的计算效率仍非常低。计算效率低则意味着计算部件和功耗的浪费,在高性能计算领域,对性能功耗比要求越来越高,低下的计算效率已无法满足应用需求所带来的挑战。 数据流架构因为结构简单,拥有天然的异步并行性等特征为体系结构领域所重视。在面向高性能计算领域时,数据流加速器作为一类专用处理器,更是表现出了较好的性能和适用性。因此在数据流架构上对Stencil程序进行优化是提高Stencil计算效率的一种令人期待的解决方案。 本文基于中科院计算所自主研制的数据流结构处理器SPU,研究3D Stencil在数据流架构上的优化方案,本文的主要研究内容和贡献如下: 1.通过分析3D Stencil计算的算法特征和SPU的结构特征,本文提出3D Stencil在数据流架构上的软件优化方案,其中主要包含空间复用和时间复用两个部分,通过实验评估,采用软件优化后,3D Stencil的计算效率可从原来的1.01%,提升到18.7%。 2.为了进一步提高3D Stencil的数据复用率,本文提出面向3D Stencil的硬件优化方案,引入了软循环执行模式,设计了面向3D Stencil的特定循环控制指令,并在SPU上对这些指令进行支持与实现。通过实验评估,采用硬件优化后,3DStencil的计算效率可以进一步提升至25.5%,相对于软件优化提高了36%的计算效率。 3.在硬件优化方案的基础上,基于SPU的结构特征和3D Stencil的应用特性,本文提出了基于指令簇的指令映射算法(CBIM)。该指令映射算法可以解决常见指令映射算法负载不均衡的问题,并能够缓解网络竞争压力。通过实验评估,映射优化后3D Stencil的计算效率可以达到44.96%,相对于软件优化提升了140%,相对于硬件优化提升了76.3%。