论文部分内容阅读
异构并行系统通常是指由中央处理器(Central Processing Unit,CPU)与图形处理器(Graphics Processing Unit,GPU)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)等协处理器共同组成的计算方式异构的高性能计算系统,因能提供更为高效的应用加速能力而被广泛部署,在大数据、人工智能等众多关键领域得到了广泛应用。当前,异构并行系统是计算机系统领域的研究热点。其中,如何高效实现异构并行系统计算资源的协同调度已成为关键难题,极大影响着异构并行系统的负载均衡能力、任务并发能力和整体性能。
异构并行系统计算资源的协同调度难题主要包含三个方面的问题:1)如何提升CPU与协处理器之间的负载均衡能力,最大化异构并行系统的计算资源利用率。现有以任务迁移为基础的CPU-GPU任务调度机制存在调度粒度粗、迁移代价大等问题,难以高效应对因负载波动引起的负载不均衡问题;2)如何提升CPU与协处理器所共同执行任务的并发性能。现有GPU虚拟化技术存在资源占用过高、并发能力低等问题,拖累CPU-GPU异构并行系统的整体并发能力较低;3)如何实现计算任务在CPU与协处理器之间合理调度与分配,大幅减少因任务协作导致的交互开销。受限于当前FPGA平台与CPU之间进行交互时的高延时与低带宽特性,不合理的任务动/静态分配不仅加剧了异构并行系统的协作开销,也极大降低了整体系统计算性能。
鉴于GPU和基于FPGA的特定领域加速器在各类应用中得到了广泛应用,因此以两类常用的并行系统为研究对象:CPU-GPU异构并行系统和CPU-FPGA加速器异构并行系统,深入开展研究。为实现更高效的异构计算资源的协同调度,分别提出了面向负载均衡的CPU-GPU任务协同调度技术、面向高并发的CPU-GPU任务协同调度技术以及基于任务特征的CPU与FPGA加速器的协同调度技术。
面向负载均衡的CPU-GPU任务协同调度技术主要为异构计算系统提供面向资源高效利用的负载均衡保障。通过冗余计算技术、GPU间动态任务调度技术以及动态任务迁移技术,建立起更细粒度的、少数节点的、开销可控的动态协作机制,设计了契合而高效的动态负载均衡模型,并设计了快速算法实现动态的负载均衡调度。实验表明,该机制不仅较好地解决了负载不均衡问题,也降低了调度中的任务迁移代价低。
面向高并发的CPU-GPU任务协同调度技术主要针对提升延时敏感、多资源需求的在线任务的并发性能。利用CPU和GPU负载的解耦合和轻量级的负载迁移机制,规避了虚拟化平台对GPU硬件特征支持不足的问题,解决了资源瓶颈的问题。同时将任务进行细粒度划分,设计高并发调度机制。以典型应用云游戏为应用案例,实验结果表明,该机制在保证基本的服务质量前提下,实现了最高4倍的并发性能提升,并减少了资源浪费。
基于任务特征的CPU与FPGA加速器的协同调度技术致力于降低CPU与FPGA加速器的协作开销,提升软硬件的协作效率。该技术以当下最流行的加速卷积神经网络计算为例,根据任务特征静态地为CPU与加速器划分协作任务,设计了支持细粒度协作的、基于Winograd快速算法的加速器,并在运行时基于理论性能预测,动态地进行数据划分,实现CPU与加速器的协同调度。实验表明,该设计相较于CPU实现了4倍的性能提升,相较于基于快速傅里叶变换的加速器,以45%的硬件资源消耗,实现了1.13倍的性能提升。最后从理论上证明该设计仍有5倍的潜在性能提升。
本文提出的方法能有效提升异构计算系统的负载均衡能力、系统并发度以及实现更高效的软硬协同,提升整体性能,具有较高实用价值和应用前景。
异构并行系统计算资源的协同调度难题主要包含三个方面的问题:1)如何提升CPU与协处理器之间的负载均衡能力,最大化异构并行系统的计算资源利用率。现有以任务迁移为基础的CPU-GPU任务调度机制存在调度粒度粗、迁移代价大等问题,难以高效应对因负载波动引起的负载不均衡问题;2)如何提升CPU与协处理器所共同执行任务的并发性能。现有GPU虚拟化技术存在资源占用过高、并发能力低等问题,拖累CPU-GPU异构并行系统的整体并发能力较低;3)如何实现计算任务在CPU与协处理器之间合理调度与分配,大幅减少因任务协作导致的交互开销。受限于当前FPGA平台与CPU之间进行交互时的高延时与低带宽特性,不合理的任务动/静态分配不仅加剧了异构并行系统的协作开销,也极大降低了整体系统计算性能。
鉴于GPU和基于FPGA的特定领域加速器在各类应用中得到了广泛应用,因此以两类常用的并行系统为研究对象:CPU-GPU异构并行系统和CPU-FPGA加速器异构并行系统,深入开展研究。为实现更高效的异构计算资源的协同调度,分别提出了面向负载均衡的CPU-GPU任务协同调度技术、面向高并发的CPU-GPU任务协同调度技术以及基于任务特征的CPU与FPGA加速器的协同调度技术。
面向负载均衡的CPU-GPU任务协同调度技术主要为异构计算系统提供面向资源高效利用的负载均衡保障。通过冗余计算技术、GPU间动态任务调度技术以及动态任务迁移技术,建立起更细粒度的、少数节点的、开销可控的动态协作机制,设计了契合而高效的动态负载均衡模型,并设计了快速算法实现动态的负载均衡调度。实验表明,该机制不仅较好地解决了负载不均衡问题,也降低了调度中的任务迁移代价低。
面向高并发的CPU-GPU任务协同调度技术主要针对提升延时敏感、多资源需求的在线任务的并发性能。利用CPU和GPU负载的解耦合和轻量级的负载迁移机制,规避了虚拟化平台对GPU硬件特征支持不足的问题,解决了资源瓶颈的问题。同时将任务进行细粒度划分,设计高并发调度机制。以典型应用云游戏为应用案例,实验结果表明,该机制在保证基本的服务质量前提下,实现了最高4倍的并发性能提升,并减少了资源浪费。
基于任务特征的CPU与FPGA加速器的协同调度技术致力于降低CPU与FPGA加速器的协作开销,提升软硬件的协作效率。该技术以当下最流行的加速卷积神经网络计算为例,根据任务特征静态地为CPU与加速器划分协作任务,设计了支持细粒度协作的、基于Winograd快速算法的加速器,并在运行时基于理论性能预测,动态地进行数据划分,实现CPU与加速器的协同调度。实验表明,该设计相较于CPU实现了4倍的性能提升,相较于基于快速傅里叶变换的加速器,以45%的硬件资源消耗,实现了1.13倍的性能提升。最后从理论上证明该设计仍有5倍的潜在性能提升。
本文提出的方法能有效提升异构计算系统的负载均衡能力、系统并发度以及实现更高效的软硬协同,提升整体性能,具有较高实用价值和应用前景。