论文部分内容阅读
面向高性能计算机性能评价标准测试程序时,现有高性能处理器能获得很高的浮点效率,但在处理某些大规模实际科学计算时获得浮点效率却非常低。浮点效率的低下意味着浮点计算资源和计算能力的浪费,在面向未来E级科学计算时,计算系统将难以承受现有处理器低效带来的计算能力需求和功耗需求。随着计算机体系结构的发展,领域专用架构成为计算机体系结构发展趋势的一个重要分支。在面向特定应用时,专用型架构利用应用特征对架构进行相应的优化,从而更好地发挥出硬件的计算性能。在高性能计算领域,相比控制流处理器,数据流处理器具有较好的指令并行性、数据复用性和能效比。针对现有数据流结构的低效问题,本文对面向科学计算的数据流处理器SPU中的关键技术进行了研究。通过分析科学应用和数据流计算的特征,针对现有数据流处理器执行模式的延迟隐藏问题,提出了数据流图流水线执行模式;针对现有数据流指令映射算法的执行模式不匹配问题,提出了基于负载均衡的指令映射算法;针对现有SIMD结构的数据复用问题和网络瓶颈问题,提出了独立子空间SIMD优化方法;针对控制流路由结构与SPU网络传输特征不匹配问题,提出了面向SPU的高通量低延迟路由结构。本文的主要创新点及贡献包括: 数据流图流水线执行模式。现有数据流结构中,每个程序块仅执行一次,这导致处理器上没有足够的上下文完全掩盖操作数的传输延迟,处理器功能单元利用率较低。针对科学计算中不同数据对应相同操作这一特性,本文提出了数据流图的流水线执行模式,使不同数据以流水线的方式进入数据流图,从而提高计算阵列上活跃的上下文数量。寄存器级流水线执行模式会导致死锁,因此本文进一步提出了一种请求操作数机制来实现指令级流水线执行模式,每条指令发射后向其前驱请求下一个操作数,从而保证不会由于缺乏流控导致的处理器死锁。实验表明,对于典型科学计算,相比现有数据流单次执行模式,本文提出的流水线执行模式将SPU的计算效率提高了5.4%,其面积开销仅为1.7%; 基于负载均衡的数据流指令映射算法。现有数据流指令映射算法面向通用计算,通过模型计算指令的发射时间,从而确定指令的最佳位置。模型主要考虑了数据的执行延迟、传输延迟和功能单元竞争。但是在具有流水线执行模式的SPU中,相比数据传输延迟和功能单元竞争,负载均衡成为SPU中影响性能最大的因素。针对SPU这一特性,本文提出了一种基于负载均衡的数据流指令映射算法,算法以负载均衡为核心,同时考虑定浮点区别和网络竞争。实验表明,对于典型科学计算,负载均衡将处理器的性能提升了136.1%,定浮点均衡将处理器的性能提高了72.9%,网络竞争优化将处理器的性能提高了31.3%。相比数据流指令映射算法SPDI和SPS,本文提出的基于负载均衡的指令映射算法将SPU的效率平均提高了184.6%。并且,随着网络带宽的增加,负载均衡对性能的提升从64.4%逐渐上升到136.1%,定浮点均衡对性能的提升从33.1%逐渐上升到72.9%,而网络竞争所带来的优化从80.4%逐渐降低到31.3%; 独立子空间SIMD优化。现有控制流SIMD实现方法在数据流结构上不能获得较好的数据复用性,根据科学计算的特征,本文提出了一种连续上下文SIMD结构,同时对连续的多个数据块进行SIMD计算,获得了较好的数据复用性。数据流结构对片上网络带宽的需求较高,而连续上下文SIMD结构中的SIMD访存地址不连续导致了访存消息的拆分,这加剧了SPU的网络瓶颈。针对科学计算数据可分块的特征,本文进一步提出了一种独立子空间SIMD优化方法,将计算数据进行独立子空间划分,每个子空间对应SIMD中的一个分量,并采用硬件自动重组方式将不同子空间中相同位置的数据组合到片上缓存的连续空间,从而使SIMD访存不再需要拆分,降低片上网络中消息量,提高SPU访存效率。实验表明,针对典型科学应用,在16套片上网络下,相比无SIMD结构,连续上下文SIMD结构将SPU的性能提高了3.48倍。在4套片上网络下,相比连续上下文SIMD结构,独立子空间SIMD优化方法将SPU的性能提高了2.41倍,其面积开销仅为0.004%; 高通量低延迟路由结构。现有控制流处理器的网络传输特征为:单目的地、数据不定长、网络注入率低和性能对延迟不敏感,而SPU的网络传输特征为:多目的地、数据定长、网络注入率高和性能对延迟敏感,这导致了控制流路由结构不适合SPU。因此本文提出了一种面向SPU的高通量低延迟路由结构,采用非分片、输出缓冲和多目的地结构,提高路由的传输效率。实验表明,针对典型科学计算,非分片、输出缓冲和多目的地分别将路由的平均传输延迟降低了126%、21.1%和13.3%。相比面向控制流处理器的路由结构,本文提出的高通量低延迟路由结构将SPU的性能提高了3.58倍,其面积开销仅为15.4%,并通过实验分析出2个目的地为最佳的目的地数量。