一种基于CPU+FPGA异构计算系统及其加速方法技术方案

技术编号:19388815 阅读:31 留言:0更新日期:2018-11-10 02:00
本发明专利技术公开一种基于CPU+FPGA异构计算系统,涉及异构计算技术领域,采用多个FPGA加速单元协同CPU主控单元完成同一计算任务;CPU主控单元负责逻辑判断、管理控制,对FPGA加速单元进行计算任务分配;FPGA加速单元负责对计算任务进行加速;FPGA加速单元内部划分为静态区域:负责实现PCIe‑DMA通信、SRIO通信、DDR控制;以及动态可重构区域:执行CPU主控单元下发的kernel函数,对计算任务进行加速。本发明专利技术针对不同的任务类型,实现对计算任务的并行加速处理与流水加速处理,能够大幅提升任务处理的吞吐率,缩短任务执行时间,极大提高计算机的计算性能。

A heterogeneous computing system based on CPU+FPGA and its acceleration method

The invention discloses a heterogeneous computing system based on CPU+FPGA, which relates to the field of heterogeneous computing technology, and uses several accelerating units of FPGA to cooperate with the main control unit of CPU to accomplish the same computing task; the main control unit of CPU is responsible for logical judgment, management and control, and assigns computing tasks to the accelerating unit of FPGA; and the accelerating unit of FPGA is responsible for computing tasks. Acceleration is carried out; the acceleration unit of the FPGA is divided into static areas: responsible for implementing PCIe DMA communication, SRIO communication, DDR control; and dynamic reconfigurable areas: executing the kernel function issued by the CPU main control unit to accelerate the calculation task. The invention realizes parallel acceleration processing and pipeline acceleration processing for computing tasks according to different task types, which can greatly improve the throughput of task processing, shorten the execution time of tasks and greatly improve the computing performance of computers.

【技术实现步骤摘要】
一种基于CPU+FPGA异构计算系统及其加速方法
本专利技术涉及异构计算
,具体的说是一种基于CPU+FPGA异构计算系统及其加速方法。
技术介绍
大数据,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据不适用随机分析法抽样调查,而采用所有数据进行分析处理。大数据具有如下特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。人工智能(ArtificialIntelligence,简称AI),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新技术科学。人工智能是计算机科学的一个分支,目的在于生产出一种新的能以人类智慧相似的方式作出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或恶意的原因遭受到破坏、更好、泄露,系统连续可靠正常地运行,网络服务不中断。网络安全主要特性包括:保密性、完整性、可用性、可控性、可审查性。上述大数据、人工智能、网络安全等领域对计算机的计算性能提出了较高要求,通过纵向提高CPU的处理性能已经遇到了制作工艺、功耗等技术瓶颈。为了进一步提高计算机的计算性能,CPU+协处理器的异构加速模式成为主流技术手段。常用的协处理器有GPU、FPGA等加速器件,由于FPGA具有较高的性能功耗比,备受业界关注。传统的CPU+FPGA异构计算一般采用一个FPGA计算卡,加速能力有限,无法满足一些大型计算任务量的计算需求。因此,本专利技术提出了运用多个FPGA计算卡+CPU的异构计算系统,来克服目前使用一个FPGA计算卡加速性能受限的缺点,进一步提高计算机的计算性能以满足日益增加的计算需求。
技术实现思路
本专利技术针对目前技术发展的需求和不足之处,提供一种基于CPU+FPGA异构计算系统及其加速方法。本专利技术所述一种基于CPU+FPGA异构计算系统,解决上述技术问题采用的技术方案如下:所述基于CPU+FPGA异构计算系统采用OpenCL编程模型进行编程;其系统架构包括:CPU主控单元和若干FPGA加速单元;所述FPGA加速单元通过PCIe-DMA总线与CPU主控单元互联通信;若干FPGA加速单元协同CPU主控单元完成同一计算任务,所述CPU主控单元,负责逻辑判断、管理控制,对FPGA加速单元进行计算任务分配;所述FPGA加速单元,设置多个,负责对计算任务进行加速;多个FPGA加速单元之间采用SRIO总线互联通信;所述FPGA加速单元内部划分为静态区域、动态可重构区域两部分;所述静态区域,负责实现PCIe-DMA通信、SRIO通信、DDR控制器功能;所述动态可重构区域,用来执行CPU主控单元下发的kernel函数,对计算任务进行加速。具体的,所述CPU主控单元下发的kernel函数采用离线编译方式进行事先编译,生成FPGA加速单元可执行文件;所述CPU主控单元通过OpenCL的运行支持库实现FPGA加速单元可执行文件的下发。具体的,所述FPGA加速单元配置成多种加速模式,包括:并行加速模式、流水加速模式、流水与并行混合加速模式;所述FPGA加速单元的并行加速模式:每个FPGA加速单元内部部署多个相同的算法模块kernel,待处理数据通过CPU主控单元进行管理,并下发到FPGA加速单元,算法模块并行执行对数据并行处理,并将处理结果发送给CPU主控单元进行整合;所述FPGA加速单元的流水加速模式:每个FPGA加速单元内部部署不同的算法模块kernel,算法模块之间具有逻辑级联关系,每一个算法模块将处理完的数据输出到下一级算法模块,下一级算法模块接收上一级算法模块的输出数据,并对数据进一步处理;每一个算法模块处理完本地数据后,通过中断的方式通知下一级算法模块,以接收新的处理数据;所述FPGA加速单元的流水与并行混合加速模式:同一FPGA加速单元内部部署多个相同的算法模块kernel,不同FPGA加速单元内部部署不同的算法模块;上一级FPGA加速单元对数据进行并行处理,并将结果传输给下一级FPGA加速单元进行进一步处理。具体的,所述CPU主控单元与FPGA加速单元之间采用PCIe3.0x8总线进行通信;所述CPU主控单元通过PCIeSwitch对PCIe接口进行扩展,所述FPGA加速单元连接到PCIeSwitch扩展出的PCIe接口上;所述FPGA加速单元提供SRIOx4接口,通过SRIOx4接口实现与其他FPGA异构计算单元的通信;通过该互联结构,多个FPGA加速单元之间实现计算任务的流水并行处理。具体的,所述FPGA加速单元采用XilinxKU115芯片;所述FPGA加速单元内部部署的算法模块kernel,采用C/C++高级语言进行开发,或者采用RTL传统方式进行开发;所述FPGA加速单元内部算法模块kernel之间采用pipe进行数据传输。本专利技术还提出了一种基于CPU+FPGA异构计算系统的加速方法,主要内容包括:采用多个FPGA加速单元协同CPU主控单元完成同一计算任务;多个FPGA加速单元协同CPU主控单元形成CPU+FPGA异构计算系统,该CPU+FPGA异构计算系统采用OpenCL编程模型进行编程;所述FPGA加速单元通过PCIe-DMA总线与CPU主控单元互联通信;多个FPGA加速单元之间采用SRIO总线互联通信;由所述CPU主控单元负责逻辑判断、管理控制、对FPGA加速单元进行计算任务分配;由所述FPGA加速单元对计算任务进行加速,并且FPGA加速单元内部分为静态区域、动态可重构区域;通过FPGA加速单元的静态区域进行PCIe-DMA通信、SRIO通信、DDR控制;通过FPGA加速单元的动态可重构区域执行CPU主控单元下发的kernel函数,对计算任务进行加速。具体的,所述CPU主控单元下发的kernel函数采用离线编译方式进行事先编译,生成FPGA加速单元可执行文件;所述CPU主控单元通过OpenCL的运行支持库实现FPGA加速单元可执行文件的下发。具体的,将FPGA加速单元配置成多种加速模式,包括:并行加速模式、流水加速模式、流水与并行混合加速模式;所述并行加速模式的流程包括:所有FPGA加速单元中部署多个相同的算法模块kernel,算法模块之间并行执行,CPU主控单元作为管理单元,将待处理的不同数据段下发到不同的算法模块进行处理,算法模块并行处理各数据段,并将处理结果返回到CPU主控单元,CPU主控单元对处理结果进行整合;所述流水加速模式的流程包括:每个FPGA内部署不同的算法模块kernel,算法模块之间具有逻辑级联关系,CPU主控单元将待处理数据下发到第一个算法模块进行处理,第一个算法模块将处理结果输入到第二个算法模块进一步处理,第二个算法模块再传给第三个算法模块,以此类推,当每一个算法模块处理完成后,以中断的方式通知上一级算法模块,以接收新的处理数据;所述流水与并行混合加速模式的流程包括:同一FPGA加速单元内部部署多个相同的算法模块kernel,不本文档来自技高网
...

【技术保护点】
1.一种基于CPU+FPGA异构计算系统,其特征在于,采用OpenCL编程模型进行编程;其系统架构包括:CPU主控单元和若干FPGA加速单元;所述FPGA加速单元通过PCIe‑DMA总线与CPU主控单元互联通信;若干FPGA加速单元协同CPU主控单元完成同一计算任务,所述CPU主控单元,负责逻辑判断、管理控制,对FPGA加速单元进行计算任务分配;所述FPGA加速单元,设置多个,负责对计算任务进行加速;多个FPGA加速单元之间采用SRIO总线互联通信;所述FPGA加速单元内部划分为静态区域、动态可重构区域两部分;所述静态区域,负责实现PCIe‑DMA通信、SRIO通信、DDR控制器功能;所述动态可重构区域,用来执行CPU主控单元下发的kernel函数,对计算任务进行加速。

【技术特征摘要】
1.一种基于CPU+FPGA异构计算系统,其特征在于,采用OpenCL编程模型进行编程;其系统架构包括:CPU主控单元和若干FPGA加速单元;所述FPGA加速单元通过PCIe-DMA总线与CPU主控单元互联通信;若干FPGA加速单元协同CPU主控单元完成同一计算任务,所述CPU主控单元,负责逻辑判断、管理控制,对FPGA加速单元进行计算任务分配;所述FPGA加速单元,设置多个,负责对计算任务进行加速;多个FPGA加速单元之间采用SRIO总线互联通信;所述FPGA加速单元内部划分为静态区域、动态可重构区域两部分;所述静态区域,负责实现PCIe-DMA通信、SRIO通信、DDR控制器功能;所述动态可重构区域,用来执行CPU主控单元下发的kernel函数,对计算任务进行加速。2.根据权利要求1所述一种基于CPU+FPGA异构计算系统,其特征在于,所述CPU主控单元下发的kernel函数采用离线编译方式进行事先编译,生成FPGA加速单元可执行文件;所述CPU主控单元通过OpenCL的运行支持库实现FPGA加速单元可执行文件的下发。3.根据权利要求2所述一种基于CPU+FPGA异构计算系统,其特征在于,所述FPGA加速单元配置成多种加速模式,包括:并行加速模式、流水加速模式、流水与并行混合加速模式;所述FPGA加速单元的并行加速模式:每个FPGA加速单元内部部署多个相同的算法模块kernel,待处理数据通过CPU主控单元进行管理,并下发到FPGA加速单元,算法模块并行执行对数据并行处理,并将处理结果发送给CPU主控单元进行整合;所述FPGA加速单元的流水加速模式:每个FPGA加速单元内部部署不同的算法模块kernel,算法模块之间具有逻辑级联关系,每一个算法模块将处理完的数据输出到下一级算法模块,下一级算法模块接收上一级算法模块的输出数据,并对数据进一步处理;每一个算法模块处理完本地数据后,通过中断的方式通知下一级算法模块,以接收新的处理数据;所述FPGA加速单元的流水与并行混合加速模式:同一FPGA加速单元内部部署多个相同的算法模块kernel,不同FPGA加速单元内部部署不同的算法模块;上一级FPGA加速单元对数据进行并行处理,并将结果传输给下一级FPGA加速单元进行进一步处理。4.根据权利要求3所述一种基于CPU+FPGA异构计算系统,其特征在于,所述CPU主控单元与FPGA加速单元之间采用PCIe3.0x8总线进行通信;所述CPU主控单元通过PCIeSwitch对PCIe接口进行扩展,所述FPGA加速单元连接到PCIeSwitch扩展出的PCIe接口上;所述FPGA加速单元提供SRIOx4接口,通过SRIOx4接口实现与其他FPGA异构计算单元的通信;通过该互联结构,多个FPGA加速单元之间实现计算任务的流水并行处理。5.根据权利要求4所述一种基于CPU+FPGA异构计算系统,其特征在于,具体的,所述FPGA加速单元采用XilinxKU115芯片;所述FPGA加速单元内部部署的算法模块kernel,采用C/C++高级语言进行开发,或者采用RTL传统方式进行开发;所述FPGA加速单元内部算法模块kernel之间采用pipe进行数据传输。6.一种基于CPU+FPGA异构计算系统的加速方法,其特征在于,采用多个FPG...

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

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

1