CN101086729A - 一种基于fpga的动态可重构高性能运算方法与装置 - Google Patents
一种基于fpga的动态可重构高性能运算方法与装置 Download PDFInfo
- Publication number
- CN101086729A CN101086729A CN 200710018207 CN200710018207A CN101086729A CN 101086729 A CN101086729 A CN 101086729A CN 200710018207 CN200710018207 CN 200710018207 CN 200710018207 A CN200710018207 A CN 200710018207A CN 101086729 A CN101086729 A CN 101086729A
- Authority
- CN
- China
- Prior art keywords
- computing
- programmable gate
- gate array
- unit hcu
- high capacity
- 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
Links
Images
Abstract
本发明公开的一种基于FPGA的动态可重构高性能运算方法,采用至少一个计算单元HCU实现并行运算,并通过主控计算设备发送指令和参数,控制计算单元HCU的运行,并接收其运算结果,计算单元HCU的运算是采用至少两个大容量可编程门阵列FPGA进行基本计算逻辑的并行处理,并通过高速LVDS实现相互之间的数据传输,最终将大容量可编程门阵列FPGA的处理结果通过通讯接口传输出去。实现该方法的装置包括至少一个计算单元HCU、控制计算单元HCU运行的主控计算设备以及实现两者之间数据交换的通讯接口。本发明充分利用了大容量可编程门阵列FPGA的可重构特性和并行处理特性,将运算进行流水线和并行改造,实现了超高速处理的功能,又具有功耗低、体积小、计算成本低的特点。
Description
技术领域
本发明属于电子信息与高性能运算技术领域,涉及一种利用FPGA器件实现动态可重构高性能运算的方法,本发明还涉及实现该方法的装置。
背景技术
在数值模拟、仿真计算等领域,目前是以通用处理器为核心的运算系统来实现其运算功能的,由于以通用处理器为核心的系统存在顺序执行架构的局限性,需要大量运算指令才能完成工作,因此无法实现特定需求下所需要的超高速处理能力,使用者往往需要降低运算规模,甚至不得不求助于超级计算机或者机群系统才能获得令人满意的计算结果,但是现有的超级计算机或者机群系统往往存在系统复杂、体积庞大、功耗大、计算成本高的问题。
发明内容
本发明的目的是提供一种基于FPGA的动态可重构高性能运算方法,解决了现有技术中无法同时实现超高速计算和体积小、功耗小、计算成本低的问题。
本发明的另一目的是提供一种实现上述方法的装置。
本发明所采用的技术方案是,一种基于FPGA的动态可重构高性能运算方法,该方法包括以下步骤,
采用至少一个计算单元HCU实现并行的运算;
将上步得到的每一个计算单元HCU的运算结果通过通讯接口传输给主控计算设备;
主控计算设备发送指令和参数又通过通讯接口传输给每一个计算单元HCU,控制计算单元HCU的运行;
其中计算单元HCU的运算是,
采用至少两个大容量可编程门阵列FPGA进行基本计算逻辑的并行处理;
将上步得到的每一个大容量可编程门阵列FPGA的处理结果以及运算参数和中间变量存储于与之对应相连接的外部RAM中,大容量可编程门阵列FPGA通过高速低压差分信号LVDS实现相互之间的数据传输;
将最终的大容量可编程门阵列FPGA的处理结果通过通讯接口传输出去。
本发明所采用的另一技术方案是,实现上述方法的装置,包括:
(a)至少一个计算单元HCU,用于并行计算,其中,每个计算单元HCU包括
至少两个大容量可编程门阵列FPGA,用于完成基本计算逻辑的并行处理,
高速低压差分信号LVDS,连接于上述多个大容量可编程门阵列FPGA之间,用于实现上述大容量可编程门阵列FPGA之间的相互数据传输,
至少两个外部RAM,每个外部RAM与一个大容量可编程门阵列FPGA相连接,用于存储大容量可编程门阵列FPGA的运算参数、中间变量和结果,
通讯接口,用于接收主控计算设备的指令和参数,并将大容量可编程门阵列FPGA的运算结果传输给主控计算设备;
(b)主控计算设备,用于发送指令和参数给各个计算单元HCU,并接收各个计算单元HCU的计算结果,控制计算单元HCU的运行;
(c)通讯接口,用于完成计算单元HCU与主控计算设备之间的数据通讯。
本发明充分利用了大容量可编程门阵列FPGA的可重构特性和并行处理特性,将需计算的算法进行流水线和并行改造。本发明方法相对于以通用处理器为核心的系统实现了超高速处理的功能,相对传统的超级计算机或机群系统,具有功耗低、体积小、计算成本低的特点,计算能力介于超级计算机和普通计算服务器之间,适用于各种常规的需要中小规模密集运算的场合以及对体积和功耗要求较高的嵌入式密集运算场合,在大学、科研院所、军事装备研究与应用、安全部门、大型企业以及政府部门有着广阔的应用前景。
附图说明
图1是本发明装置组成结构示意图;
图2是本发明装置中计算单元HCU的结构示意图;
图3是本发明方法的工作过程示意图;
图4是本发明方法中各计算单元HCU内部并行计算过程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
在传统的以通用处理器为核心的系统中,由于其顺序执行架构的局限性,无法实现特定需求下所需要的超高速处理能力,而由大容量可编程门阵列FPGA构成的计算系统在并行工作方面则具有很大的优势。对于传统的处理器需要大量运算指令才能完成的工作,大容量可编程门阵列FPGA只需一个时钟周期时间即可完成。即使在顺序执行方面,大容量可编程门阵列FPGA也要比传统的处理器快,这是因为大容量可编程门阵列FPGA中可以使用各种状态机或使用嵌入式处理器来完成,并且每一顺序工作的时钟周期中都能够同时并行完成多个任务,而传统的处理器却无法实现。
本发明充分利用了大容量可编程门阵列FPGA的特点,采用多个大容量可编程门阵列FPGA并行进行运算处理,实现了主控计算系统内部性能的改进。
本发明的方法包括以下步骤,
采用至少一个计算单元HCU(Hyper Computing Unit,简称HCU)实现并行的运算;
将上步得到的每一个计算单元HCU的运算结果通过通讯接口传输给主控计算设备;
主控计算设备发送指令和参数又通过通讯接口传输给每一个计算单元HCU,控制计算单元HCU的运行;
其中计算单元HCU的运算是,
采用至少两个大容量可编程门阵列FPGA进行基本计算逻辑的并行处理,大容量可编程门阵列领域中是指百万门级;
将上步得到的每一个大容量可编程门阵列FPGA的处理结果以及运算参数和中间变量存储于与之对应相连接的外部RAM中,大容量可编程门阵列FPGA通过高速低压差分信号LVDS实现相互之间的数据传输;
将最终的大容量可编程门阵列FPGA的处理结果通过通讯接口传输出去。
图1所示的是实现本发明方法的装置,包括,
高性能计算单元HCU:是进行并行计算的基本单元,可以根据计算量的大小在本装置中配备多个。
PCI/PCI-x/PCI-E/网络/LVDS等通讯接口:完成计算单元HCU与主控计算设备之间的数据通讯接口,包括主控计算设备发送计算指令和参数给计算单元HCU,以及计算单元HCU可通过此接口将计算结果发给主控计算设备,同时也包括在计算过程中的一些必要的数据交互。
主控计算机或者嵌入式主控设备:控制计算单元HCU的运行,发送指令和参数给各个计算单元HCU,并接收各个计算单元HCU计算结果,并可进行进一步的分析。
计算单元HCU的实现方式如图2所示,主要包括:
多个大容量(百万门级)大容量可编程门阵列FPGA:完成基本计算逻辑的并行处理,并通过低压差分信号LVDS互相通讯,可将中间数据存储到外部RAM中;
外部RAM:存储大容量可编程门阵列FPGA计算的参数、中间变量和结果等;
高速低压差分信号LVDS:完成大容量可编程门阵列FPGA之间的高速数据传输;
PCI/PCI-x/PCI-E/网络/LVDS等通讯接口:接收主控计算设备的指令和参数,并将大容量可编程门阵列FPGA计算的结果通过所选择的通讯方式传输给主控计算设备。
本发明的工作过程如图3所示,
步骤01:主控计算机或嵌入式主控设备的初始化,包括主控设备的初始化以及必要的对于计算单元HCU驱动的初始化工作;
步骤02:主控计算机或嵌入式主控设备根据计算的需要将计算指令和计算参数分别发送给所需要的计算单元HCU单元,由计算单元HCU单元进行并行的计算;
步骤03:各计算单元HCU单元根据接收到的计算指令和参数进行并行的计算处理,各个计算单元HCU之间也是并行的;
步骤04:主控计算机或嵌入式主控设备接收各个计算单元HCU的计算数据,可进行进一步的处理;
步骤05:由主控计算机或嵌入式主控设备决定是否需要继续计算,如需要则分别准备针对各个计算单元HCU的计算指令和计算参数并执行步骤02,否则本流程结束。
计算单元HCU内部计算分析的步骤如图4所示,主要包括以下步骤:
步骤10:计算单元HCU接收来自主控计算机或嵌入式主控设备的计算指令和计算参数,准备进行计算处理;
步骤11:计算单元HCU调用相关的并行计算逻辑,并行的完成所需计算的逻辑算法;
步骤12:并行计算协调处理逻辑负责各个并行计算逻辑之间的协调处理,并进行数据的汇总和分发工作;
步骤13:计算结束,计算结果送至缓冲区自动传送给主控计算机或嵌入式主控设备;
步骤14:查询是否有新的指令正在等待,如果有,则执行步骤10作进一不处理,否则结束本流程。
将本发明的方法应用于等离子体的模拟计算中,由于计算量巨大,普通基于PC的计算平台无法满足要求,以前只能采用租用超级计算机的方法来进行计算,但是由于成本太高,因此采用本发明的方法进行计算分析,采用了一片由两块高容量FPGA组成的HCU单元,此单元通过64bit的PCI总线与一台PC机连接,完成核心的计算部分;并基于本发明的方法进行了算法的并行设计,并在HCU的FPGA中进行并行实现。和目前主流的PC平台(配置为Pentinum IV 2.8,1G内存,操作系统为SUSE9.0)相比,试验对比数据如下:
硬件配置 | 软件配置 | 等离子数量:512K | 等离子数量:1G |
PIV2.8+1G DDR | SUSE9.0 | 每步耗时:350s | 无法计算 |
PIV2.8+本发明的装置 | SUSE9.0+本发明的方法实现 | 每步耗时:3s | 每步耗时:1000s |
测试结果表明,本发明的方法实现了比主流PC快两个数量级的计算速度,计算性能提高两个数量级以上。
Claims (2)
1.一种基于FPGA的动态可重构高性能运算方法,其特征在于,该方法包括以下步骤,
采用至少一个计算单元HCU实现并行的运算;
将上步得到的每一个计算单元HCU的运算结果通过通讯接口传输给主控计算设备;
主控计算设备发送指令和参数又通过通讯接口传输给每一个计算单元HCU,控制计算单元HCU的运行;
所述计算单元HCU的运算是,
采用至少两个大容量可编程门阵列FPGA进行基本计算逻辑的并行处理;
将上步得到的每一个大容量可编程门阵列FPGA的处理结果以及运算参数和中间变量存储于与之对应相连接的外部RAM中,大容量可编程门阵列FPGA通过高速低压差分信号LVDS实现相互之间的数据传输;
将最终的大容量可编程门阵列FPGA的处理结果通过通讯接口传输出去。
2.一种实现权利要求1所述方法的装置,其特征在于,所述装置包括:
(a)至少一个计算单元HCU,用于并行计算,其中,每个计算单元HCU包括
至少两个大容量可编程门阵列FPGA,用于完成基本计算逻辑的并行处理,
高速低压差分信号LVDS,连接于上述多个大容量可编程门阵列FPGA之间,用于实现上述多个大容量可编程门阵列FPGA之间的相互数据传输,
至少两个外部RAM,每个外部RAM与一个大容量可编程门阵列FPGA相连接,用于存储大容量可编程门阵列FPGA的运算参数、中间变量和结果,
通讯接口,用于接收主控计算设备的指令和参数,并将大容量可编程门阵列FPGA的运算结果传输给主控计算设备;
(b)主控计算设备,用于发送指令和参数给各个计算单元HCU,并接收各个计算单元HCU的计算结果,控制计算单元HCU的运行;
(c)通讯接口,用于完成计算单元HCU与主控计算设备之间的数据通讯。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710018207 CN101086729A (zh) | 2007-07-09 | 2007-07-09 | 一种基于fpga的动态可重构高性能运算方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710018207 CN101086729A (zh) | 2007-07-09 | 2007-07-09 | 一种基于fpga的动态可重构高性能运算方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101086729A true CN101086729A (zh) | 2007-12-12 |
Family
ID=38937690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710018207 Pending CN101086729A (zh) | 2007-07-09 | 2007-07-09 | 一种基于fpga的动态可重构高性能运算方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101086729A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976431A (zh) * | 2010-11-02 | 2011-02-16 | 公安部第三研究所 | 一种基于动态可重构技术的通用图像处理平台及其实现方法 |
CN102279838A (zh) * | 2011-08-31 | 2011-12-14 | 公安部第三研究所 | 基于统一硬件任务接口的系统架构的重构方法 |
CN101515312B (zh) * | 2008-12-03 | 2012-07-18 | 复旦大学 | 一种fpga逻辑单元模型及其通用装箱算法 |
CN102650860A (zh) * | 2011-02-25 | 2012-08-29 | 西安邮电学院 | 一种新型数据流dsp中信号处理硬件的控制器结构 |
CN102917189A (zh) * | 2012-11-05 | 2013-02-06 | 广东威创视讯科技股份有限公司 | 一种基于fpga的lvds信号捕获装置 |
CN104539632A (zh) * | 2015-01-20 | 2015-04-22 | 中国人民解放军国防科学技术大学 | 一种基于虚拟地址空间的可编程网络设备管理控制方法 |
CN104657330A (zh) * | 2015-03-05 | 2015-05-27 | 浪潮电子信息产业股份有限公司 | 一种基于x86架构处理器和FPGA的高性能异构计算平台 |
CN106203621A (zh) * | 2016-07-11 | 2016-12-07 | 姚颂 | 用于卷积神经网络计算的处理器 |
CN106708779A (zh) * | 2017-01-22 | 2017-05-24 | 济南浪潮高新科技投资发展有限公司 | 一种服务器及其处理数据的方法 |
CN106933757A (zh) * | 2017-03-14 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种扩展fpga存储资源的方法 |
CN109918321A (zh) * | 2019-02-25 | 2019-06-21 | 浙江中控研究院有限公司 | 一种基于PCIe总线的在线重构方法 |
CN108228966B (zh) * | 2017-12-06 | 2021-08-20 | 复旦大学 | 基于fpga局部动态重构技术的异型流水线设计方法 |
-
2007
- 2007-07-09 CN CN 200710018207 patent/CN101086729A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515312B (zh) * | 2008-12-03 | 2012-07-18 | 复旦大学 | 一种fpga逻辑单元模型及其通用装箱算法 |
CN101976431A (zh) * | 2010-11-02 | 2011-02-16 | 公安部第三研究所 | 一种基于动态可重构技术的通用图像处理平台及其实现方法 |
CN102650860A (zh) * | 2011-02-25 | 2012-08-29 | 西安邮电学院 | 一种新型数据流dsp中信号处理硬件的控制器结构 |
CN102279838A (zh) * | 2011-08-31 | 2011-12-14 | 公安部第三研究所 | 基于统一硬件任务接口的系统架构的重构方法 |
CN102917189A (zh) * | 2012-11-05 | 2013-02-06 | 广东威创视讯科技股份有限公司 | 一种基于fpga的lvds信号捕获装置 |
CN102917189B (zh) * | 2012-11-05 | 2015-10-28 | 广东威创视讯科技股份有限公司 | 一种基于fpga的lvds信号捕获装置 |
CN104539632B (zh) * | 2015-01-20 | 2017-12-12 | 中国人民解放军国防科学技术大学 | 一种基于虚拟地址空间的可编程网络设备管理控制方法 |
CN104539632A (zh) * | 2015-01-20 | 2015-04-22 | 中国人民解放军国防科学技术大学 | 一种基于虚拟地址空间的可编程网络设备管理控制方法 |
CN104657330A (zh) * | 2015-03-05 | 2015-05-27 | 浪潮电子信息产业股份有限公司 | 一种基于x86架构处理器和FPGA的高性能异构计算平台 |
CN106203621A (zh) * | 2016-07-11 | 2016-12-07 | 姚颂 | 用于卷积神经网络计算的处理器 |
CN106203621B (zh) * | 2016-07-11 | 2019-04-30 | 北京深鉴智能科技有限公司 | 用于卷积神经网络计算的处理器 |
CN106708779A (zh) * | 2017-01-22 | 2017-05-24 | 济南浪潮高新科技投资发展有限公司 | 一种服务器及其处理数据的方法 |
WO2018133879A1 (zh) * | 2017-01-22 | 2018-07-26 | 济南浪潮高新科技投资发展有限公司 | 一种服务器及其处理数据的方法 |
CN106933757A (zh) * | 2017-03-14 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种扩展fpga存储资源的方法 |
CN108228966B (zh) * | 2017-12-06 | 2021-08-20 | 复旦大学 | 基于fpga局部动态重构技术的异型流水线设计方法 |
CN109918321A (zh) * | 2019-02-25 | 2019-06-21 | 浙江中控研究院有限公司 | 一种基于PCIe总线的在线重构方法 |
CN109918321B (zh) * | 2019-02-25 | 2021-01-05 | 浙江中控研究院有限公司 | 一种基于PCIe总线的在线重构方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101086729A (zh) | 一种基于fpga的动态可重构高性能运算方法与装置 | |
CN104915322B (zh) | 一种卷积神经网络硬件加速方法 | |
Ju et al. | An FPGA implementation of deep spiking neural networks for low-power and fast classification | |
DE102018126650A1 (de) | Einrichtung, verfahren und systeme für datenspeicherkonsistenz in einem konfigurierbaren räumlichen beschleuniger | |
DE102018005169A1 (de) | Prozessoren und verfahren mit konfigurierbaren netzwerkbasierten datenflussoperatorschaltungen | |
CN103049241B (zh) | 一种提高cpu+gpu异构装置计算性能的方法 | |
CN105373517A (zh) | 基于Spark的分布式稠密矩阵求逆并行化运算方法 | |
US20170060811A1 (en) | Matrix operands for linear algebra operations | |
CN107085562A (zh) | 一种基于高效复用数据流的神经网络处理器及设计方法 | |
Li et al. | VBSF: a new storage format for SIMD sparse matrix–vector multiplication on modern processors | |
CN104317751A (zh) | 一种gpu上数据流处理系统及其数据流处理方法 | |
Scrbak et al. | Exploring the processing-in-memory design space | |
Torabzadehkashi et al. | Accelerating hpc applications using computational storage devices | |
CN115983348A (zh) | 支持卷积神经网络扩展指令的risc-v加速器系统 | |
WO2021068243A1 (en) | Method and system for accelerating ai training with advanced interconnect technologies | |
Sooknanan et al. | GPU computing using CUDA in the deployment of smart grids | |
CN104636316A (zh) | 面向gpdsp的大规模矩阵乘法计算的方法 | |
Cao et al. | CPU/GPU computing for a multi-block structured grid based high-order flow solver on a large heterogeneous system | |
CN105426163A (zh) | 一种基于mic协处理器的单数据流分位数处理方法 | |
CN102970545A (zh) | 一种基于二维离散小波变换算法的静态图像压缩方法 | |
Yin et al. | FPGA-based high-performance CNN accelerator architecture with high DSP utilization and efficient scheduling mode | |
Tian et al. | G-nmp: Accelerating graph neural networks with dimm-based near-memory processing | |
Monga et al. | Real-time simulation of dynamic vehicle models using a high-performance reconfigurable platform | |
Guan et al. | Using data compression for optimizing FPGA-based convolutional neural network accelerators | |
CN103020008A (zh) | 计算能力增强的可重构微服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |