CN108776649A - 一种基于cpu+fpga异构计算系统及其加速方法 - Google Patents

一种基于cpu+fpga异构计算系统及其加速方法 Download PDF

Info

Publication number
CN108776649A
CN108776649A CN201810593724.XA CN201810593724A CN108776649A CN 108776649 A CN108776649 A CN 108776649A CN 201810593724 A CN201810593724 A CN 201810593724A CN 108776649 A CN108776649 A CN 108776649A
Authority
CN
China
Prior art keywords
fpga
fpga accelerator
accelerator modules
cpu
main control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810593724.XA
Other languages
English (en)
Inventor
彭福来
于治楼
陈乃阔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Chaoyue CNC Electronics Co Ltd
Original Assignee
Shandong Chaoyue CNC Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Chaoyue CNC Electronics Co Ltd filed Critical Shandong Chaoyue CNC Electronics Co Ltd
Priority to CN201810593724.XA priority Critical patent/CN108776649A/zh
Publication of CN108776649A publication Critical patent/CN108776649A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)

Abstract

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

Description

一种基于CPU+FPGA异构计算系统及其加速方法
技术领域
本发明涉及异构计算技术领域,具体的说是一种基于CPU+FPGA异构计算系统及其加速方法。
背景技术
大数据,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据不适用随机分析法抽样调查,而采用所有数据进行分析处理。大数据具有如下特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
人工智能(Artificial Intelligence,简称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加速单元之间采用PCIe 3.0x8总线进行通信;所述CPU主控单元通过PCIe Switch对PCIe接口进行扩展,所述FPGA加速单元连接到PCIeSwitch扩展出的PCIe接口上;
所述FPGA加速单元提供SRIO x4接口,通过SRIO x4接口实现与其他FPGA异构计算单元的通信;通过该互联结构,多个FPGA加速单元之间实现计算任务的流水并行处理。
具体的,所述FPGA加速单元采用Xilinx KU115芯片;所述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,不同FPGA加速单元部署不同的算法模块,上一级FPGA加速单元对数据进行并行处理,并将处理结果传输给下一级FPGA加速单元,进行进一步处理。
本发明所述一种基于CPU+FPGA异构计算系统及其加速方法,与现有技术相比具有的有益效果是:本发明采用多个FFGP加速单元协同完成同一个计算任务;针对不同类型的计算任务需求,将FPGA加速单元配置成并行加速模式、流水加速模式、流水与并行混合加速模式,实现对计算任务的并行加速处理与流水加速处理相结合的计算方式,能够大幅提升任务处理的吞吐率,缩短任务执行时间,进而较大幅度的提高计算机的计算性能。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术内容,下面对本发明实施例或现有技术中所需要的附图做简单介绍。显而易见的,下面所描述附图仅仅是本发明的一部分实施例,对于本领域技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,但均在本发明的保护范围之内。
附图1为实施例2所述FPGA加速单元的并行加速模式的示意图;
附图2为实施例2所述FPGA加速单元的流水加速模式的示意图;
附图3为实施例2所述FPGA加速单元的流水与并行混合加速模式的示意图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清查、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下获得的所有实施例,都在本发明的保护范围之内。
实施例1:
本实施例提出一种基于CPU+FPGA异构计算系统,该CPU+FPGA异构计算系统采用OpenCL编程模型进行编程;其系统架构包括:CPU主控单元和若干FPGA加速单元;所述FPGA加速单元通过PCIe-DMA总线与CPU主控单元互联通信;
所述CPU主控单元,负责逻辑判断、管理控制,对FPGA加速单元进行计算任务分配;所述FPGA加速单元,设置多个,负责对计算任务进行加速;多个FPGA加速单元之间采用SRIO总线互联通信;
所述FPGA加速单元内部划分为静态区域、动态可重构区域两部分;所述静态区域,负责实现PCIe-DMA通信、SRIO通信、DDR控制器等功能;所述动态可重构区域,用来执行CPU主控单元下发的kernel函数,对计算任务进行加速。用户可以根据不同的应用需求,将不同的kernel函数通过静态区域下载到动态可重构区域,从而实现不同的应用加速需求。
同时,所述CPU主控单元下发的kernel函数采用离线编译方式进行事先编译,生成FPGA加速单元可执行文件;CPU主控单元通过OpenCL的运行支持库实现FPGA加速单元可执行文件的下发。并且,所述CPU主控单元将任务处理完成后,以中断的形式通知CPU主控模块。
本实施例基于CPU+FPGA异构计算系统,采用多个FPGA加速单元协同CPU主控单元完成同一计算任务,FPGA加速单元内部划分为静态区域、动态可重构区域,可以根据不同的应用需求实现不同的应用加速;与传统CPU+FPGA异构计算系统的计算方式相比,克服了使用单一FPGA计算卡计算性能有限的缺陷;能够提高计算任务处理的吞吐率,缩短任务执行时间,提高计算机的计算性能。
本发明还提出了一种基于CPU+FPGA异构计算系统的加速方法,其技术方案与实施例1基于CPU+FPGA异构计算系统的技术方案可以相互参考。该基于CPU+FPGA异构计算系统的加速方法的主要内容包括:
采用多个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+FPGA异构计算系统的加速方法,采用多个FPGA加速单元协同CPU主控单元完成同一计算任务,与传统CPU+FPGA异构计算系统的计算方式相比,克服了使用单一FPGA计算卡计算性能有限的缺陷,能够提高计算任务处理的吞吐率,缩短任务执行时间,提高计算机的计算性能。
实施例2:
本实施例提出的一种基于CPU+FPGA异构计算系统,是本发明的另一个具体实施方式,在实施例1基于CPU+FPGA异构计算系统的基础上,为了满足不同类型的计算任务需求,所述FPGA加速单元配置成多种加速模式,包括:并行加速模式、流水加速模式、流水与并行混合加速模式;实现对计算任务的并行加速处理与流水加速处理,能够大幅提升任务处理的吞吐率。
本实施例基于CPU+FPGA异构计算系统,以三个FPGA加速单元协同CPU主控单元为例,来详细说明本发明的技术方案和技术优点。
所述FPGA加速单元的并行加速模式,具体的内容包括:
每个FPGA加速单元内部部署多个相同的算法模块(kernel),待处理数据通过CPU主控单元进行管理,并下发到FPGA加速单元,算法模块并行执行对数据并行处理,并将处理结果发送给CPU主控单元进行整合。
所述FPGA加速单元的流水加速模式,具体的内容包括:
每个FPGA加速单元内部部署不同的算法模块(kernel),算法模块之间具有逻辑级联关系,每一个算法模块将处理完的数据输出到下一级算法模块,下一级算法模块接收上一级算法模块的输出数据,并对数据进一步处理;每一个算法模块处理完本地数据后,通过中断的方式通知下一级算法模块,以接收新的处理数据;所述流水加速模式的各计算模块kernel运算量(执行时间)要尽量一致,以保证流水效率。
所述FPGA加速单元的流水与并行混合加速模式,具体的内容包括:
同一FPGA加速单元内部部署多个相同的算法模块(kernel),不同FPGA加速单元内部部署不同的算法模块,形成FPGA加速单元内部并行加速模式、流水加速模式的混合加速模式;上一级FPGA加速单元对数据进行并行处理,并将结果传输给下一级FPGA加速单元进行进一步处理。
本实施例基于CPU+FPGA异构计算系统,所述CPU主控单元与FPGA加速单元之间采用PCIe 3.0x8总线进行通信;所述CPU主控单元通过PCIe Switch对PCIe接口进行扩展。所述FPGA加速单元连接到PCIe Switch扩展出的PCIe接口上。
并且,所述FPGA加速单元提供SRIO x4接口,通过SRIO x4接口实现与其他FPGA异构计算单元的通信;通过该互联结构,多个FPGA加速单元之间实现计算任务的流水并行处理。所述FPGA加速单元采用Xilinx KU115芯片;FPGA加速单元内部部署的算法模块kernel,采用C/C++高级语言进行开发,或者采用RTL传统方式进行开发;FPGA加速单元内部算法模块kernel之间采用pipe进行数据传输。
本实施例基于CPU+FPGA异构计算系统,采用多个FPGA加速单元协同完成同一计算任务,针对不同的任务类型,可将FPGA加速模式配置成并行加速模式、流水加速模式以及流水与并行混合加速模式,实现对计算任务的并行加速处理与流水加速处理,能够大幅提升任务处理的吞吐率,缩短任务执行时间。
本实施例还提出了一种基于CPU+FPGA异构计算系统的加速方法,其技术方案与实施例2基于CPU+FPGA异构计算系统的技术方案可以相互参考。在实施例1基于CPU+FPGA异构计算系统的加速方法的基础上,为了满足不同类型的计算任务需求,将FPGA加速单元配置成多种加速模式,包括:并行加速模式、流水加速模式、流水与并行混合加速模式;实现对计算任务的并行加速处理与流水加速处理,能够大幅提升任务处理的吞吐率。
本实施例基于CPU+FPGA异构计算系统,以三个FPGA加速单元协同CPU主控单元为例,来详细说明本发明的技术方案和技术优点。
附图1为实施例2所述FPGA加速单元的并行加速模式的示意图,如附图1所示,所有FPGA加速单元中部署多个相同的算法模块kernel,kernel之间并行执行,CPU主控单元作为管理单元,将待处理的不同数据段下发到不同的kernel进行处理,kernel并行处理各数据段,并将处理结果返回到CPU主控单元,CPU主控单元对处理结果进行整合。
附图2为实施例2所述FPGA加速单元的流水加速模式的示意图,如附图2所示,每个FPGA内部署不同的算法模块(kernel),算法模块之间具有逻辑级联关系,CPU主控单元将待处理数据下发到第一个算法模块kernel 1进行处理,kernel 1将处理结果输入到kernel 2进一步处理,kernel 2再传给kernel 3,以此类推,当每一个kernel处理完成后,以中断的方式通知上一级kernel,以接收新的处理数据,从而保证各kernel都能处于忙碌状态。
附图3为实施例2所述FPGA加速单元的流水与并行混合加速模式的示意图,如附图3所示,同一FPGA加速单元内部部署多个相同的算法模块kernel,不同FPGA加速单元部署不同的kernel,上一级FPGA加速单元对数据进行并行处理,并将处理结果传输给下一级FPGA加速单元,进行进一步处理。从而形成FPGA加速单元内部并行加速模式、FPGA加速单元之间流水加速模式的混合加速模式。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容,并不用于限制本发明的保护范围,本发明的技术方案不限制于上述具体实施方式内。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。

Claims (10)

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加速单元之间采用PCIe 3.0x8总线进行通信;所述CPU主控单元通过PCIe Switch对PCIe接口进行扩展,所述FPGA加速单元连接到PCIe Switch扩展出的PCIe接口上;
所述FPGA加速单元提供SRIO x4接口,通过SRIO x4接口实现与其他FPGA异构计算单元的通信;通过该互联结构,多个FPGA加速单元之间实现计算任务的流水并行处理。
5.根据权利要求4所述一种基于CPU+FPGA异构计算系统,其特征在于,具体的,所述FPGA加速单元采用Xilinx KU115芯片;所述FPGA加速单元内部部署的算法模块kernel,采用C/C++高级语言进行开发,或者采用RTL传统方式进行开发;所述FPGA加速单元内部算法模块kernel之间采用pipe进行数据传输。
6.一种基于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函数,对计算任务进行加速。
7.根据权利要求6所述一种基于CPU+FPGA异构计算系统的加速方法,其特征在于,所述CPU主控单元下发的kernel函数采用离线编译方式进行事先编译,生成FPGA加速单元可执行文件;所述CPU主控单元通过OpenCL的运行支持库实现FPGA加速单元可执行文件的下发。
8.根据权利要求7所述一种基于CPU+FPGA异构计算系统的加速方法,其特征在于,将FPGA加速单元配置成多种加速模式,包括:并行加速模式、流水加速模式、流水与并行混合加速模式;
所述并行加速模式的流程包括:所有FPGA加速单元中部署多个相同的算法模块kernel,算法模块之间并行执行,CPU主控单元作为管理单元,将待处理的不同数据段下发到不同的算法模块进行处理,算法模块并行处理各数据段,并将处理结果返回到CPU主控单元,CPU主控单元对处理结果进行整合;
所述流水加速模式的流程包括:每个FPGA内部署不同的算法模块kernel,算法模块之间具有逻辑级联关系,CPU主控单元将待处理数据下发到第一个算法模块进行处理,第一个算法模块将处理结果输入到第二个算法模块进一步处理,第二个算法模块再传给第三个算法模块,以此类推,当每一个算法模块处理完成后,以中断的方式通知上一级算法模块,以接收新的处理数据;
所述流水与并行混合加速模式的流程包括:同一FPGA加速单元内部部署多个相同的算法模块kernel,不同FPGA加速单元部署不同的算法模块,上一级FPGA加速单元对数据进行并行处理,并将处理结果传输给下一级FPGA加速单元,进行进一步处理。
9.根据权利要求8所述一种基于CPU+FPGA异构计算系统的加速方法,其特征在于,所述CPU主控单元与FPGA加速单元之间采用PCIe 3.0x8总线进行通信;所述CPU主控单元通过PCIe Switch对PCIe接口进行扩展,所述FPGA加速单元连接到PCIeSwitch扩展出的PCIe接口上;
所述FPGA加速单元提供SRIO x4接口,通过SRIO x4接口实现与其他FPGA异构计算单元的通信;通过该互联结构,多个FPGA加速单元之间实现计算任务的流水并行处理。
10.根据权利要求9所述一种基于CPU+FPGA异构计算系统的加速方法,其特征在于,具体的,所述FPGA加速单元采用Xilinx KU115芯片;所述FPGA加速单元内部部署的算法模块kernel,采用C/C++高级语言进行开发,或者采用RTL传统方式进行开发;所述FPGA加速单元内部算法模块kernel之间采用pipe进行数据传输。
CN201810593724.XA 2018-06-11 2018-06-11 一种基于cpu+fpga异构计算系统及其加速方法 Pending CN108776649A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810593724.XA CN108776649A (zh) 2018-06-11 2018-06-11 一种基于cpu+fpga异构计算系统及其加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810593724.XA CN108776649A (zh) 2018-06-11 2018-06-11 一种基于cpu+fpga异构计算系统及其加速方法

Publications (1)

Publication Number Publication Date
CN108776649A true CN108776649A (zh) 2018-11-09

Family

ID=64024892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810593724.XA Pending CN108776649A (zh) 2018-06-11 2018-06-11 一种基于cpu+fpga异构计算系统及其加速方法

Country Status (1)

Country Link
CN (1) CN108776649A (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739833A (zh) * 2018-12-18 2019-05-10 山东超越数控电子股份有限公司 一种基于fpga的国产平台数据库加速系统及方法
CN109783032A (zh) * 2019-01-24 2019-05-21 山东超越数控电子股份有限公司 一种基于异构计算的分布式存储加速方法及装置
CN110119311A (zh) * 2019-04-12 2019-08-13 华中科技大学 一种基于fpga的分布式流计算系统加速方法
CN110262887A (zh) * 2019-06-26 2019-09-20 北京邮电大学 基于特征识别的cpu-fpga任务调度方法及装置
CN110659061A (zh) * 2019-09-03 2020-01-07 苏州浪潮智能科技有限公司 Fpga动态重配置方法、装置、设备及可读存储介质
CN110825674A (zh) * 2019-10-30 2020-02-21 北京计算机技术及应用研究所 基于fpga的pcie dma交互系统及交互方法
WO2020113966A1 (zh) * 2018-12-03 2020-06-11 山东浪潮人工智能研究院有限公司 一种高效能融合服务器架构
CN111324558A (zh) * 2020-02-05 2020-06-23 苏州浪潮智能科技有限公司 数据处理方法、装置、分布式数据流编程框架及相关组件
CN111459871A (zh) * 2020-04-01 2020-07-28 济南浪潮高新科技投资发展有限公司 一种基于fpga异构计算的区块链加速系统及方法
CN111490946A (zh) * 2019-01-28 2020-08-04 阿里巴巴集团控股有限公司 基于OpenCL框架的FPGA连接实现方法及装置
CN111831330A (zh) * 2020-07-10 2020-10-27 深圳致星科技有限公司 用于联邦学习的异构计算系统设备交互方案
CN111858461A (zh) * 2020-07-10 2020-10-30 浪潮电子信息产业股份有限公司 Fpga异构加速平台部分重置、系统、设备及介质
CN111966571A (zh) * 2020-08-12 2020-11-20 重庆邮电大学 基于arm-fpga协处理器异构平台的时间估算协同处理方法
CN112131176A (zh) * 2020-09-29 2020-12-25 中国船舶重工集团公司第七二四研究所 一种基于pcie的fpga快速局部重构方法
CN112347721A (zh) * 2020-10-29 2021-02-09 北京长焜科技有限公司 基于fpga实现数据处理加速的系统及其加速方法
CN112380158A (zh) * 2020-10-20 2021-02-19 广东电网有限责任公司中山供电局 一种面向深度学习的计算平台
CN112579300A (zh) * 2020-12-28 2021-03-30 云南电网有限责任公司电力科学研究院 一种面向终端的电力网络火灾监控识别方法
CN113392065A (zh) * 2021-07-14 2021-09-14 中科晶锐(苏州)科技有限公司 异构计算系统及计算方法
WO2021212933A1 (zh) * 2020-04-24 2021-10-28 上海交通大学 基于fpga的并发图数据预处理方法
CN113704166A (zh) * 2021-10-28 2021-11-26 苏州浪潮智能科技有限公司 一种fpga运算设备和运算算力提升系统
CN114721991A (zh) * 2022-04-22 2022-07-08 南方电网科学研究院有限责任公司 一种电力电子系统仿真装置
CN115017071A (zh) * 2022-06-30 2022-09-06 重庆秦嵩科技有限公司 基于fpga srio的多cpu表决系统
WO2023093043A1 (zh) * 2021-11-26 2023-06-01 浪潮电子信息产业股份有限公司 一种数据处理方法、装置及介质
CN117724678A (zh) * 2024-02-07 2024-03-19 深圳市纽创信安科技开发有限公司 执行方法、装置、系统、设备、芯片、介质及程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607005B1 (en) * 2004-12-22 2009-10-20 Rmt, Inc. Virtual hardware system with universal ports using FPGA
US20100017191A1 (en) * 2007-02-15 2010-01-21 Fujitsu Ten Limited Microcomputer simulator
CN106020425A (zh) * 2016-05-27 2016-10-12 浪潮(北京)电子信息产业有限公司 一种fpga异构加速计算系统
CN106250349A (zh) * 2016-08-08 2016-12-21 浪潮(北京)电子信息产业有限公司 一种高能效异构计算系统
CN107105266A (zh) * 2017-05-22 2017-08-29 郑州云海信息技术有限公司 一种png图像的解码方法、装置及系统
CN107273331A (zh) * 2017-06-30 2017-10-20 山东超越数控电子有限公司 一种基于cpu+gpu+fpga架构的异构计算系统和方法
CN107402902A (zh) * 2017-07-31 2017-11-28 郑州云海信息技术有限公司 一种异构计算平台与基于异构计算平台的加速方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607005B1 (en) * 2004-12-22 2009-10-20 Rmt, Inc. Virtual hardware system with universal ports using FPGA
US20100017191A1 (en) * 2007-02-15 2010-01-21 Fujitsu Ten Limited Microcomputer simulator
CN106020425A (zh) * 2016-05-27 2016-10-12 浪潮(北京)电子信息产业有限公司 一种fpga异构加速计算系统
CN106250349A (zh) * 2016-08-08 2016-12-21 浪潮(北京)电子信息产业有限公司 一种高能效异构计算系统
CN107105266A (zh) * 2017-05-22 2017-08-29 郑州云海信息技术有限公司 一种png图像的解码方法、装置及系统
CN107273331A (zh) * 2017-06-30 2017-10-20 山东超越数控电子有限公司 一种基于cpu+gpu+fpga架构的异构计算系统和方法
CN107402902A (zh) * 2017-07-31 2017-11-28 郑州云海信息技术有限公司 一种异构计算平台与基于异构计算平台的加速方法

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020113966A1 (zh) * 2018-12-03 2020-06-11 山东浪潮人工智能研究院有限公司 一种高效能融合服务器架构
CN109739833A (zh) * 2018-12-18 2019-05-10 山东超越数控电子股份有限公司 一种基于fpga的国产平台数据库加速系统及方法
CN109783032A (zh) * 2019-01-24 2019-05-21 山东超越数控电子股份有限公司 一种基于异构计算的分布式存储加速方法及装置
CN111490946A (zh) * 2019-01-28 2020-08-04 阿里巴巴集团控股有限公司 基于OpenCL框架的FPGA连接实现方法及装置
CN111490946B (zh) * 2019-01-28 2023-08-11 阿里巴巴集团控股有限公司 基于OpenCL框架的FPGA连接实现方法及装置
CN110119311A (zh) * 2019-04-12 2019-08-13 华中科技大学 一种基于fpga的分布式流计算系统加速方法
CN110119311B (zh) * 2019-04-12 2022-01-04 华中科技大学 一种基于fpga的分布式流计算系统加速方法
CN110262887A (zh) * 2019-06-26 2019-09-20 北京邮电大学 基于特征识别的cpu-fpga任务调度方法及装置
CN110262887B (zh) * 2019-06-26 2022-04-01 北京邮电大学 基于特征识别的cpu-fpga任务调度方法及装置
CN110659061A (zh) * 2019-09-03 2020-01-07 苏州浪潮智能科技有限公司 Fpga动态重配置方法、装置、设备及可读存储介质
US11474815B2 (en) 2019-09-03 2022-10-18 Inspur Suzhou Intelligent Technology Co., Ltd. FPGA dynamic reconfiguration method, apparatus, device and readable storage medium
CN110825674A (zh) * 2019-10-30 2020-02-21 北京计算机技术及应用研究所 基于fpga的pcie dma交互系统及交互方法
CN111324558A (zh) * 2020-02-05 2020-06-23 苏州浪潮智能科技有限公司 数据处理方法、装置、分布式数据流编程框架及相关组件
CN111324558B (zh) * 2020-02-05 2021-08-10 苏州浪潮智能科技有限公司 数据处理方法、装置、分布式数据流编程框架及相关组件
CN111459871A (zh) * 2020-04-01 2020-07-28 济南浪潮高新科技投资发展有限公司 一种基于fpga异构计算的区块链加速系统及方法
WO2021212933A1 (zh) * 2020-04-24 2021-10-28 上海交通大学 基于fpga的并发图数据预处理方法
CN111831330A (zh) * 2020-07-10 2020-10-27 深圳致星科技有限公司 用于联邦学习的异构计算系统设备交互方案
CN111858461A (zh) * 2020-07-10 2020-10-30 浪潮电子信息产业股份有限公司 Fpga异构加速平台部分重置、系统、设备及介质
CN111966571B (zh) * 2020-08-12 2023-05-12 重庆邮电大学 基于arm-fpga协处理器异构平台的时间估算协同处理方法
CN111966571A (zh) * 2020-08-12 2020-11-20 重庆邮电大学 基于arm-fpga协处理器异构平台的时间估算协同处理方法
CN112131176B (zh) * 2020-09-29 2023-12-12 中国船舶集团有限公司第七二四研究所 一种基于pcie的fpga快速局部重构方法
CN112131176A (zh) * 2020-09-29 2020-12-25 中国船舶重工集团公司第七二四研究所 一种基于pcie的fpga快速局部重构方法
CN112380158B (zh) * 2020-10-20 2022-02-11 广东电网有限责任公司中山供电局 一种面向深度学习的计算平台
CN112380158A (zh) * 2020-10-20 2021-02-19 广东电网有限责任公司中山供电局 一种面向深度学习的计算平台
CN112347721A (zh) * 2020-10-29 2021-02-09 北京长焜科技有限公司 基于fpga实现数据处理加速的系统及其加速方法
CN112347721B (zh) * 2020-10-29 2023-05-26 北京长焜科技有限公司 基于fpga实现数据处理加速的系统及其加速方法
CN112579300A (zh) * 2020-12-28 2021-03-30 云南电网有限责任公司电力科学研究院 一种面向终端的电力网络火灾监控识别方法
CN112579300B (zh) * 2020-12-28 2024-08-20 云南电网有限责任公司电力科学研究院 一种面向终端的电力网络火灾监控识别方法
CN113392065A (zh) * 2021-07-14 2021-09-14 中科晶锐(苏州)科技有限公司 异构计算系统及计算方法
CN113704166A (zh) * 2021-10-28 2021-11-26 苏州浪潮智能科技有限公司 一种fpga运算设备和运算算力提升系统
WO2023093043A1 (zh) * 2021-11-26 2023-06-01 浪潮电子信息产业股份有限公司 一种数据处理方法、装置及介质
CN114721991A (zh) * 2022-04-22 2022-07-08 南方电网科学研究院有限责任公司 一种电力电子系统仿真装置
CN114721991B (zh) * 2022-04-22 2024-06-25 南方电网科学研究院有限责任公司 一种电力电子系统仿真装置
CN115017071A (zh) * 2022-06-30 2022-09-06 重庆秦嵩科技有限公司 基于fpga srio的多cpu表决系统
CN117724678A (zh) * 2024-02-07 2024-03-19 深圳市纽创信安科技开发有限公司 执行方法、装置、系统、设备、芯片、介质及程序产品
CN117724678B (zh) * 2024-02-07 2024-05-17 深圳市纽创信安科技开发有限公司 执行方法、装置、系统、设备、芯片、介质及程序产品

Similar Documents

Publication Publication Date Title
CN108776649A (zh) 一种基于cpu+fpga异构计算系统及其加速方法
CN107632825A (zh) 一种业务软件开发方法及装置
Robertazzi Ten reasons to use divisible load theory
US11651226B2 (en) System having multiple processing unit sets for training neural networks
US11436186B2 (en) High throughput processors
Yamashina et al. crecomp: Automated design tool for ros-compliant fpga component
KR102137802B1 (ko) 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법
CN106528171A (zh) 一种异构计算平台子系统间的接口设计方法、装置及系统
US12045591B2 (en) Skip buffer splitting
Ma et al. FPGA-based AI smart NICs for scalable distributed AI training systems
Garanina et al. Distributed Termination Detection by Counting Agent.
López-Paradís et al. Fast behavioural rtl simulation of 10b transistor soc designs with metro-mpi
Herrero-Lopez Accelerating SVMs by integrating GPUs into MapReduce clusters
CN107679409A (zh) 一种数据加密的加速方法和系统
Oltra-Oltra et al. Hardware-software co-design for efficient and scalable real-time emulation of SNNs on the edge
Myung et al. Policy gradient-based core placement optimization for multichip many-core systems
Golubeva et al. A tool for simulating parallel branch-and-bound methods
CN106547720A (zh) 一种基于fpga的服务器加速技术
Vu et al. A parallel cooperative coevolution evolutionary algorithm
Chaurasiya et al. Realization of OpenCL based CNN Implementation on FPGA using SDAccel Platform
Ogata et al. Formally modeling and verifying Ricart&Agrawala distributed mutual exclusion algorithm
Aggarwal et al. SCF: A framework for task-level coordination in reconfigurable, heterogeneous systems
Nasiri et al. H-Storm: A Hybrid CPU-FPGA Architecture to Accelerate Apache Storm
Barba et al. FPGA acceleration of semantic tree reasoning algorithms
Guo Mapping applications onto FPGA-centric clusters

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20181109

RJ01 Rejection of invention patent application after publication