一种基于CPU+GPU+FPGA架构的异构计算系统和方法技术方案

技术编号:16427773 阅读:109 留言:0更新日期:2017-10-21 22:28
本发明专利技术提供一种基于CPU+GPU+FPGA架构的异构计算系统,包括CPU主机单元、一个或多个GPU异构加速单元和一个或多个FPGA异构加速单元,CPU主机单元分别与GPU异构加速单元、FPGA异构加速单元通信连接,其中:CPU主机单元用于资源管理,以及将处理任务分配给GPU异构加速单元和/或FPGA异构加速单元;GPU异构加速单元对来自CPU主机单元的任务进行并行处理;FPGA异构加速单元对来自CPU主机单元的任务进行串行或并行处理。本发明专利技术提供的异构计算系统能够充分发挥CPU的管控优势、GPU的并行处理优势、FPGA的性能功耗比并且具有灵活配置的优势,可适应不同的应用场景,满足不同类型的任务需求。本发明专利技术还提供一种基于CPU+GPU+FPGA架构的异构计算方法。

A heterogeneous computing system and method based on CPU+GPU+FPGA architecture

The invention provides a CPU+GPU+FPGA based heterogeneous computing system, including CPU host unit, one or more GPU heterogeneous acceleration unit and one or more FPGA heterogeneous acceleration unit, CPU unit and GPU unit, respectively heterogeneous acceleration of FPGA heterogeneous acceleration unit communication connection, wherein: CPU host unit for resource management. And will handle the tasks assigned to the heterogeneous GPU acceleration unit and / or FPGA heterogeneous acceleration unit; GPU heterogeneous parallel processing to the acceleration unit from the CPU host unit task; FPGA heterogeneous acceleration unit from the CPU host unit task serial or parallel processing. The invention provides a heterogeneous computing performance of power system can give full play to the advantages of CPU control, GPU FPGA has the advantage of parallel processing, flexible configuration advantages over and can adapt to different application scenarios, meet the different task requirements. The invention also provides a heterogeneous computing method based on the CPU+GPU+FPGA architecture.

【技术实现步骤摘要】
一种基于CPU+GPU+FPGA架构的异构计算系统和方法
本专利技术涉及异构计算
,具体涉及一种基于CPU+GPU+FPGA架构的异构计算系统和方法。
技术介绍
现代社会信息量的暴增对计算机的计算性能提出了更高的要求,通过纵向提高CPU的处理性能已经遇到了制作工艺、功耗等技术瓶颈。CPU的内核架构决定了其比较擅长于处理不规则数据结构和不可预测的存取模式,以及递归算法、分支密集型代码和单线程程序。GPU和FPGA的内部架构决定了其具有较强的并行处理能力,使其更擅长于处理计算密集型任务。现有技术中,GPU虽然能够有效提高计算性能,但存在着功耗高的问题,FPGA能够有效降低功耗,具有较高的性能功耗比,但FPGA的峰值性能要逊色于GPU。目前高性能计算领域中存在着计算任务之庞大,处理任务类型之繁多等问题,例如,有些应用场景更看重计算性能,而不太关注能耗问题,而有些应用场景既看重计算性能又要求功耗尽可能低,有些应用程序比较适合通过FPGA进行加速,而有些应用程序比较适合通过GPU进行加速。因此需要提出一种新型的计算系统,以适应上述不同的应用场景、满足不同类型的任务需求。
技术实现思路
针对上述现有技术中的问题,需要针对不同应用场景和不同任务需求进行有针对性的计算,本专利技术的目的在于提供一种基于CPU+GPU+FPGA架构的异构计算系统和方法。为了实现上述目的,本专利技术采用的技术方案如下:根据本专利技术,提供了一种基于CPU+GPU+FPGA架构的异构计算系统,包括CPU主机单元、一个或多个GPU异构加速单元和一个或多个FPGA异构加速单元,CPU主机单元分别与GPU异构加速单元、FPGA异构加速单元通信连接,其中:CPU主机单元用于资源管理,以及将处理任务分配给GPU异构加速单元和/或FPGA异构加速单元;GPU异构加速单元对来自CPU主机单元的任务进行并行处理;FPGA异构加速单元对来自CPU主机单元的任务进行串行或并行处理。进一步地,GPU异构加速单元由OpenCL语言编程;FPGA异构加速单元由OpenCL语言编程。进一步地,通过OpenCLICDLoader将GPU异构加速单元和FPGA异构加速单元统一到一起,OpenCLICDLoader提供所有OpenCLAPI接口。进一步地,GPU异构加速单元包括OpenCL平台、运行支持库、编译器和OpenCL驱动;FPGA异构加速单元包括OpenCL平台、运行支持库、编译器和OpenCL驱动。进一步地,CPU主机单元通过PCIe与GPU异构加速单元进行通信;CPU主机单元通过PCIe与FPGA异构加速单元进行通信。进一步地,FPGA异构加速单元包括固定区和可重构区,其中可重构区能够实现kernel算法的重新配置。进一步地,GPU异构加速单元和/或FPGA异构加速单元包括DDR4内存。根据本专利技术,提供了一种基于CPU+GPU+FPGA架构的异构计算方法,包括以下步骤:S00:CPU主机单元对任务进行预处理,并且将所述任务分类为第一类任务和第二类任务;S10:CPU主机单元通过调用OpenCLICDLoader来获取GPU异构加速单元和FPGA异构加速单元的列表;S20:CPU主机单元将第一类任务分配给列表中对应的GPU异构加速单元,并且将第二类任务分配给列表中对应的FPGA异构加速单元;S30:GPU异构加速单元对第一类任务进行并行处理,在处理完后以中断的形式通知CPU主机单元,并且将计算结果传给CPU主机单元;FPGA异构加速单元对第二类任务进行串行或并行处理,在处理完后以中断的形式通知CPU主机单元,并且将计算结果传给CPU主机单元;S40:CPU主机单元读取计算结果后,进行整合、后处理,再将最终结果返给用户。进一步地,第一类任务为要求高运算速度的任务或图像处理任务;第二类任务为要求低功耗运行的任务、接口通信任务或数据加解密任务。进一步地,步骤S30中:GPU异构加速单元处理的结果和/或FPGA异构加速单元处理的结果通过PCIe传给CPU主机单元。本专利技术通过以上技术方案,能够获得以下有益技术效果:通过设置分别与CPU主机单元通信连接的GPU异构加速单元和FPGA异构加速单元,可以根据不同场景,以及对运算峰值和速度的要求或对功耗的要求,来调整分配给GPU异构加速单元和FPGA异构加速单元的任务,从而满足以上要求;CPU主机单元作为主机负责处理资源管理、任务分配等工作,GPU异构加速单元与FPGA异构加速单元负责处理计算密集型任务。GPU异构加速单元强大的并行处理能力能够更好地图像处理、模式识别、机器学习任务。本专利技术的异构计算系统,能够充分发挥CPU的管控优势、GPU的并行处理优势、FPGA的性能功耗比并且具有灵活配置的优势,可适应不同的应用场景,满足不同类型的任务需求。当然,实施本专利技术的任一产品必不一定需要同时达到以上所述的所有技术效果。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本专利技术的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本专利技术实施例所述的基于CPU+GPU+FPGA架构的异构计算系统的示意图;图2为本专利技术实施例所述的基于CPU+GPU+FPGA架构的异构计算系统的结构示意图;图3为本专利技术实施例所述的基于CPU+GPU+FPGA架构的异构计算系统一个示例的示意图;图4为本专利技术实施例所述的基于CPU+GPU+FPGA架构的异构计算方法的流程图。具体实施方式如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包括”为一开放式用语,故应解释成“包括但不限定于”。说明书后续描述为实施本专利技术的较佳实施方式,然所述描述乃以说明本专利技术的一般原则为目的,并非用以限定本专利技术的范围。本专利技术的保护范围当视所附权利要求所界定者为准。本专利技术的一个实施例中,如图1-2所示,本实施例提供的基于CPU+GPU+FPGA架构的异构计算系统,包括CPU主机单元1、一个或多个GPU异构加速单元2和一个或多个FPGA异构加速单元3。其中CPU主机单元1分别与GPU异构加速单元2、FPGA异构加速单元3通信连接,具体地,CPU主机单元1通过PCIe与GPU异构加速单元2进行通信和/或FPGA异构加速单元3进行通信,具体地,PCIe为PCIe3.0、PCIe3.0-DMA。GPU异构加速单元2和FPGA异构加速单元3为加速器,负责对计算密集型任务进行加速。CPU主机单元1用于资源管理,以及将处理任务分配给GPU异构加速单元2和/或FPGA异构加速单元3,尤其是将计算量大的任务按照任务类型分配给GPU异构加速单元2和FPGA异构加速单元3,以发挥GPU异构加速单元2和FPGA异构加速单元3中的GPU和FPGA各自的性能优势;GPU异构加速单元2对来自CPU主机单元1的任务进行并行处理;FPGA异构加速单元3对来自CPU主机单元1的任务进行串行或并行处理。GPU异构加速单元2和FPGA异构加速单元3由OpenCL语言编程。通过本文档来自技高网...
一种基于CPU+GPU+FPGA架构的异构计算系统和方法

【技术保护点】
一种基于CPU+GPU+FPGA架构的异构计算系统,其特征在于,包括CPU主机单元(1)、一个或多个GPU异构加速单元(2)和一个或多个FPGA异构加速单元(3),所述CPU主机单元(1)分别与所述GPU异构加速单元(2)、所述FPGA异构加速单元(3)通信连接,其中:所述CPU主机单元(1)用于资源管理,以及将处理任务分配给所述GPU异构加速单元(2)和/或所述FPGA异构加速单元(3);所述GPU异构加速单元(2)对来自所述CPU主机单元(1)的任务进行并行处理;所述FPGA异构加速单元(3)对来自所述CPU主机单元(1)的任务进行串行或并行处理。

【技术特征摘要】
1.一种基于CPU+GPU+FPGA架构的异构计算系统,其特征在于,包括CPU主机单元(1)、一个或多个GPU异构加速单元(2)和一个或多个FPGA异构加速单元(3),所述CPU主机单元(1)分别与所述GPU异构加速单元(2)、所述FPGA异构加速单元(3)通信连接,其中:所述CPU主机单元(1)用于资源管理,以及将处理任务分配给所述GPU异构加速单元(2)和/或所述FPGA异构加速单元(3);所述GPU异构加速单元(2)对来自所述CPU主机单元(1)的任务进行并行处理;所述FPGA异构加速单元(3)对来自所述CPU主机单元(1)的任务进行串行或并行处理。2.根据权利要求1所述的异构计算系统,其特征在于:所述GPU异构加速单元(2)由OpenCL语言编程;所述FPGA异构加速单元(3)由OpenCL语言编程。3.根据权利要求2所述的异构计算系统,其特征在于:通过OpenCLICDLoader将所述GPU异构加速单元(2)和所述FPGA异构加速单元(3)统一到一起,所述OpenCLICDLoader提供所有OpenCLAPI接口。4.根据权利要求2所述的异构计算系统,其特征在于:所述GPU异构加速单元(2)包括OpenCL平台、运行支持库、编译器和OpenCL驱动;所述FPGA异构加速单元(3)包括OpenCL平台、运行支持库、编译器和OpenCL驱动。5.根据权利要求1所述的异构计算系统,其特征在于:所述CPU主机单元(1)通过PCIe与所述GPU异构加速单元(2)进行通信;所述CPU主机单元(1)通过PCIe与所述FPGA异构加速单元(3)进行通信。6.根据权利要求1所述的异构计算系统,其特征在于:所述FPGA异构加速单元(3)包括...

【专利技术属性】
技术研发人员:赵瑞东彭福来于治楼陈乃阔牛玉峰
申请(专利权)人:山东超越数控电子有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1