论文部分内容阅读
高性能计算是科学和工程领域的关键基础技术,致力于研究和开发高性能计算机相关的硬件体系结构及软件技术。高性能计算的技术被广泛应用于各个领域如云计算、大数据处理及物联网等以提高实验规模和效率,推动各个领域取得突破性进展。世界超级计算机五百强等排名是各国高性能计算研究实力乃至于综合国力的体现。高性能计算机系统可根据硬件分为同构系统和异构系统,由CPU和GPU(Graphics Processing Unit)等不同种类处理器构成的系统为异构系统,在性能和能效方面具备优势。基于CPU和GPU异构架构的高性能计算技术称为GPU高性能计算,是当前的一个热门研究领域。本文以提高GPU高性能计算的能效和性能,拓展其应用为目标,从体系结构研究、系统软件研究和应用研究这三个层次上提出一些软硬件新技术。本文的第一部分工作提出高能效的新GPU处理器架构。近年来,GPU以其高并行度、高能效和高访存带宽的优势,被广泛部署在超级计算机、数据中心及科研平台上用于加速各种科学计算。大型计算机系统的高能耗一直是研究者们努力解决的问题。GPU处理器中负责处理指令的前端部件是处理器中较为耗能的部件之一。我们提出将GPU内的多个流多处理器进行划分,将邻近的数个流多处理器组合起来同步运行,通过共享前端而节能的新GPU处理器架构。为了实现新架构的正确高效运行,我们研究在合适的时机建立前端共享、解除共享及重建共享的机制,以及支持新处理器架构的硬件实现和提高新处理器架构性能的方法。实验证明,新GPU架构可显著降低GPU前端部分耗能,从而提高整个处理器的能效。本文的第二部分工作研究提高GPU高性能计算性能的系统软件方法和技术。作为主要的高度并行加速器,GPU被应用于加速各种高吞吐率的规则应用并取得了显著的加速比。然而,数据挖掘、物理模拟和优化理论等诸多领域的算法需构造、遍历或更新不规则的数据结构如树、图和优先级队列等,在GPU上运行时表现出不可预测的,依赖于输入的不规则行为,和GPU的SIMT(单指令流多线程)架构不匹配而性能不佳。我们通过研究发现线程级的负载不均衡是导致一些不规则应用在GPU上性能下降的主要问题之一,因此提出任务池软件方法用于均衡线程的负载。任务池方法是GPU上首个可在线程层次进行负载均衡的方法。我们实现一个开源软件库,可用于不规则应用在GPU上运行的特征化和负载均衡。我们运用CUIRRE软件库特征化和优化了数个真实的不规则应用,使它们的性能得到了明显的提升。本文的第三部分工作探索将GPU运用于不规则大数据(Big Data)处理。大数据是当今的研究热点之一。Gartner报告预计世界上的数据在近5年会增长8倍,且其中8成的数据会是不规则的,而许多不规则大数据如社交网络数据等均以图的方式存放。如何高效处理大规模的图数据获得有用信息是很多领域诸如数据分析、网络搜索和推荐系统等的迫切需求。我们设计并实现一个非分布式的通用图数据处理软件平台,具备有效的图划分、存储和预加载机制,可在CPU和GPU异构的单台PC上高效处理超过内存大小的大规模图数据。通过实验验证新平台具备较优的性能和能效。运用以上三部分工作的软硬件技术,可提高现有GPU高性能计算的性能和能效,扩大其应用范围。