一种异构系统中多GPU互连体系结构
技术领域
本发明涉及计算机通信技术领域,具体地说,属于计算机通信领域中异构系统中的GPU硬件配置管理问题,特别是涉及一种异构系统中多GPU互连体系结构。
背景技术
GPU(Graphics Processing Unit),即“图形处理单元”。早期的GPU只负责图形渲染,而大部分的处理都交给了CPU。
近年来,随着计算机硬件技术的发展、处理器和网络性能的提高以及价格的下降,并行计算开始从传统的高性能计算机系统转移到由一组由高性能节点或工作站/PC机构成的称之为集群的计算平台。同时,图形处理领域的GPU的发展速度已远远超过CPU,GPU的发展已逐渐显现出通用化与专用化相融合的趋势。
目前,随着GPU产品的不断更新换代,现在人们可以将以前只有CPU才能够完成的高密集计算任务,通过CPU和GPU的协作来加速实现,从而充分挖掘和有效利用现有的计算资源,发挥GPU在高性能计算方面的潜能和优势,进一步完善现有的高性能体系结构。其中一个重要技术方向就是将拥有高性价比的GPU的并行计算能力加入PC集群系统中,利用GPU的通用计算能力提高集群的计算能力。
在体系结构上,将GPU加入普通PC集群中,对集群的结构并没有做过多变动,只需在PC主板的图形接口总线上加装具有通用计算编程功能的图形显卡即可。但其上的程序设计和编程方法与普通PC集群程序有很大不同。将这些PC或工作站节点通过商用以太网络连接在一起,节点间采用消息传递机制进行数据通信,节点内部计算任务由CPU与GPU分工合作完成。对PC或工作站集群系统扩展GPU计算能力,在硬件实现方面简单可行。
GPGPU集群将PC集群技术和GPU通用计算技术紧密结合,它将GPU推向了分布式计算应用领域。这种集群的节点在CPU的基础上增加了GPU,使得节点内由单一的CPU计算发展为CPU和GPU协同计算的机制。它结合了GPU的强大并行计算能力,具有较高的计算性能、良好的可扩展性和高性价比等优点。
国内在GPU分布式应用方面的研究属于起步阶段,利用GPU作为加速器的高性能计算机已经出现,但是基于GPGPU集群环境的开发和多GPU的体系结构研究尚不深入。目前为了解决多GPU高速互连问题,采用的方法是用单交换芯片(如Tesla C1060)或多交换芯片平行但独立工作交换结构(如Tesla S1070),这种单级的交换结构可扩展性差、功能简单。
发明内容
本发明要解决的技术问题是:克服现有技术缺陷,为了解决现有异构系统中多GPU高速互连问题,并支持可扩展性、接口灵活性等要求,本发明提供一种多级PCI-E交换结构,并实现了透明传输,内存共享等功能。
本发明所采用的技术方案:
一种异构系统中多GPU互连体系结构,在基于多众核加速器(GPU)与多核通用处理器(CPU)相结合的混合异构的高性能计算机系统中,多块GPU以及多块GPU与CPU处理器之间采用基于PCI-E总线的多端口交换芯片进行多级互联,构成对外接口可重构的多级交换结构。
所述的异构系统中多GPU互连体系结构,多级交换结构采用四端口交换芯片,每两片GPU通过四端口交换芯片的一个PCI-E接口互联,建立双路GPU器件间的内部通道,同时,上层的交换芯片提供一个下行端口与下一个四端口交换芯片通信连接,组成分级交换结构。
所述的异构系统中多GPU互连体系结构,四端口交换芯片还提供一个PCI-E接口同多核通用处理器互连,提供一个自定义或IB接口同外部其他计算组件进行数据交换和互联,以太网口进行系统管理维护,JTAG口供组件内加载程序、调试、测试使用。
所述的异构系统中多GPU互连体系结构,系统架构采用Nvidia的TurboCache技术,系统逻辑结构主要包括系统抽象层、系统管理层、应用支撑层和应用开发层4个层次,其中:
1)系统抽象层提供一种基于底层硬件资源的映射模型,在面向众核体系结构的异构处理器系统下,针对不同的指令系统、存储体系和通信机制,实现多粒度大规模线程的事务管理、通信管理、线程管理、数据的存储和传输机制、安全机制,并建立性能评价模型,为后续面向体系结构优化的集群管理系统、编程模型、编译器及开发环境提供支撑;
2)系统管理层:在系统抽象层的基础上,构建系统级异构环境下面向众核的集群管理系统,实现对异构计算资源进行单一映像的监控、配置和调度管理、面向众核体系结构的作业调度管理、异构环境下的数据存储和复制管理、用户管理和安全管理;
3)应用支撑层:建立面向众核体系结构的异构处理器系统下的并行编程模型和标准化参考规范,在系统抽象层和系统管理层的基础上,建立透明的、层次化的混合系统映射机制,同时,结合目前主流的、标准化的并行编程模式,为用户提供统一的编程接口、优化的高性能编译环境及高性能基础数学库;
4)应用开发层:实现面向众核体系结构的异构处理器系统下的应用开发环境,主要包括可视化的并行开发环境、调试环境及性能分析与优化工具,并提供针对特定应用领域高性能算法和函数库。
本发明的有益积极效果:
1、本发明异构系统中多GPU互连体系结构,应用PCI-E交换芯片解决了多GPU、GPU和CPU高速互连问题,是一种具有灵活性、可扩展性硬件体系结构,支持可扩展性、接口灵活性,实现了透明传输,内存共享。创新的采用四端口交换芯片,基于PCI-E总线的对外接口可重构,利用InfiniBand桥接或FPGA灵活配置对外接口,实现对外接口的静态和动态可重构。采用此设计具有如下优点:
1)提供三端口高速PCI-E通道,四端口均为PCI-E X16,带宽为80G;
2)解决了多GPU高速互连问题,多GPU之间可独立或联合工作;
3)同其它组件通信,实现点到点透明传输,减少CPU工作负担;
4)CPU和GPU之间,采用实时分布式处理技术,全面管理GPU,使GPU协调运行。
2、本发明异构系统中多GPU互连体系结构,在多GPU的异构系统中采用了Nvidia的TurboCache(简称TC)技术,可支持GPU直接对系统内存进行存取,而不需要使用加速卡上的本地内存。TurboCache技术允许GPU共享专用内存和动态可用系统内存的容量和带宽,TurboCache技术提升了系统性能,降低了系统对板载内存的要求。采用TurboCache架构的主要功能特点:
1)专利硬件和软件技术,直接渲染到系统内存;
2)TurboCache Manager(TCM)可以动态分配内存以获得最大的系统性能;
3)智能软件算法可以最大化应用程序性能;
4)双向PCI Express带宽配合TurboCache架构,提升了计算性价比。
3、本发明多GPU互连体系结构运行于众核加速器(GPU)与多核通用处理器(CPU)或其它处理器相结合的混合异构的高性能计算机系统中,通过多级PCI-E交换结构把多GPU处理器互连起来,同以往的单级或单级并行结构相比,利用该交换结构即可以支持系统的可扩展性,又可以通过PCI-E总线利用FPGA实现其它协议接口,提供系统接口的灵活性,并通过PCI-E交换芯片实现透明传输功能,实现点到点透明传输,减少CPU工作负担。
附图说明
图1:四端口PCI-E交换示意图;
图2:多极交换结构图;
图3:多极交换结构及四端口PCI-E交换芯片电路原理示意图;
图4:本发明多GPU互连体系结构软件支持环境。
具体实施方式
实施例一:参见图1、图2,本发明异构系统中多GPU互连体系结构,在基于多众核加速器(GPU)与多核通用处理器(CPU)相结合的混合异构的高性能计算机系统中,多块GPU以及多块GPU与CPU处理器之间采用基于PCI-E总线的多端口交换芯片进行多级互联,构成对外接口可重构的多级交换结构。多级交换结构采用四端口交换芯片,每两片GPU通过四端口交换芯片的一个PCI-E接口互联,建立双路GPU器件间的内部通道,同时,上层的交换芯片提供一个下行端口与下一个四端口交换芯片通信连接,组成分级交换结构。
GPU器件的特点决定了GPU只能作为CPU的协处理器来应用,CPU和GPU之间必须紧耦合的联系在一起工作,构成混合异构集群系统。混合异构集群系统从并行层次上可以看做由两层并行体系组成:CPU-CPU、CPU-GPU以及GPU-GPU之间以粗粒度任务并行为主的并行体系;CPU内部、GPU内部以多粒度数据并行为主的并行体系。为了实现可重构和可扩展,多块GPU通过PCI-E交换芯片进行多级互连,如图2。交换芯片可提供与多核通用处理器的PCI-E接口,或通过FPGA、PCI-E到Infiniband桥接,来实现同其它组件的自定义互连或IB互连。
实施例二:参见图1、图2、图3。Tesla C1060只提供了PCI-E接口,因此应用PCI-E交换芯片解决多GPU互联问题。但PCI-E交换芯片只提供一个上行通道,本发明异构系统中多GPU互连体系结构,创新的采用四端口交换芯片,把其中一路下行端口用来与其它组件进行通信。系统内部主要是每两片GPU通过PCI-E接口与PCI-E交换芯片相连,交换芯片的上行又作为另一交换芯片的下行输入,并把最上层的交换芯片其中一路下行端口用来与其它组件进行通信。系统提供自定义或IB接口同外部其他计算组件进行数据交换和互连,以太网口进行系统管理维护,JTAG口供组件内加载程序、调试、测试使用,内部则分别通过PCI-E接口建立双路GPU器件间的内部通道。
1)PCI Express X8接口:通过PCI-E接口与多核通用处理器互连,PCI-E X16可以提供80G带宽,应用PCI Express总线接口与多核通用处理器相连主要有以下几个优点:
a高带宽,利用PCI-E交换芯片,提供四个PCI-E X16端口;
b TurboCache技术利用额外的PCI Express总线带宽达到了超出传统GPU内存解决方案的更高计算性能。
2)InfiniBand接口:本系统可通过IB Interface提供外部数据接口,同外部其它计算组件互连。IB接口是利用PCI-E交换芯片提供的PCI-E接口,实现PCI-E到IB的桥接。
3)自定义接口:本系统也可通过FPGA提供外部数据接口,同外部其它计算组件互连。也是利用PCI-E交换芯片提供的PCI-E接口,应用FPGA的RocketIO GTX接口实现高速串行互连。
实施例三:参见图4。本发明异构系统中多GPU互连体系结构,在多GPU的异构系统中还采用了Nvidia的TurboCache(简称TC)技术,构建面向异构系统协同计算的软件支撑环境,针对混合系统体系结构所带来的特殊性和复杂性,充分挖掘通用处理器和专用加速器在处理特定问题方面的高性能优势,构建以CPU多核体系结构和GPU众核体系结构为基础的异构处理器协同计算环境,实现面向众核体系结构的GPU-CPU高性能集群管理系统、编程模型及相关软件开发环境。可支持GPU直接对系统内存进行存取,而不需要使用加速卡上的本地内存。TurboCache技术允许GPU共享专用内存和动态可用系统内存的容量和带宽,TurboCache技术提升了系统性能,降低了系统对板载内存的要求。
参见图4,从系统逻辑结构上看,软件支撑环境主要包括系统抽象层、系统管理层、应用支撑层和应用开发层4个层次。
1)系统抽象层:系统抽象层提供了一种基于底层硬件资源的映射模型。主要解决在面向众核体系结构的异构处理器系统下,针对不同的指令系统、存储体系和通信机制,如何实现多粒度大规模线程的事务管理、通信管理、线程管理、数据的存储和传输机制、安全机制等问题,并建立性能评价模型,为后续面向体系结构优化的集群管理系统、编程模型、编译器及开发环境提供支撑。
2)系统管理层:系统管理层是在系统抽象层的基础上,构建系统级异构环境下面向众核的集群管理系统。主要解决如何对异构计算资源进行单一映像的监控、配置和调度管理、面向众核体系结构的作业调度管理、异构环境下的数据存储和复制管理、用户管理和安全管理等。
3)应用支撑层:应用支撑层主要是建立面向众核体系结构的异构处理器系统下的并行编程模型和标准化参考规范。重点解决如何在系统抽象层和系统管理层的基础上,建立透明的、层次化的混合系统映射机制(包括资源映射、概念映射、数据映射、模式映射和算法映射),为用户在针对体系结构进行算法设计、实现和优化等方面提供指导。同时,结合目前主流的、标准化的并行编程模式,为用户提供统一的编程接口、优化的高性能编译环境、及高性能基础数学库。
4)应用开发层:应用开发层主要是设计并实现面向众核体系结构的异构处理器系统下的应用开发环境。主要包括可视化的并行开发环境、调试环境及性能分析与优化工具,并提供针对特定应用领域高性能算法和函数库。