论文部分内容阅读
执行-访存解耦合(DAE)是一种用于改进处理器访存性能的体系结构,该体系结构通过分解访存和计算使得相关处理器平台拥有较高的计算-访存并发能力。当前DAE架构上的软件开发与优化存在基础库缺失、编程难度大、缺乏编程模型指导等问题。本文就以上问题对DAE架构下优化及编程方法进行讨论,旨在改进应用程序在相关平台上的运行效率。论文从处理器的硬件特性出发,介绍基于DAE架构的优化方法及理论。提出一种适用于DAE架构的计算-传输解耦合划分方法,使优化目标脱离冯诺依曼体系结构的束缚并进行重构。重构后的应用及算法具有更高的计算及访存并发性,更加适应DAE架构的访存及计算特征。相关工作从执行模型、优化手段、模型指导优化方法以及解耦合划分模型四部分展开,主要贡献及创新点如下:1)针对缺乏执行模型指导性能分析的问题,提出了一种基于DAE架构的程序执行模型。在理论层面指导程序员从带宽利用、多通道访存、计算访存比改进等多个方面对目标应用展开优化。该模型考虑处理器上的多层次存储结构特性,引入访存指令发射开销的概念。将计算访存比作为参数引入到程序执行模型,建立计算访存比与程序运行性能的关系。2)针对基础数学库与DAE架构硬件特性耦合性低的问题,本文以经典BLAS二级库函数GEMV作为研究对象,提出一种在该架构下加速访存密集型应用的高效算法。优化后的GEMV函数性能大幅提升。本研究工作以龙芯3B处理器作为硬件平台,针对GEMV访存密集型应用的特性,利用处理器访存部件加速该访存事务。使得GEMV的平均性能超过目前所有已公开的其他基于龙芯平台的版本。从而证明该方法可有效提升DAE架构下该类基础数学库的函数性能。3)针对DAE架构下优化工作开展效率低下的问题,提出了一种基于DAE架构的优化模式。首先提出一种分层的普通稠密矩阵乘算法,该算法每个层次间的耦合性较低,可以通过逐层优化的方式达到局部最优。其次利用DAE架构访存和执行单元分开的特点,通过插桩的思想在访存协处理器控制代码当中加入访存状态收集模块,引入一个运行时访存性能评价系统—DAEFS。通过利用DAEFS使4层稠密矩阵乘算法的其中两层具有自适应的特性,在运行时收集访存负载信息并自动调节算法的相关参数,改变算法的计算—访存关系并提升程序性能。4)针对应用程序计算与访存耦合性高、难以并发的问题,提出了一种针对DAE架构的数据解耦合划分方法。该方法将程序的执行流程划分成多个模块,通过有向图的方式表示模块间的数据依赖关系,并在此基础上利用基于启发式的有向图分簇算法对这些计算模块进行划分。具有硬件特征耦合性低、跨平台、易实现的特点。本文以Kepler架构GPGPU作为实验平台,对深度神经网络(DNN)算法进行数据解耦合划分。实验证明重构后的深度神经网络算法的并行加速比得到明显改善,从而提升算法在相关平台上的执行效率。