CN107423030A - 基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法 - Google Patents

基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法 Download PDF

Info

Publication number
CN107423030A
CN107423030A CN201710632320.2A CN201710632320A CN107423030A CN 107423030 A CN107423030 A CN 107423030A CN 201710632320 A CN201710632320 A CN 201710632320A CN 107423030 A CN107423030 A CN 107423030A
Authority
CN
China
Prior art keywords
random number
fpga
number data
markov
monte carlo
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
CN201710632320.2A
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710632320.2A priority Critical patent/CN107423030A/zh
Publication of CN107423030A publication Critical patent/CN107423030A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法及系统,该方法包括:主机端完成初始化,并将产生的随机数数据通过PCI‑e接口发送到FPGA端的DDR内存;其中,初始化包括构造概率空间和产生随机数;FPGA端读取DDR内存中的随机数数据,并利用构造的马尔科夫链对随机数数据进行并行的流水线运算,获取并发送对应的结果数据到主机端;本发明通过FPGA端读取DDR内存中的随机数数据,并利用构造的马尔科夫链对随机数数据进行并行的流水线运算,可以利用FPGA板卡中构造的马尔科夫链采用并行加流水线的方式完成蒙特卡洛算法核心计算过程,减少了成本,提高了并行效率。

Description

基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法
技术领域
本发明涉及计算机应用技术领域,特别涉及一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法及系统。
背景技术
随着计算技术的发展蒙特卡洛算法的应用场景越来越多,例如分子动力学、量子计算,计算化学等,蒙特卡洛算法有很多种实现方式,其中基于重要性采样(Metropolis采样)的马尔科夫链蒙特卡洛(Markov Chain Monte Carlo,MCMC)是应用最广泛的方法,MCMC的基础理论为马尔科夫过程,其过程为,首先构造一个已知的概率空间使该概率空间和原始积分函数尽可能相似,为了在该分布上采样需从任一状态出发,不断进行状态转移,最终收敛到平稳分布。稳定后可以做加权平均。随着计算场景的复杂度提高,原有的串行算法已经无法胜任,研究并行蒙特卡洛算法迫在眉睫。
现有技术中,并行蒙特卡洛算法应用最多的是基于马尔科夫链的并行和数值计算的并行。马尔卡夫链的并行,MCMC这种特殊的结构特别适合并行计算,可以用每个线程(或者进行)计算一条马尔科夫链,每条马尔科夫链之间不需要通信,所以并行效率较高,这种方法的问题是由于每条马尔科夫链需要预热(刚开始的样本需要去除),所以会造成计算资源的浪费,而且并行度和核数呈正比,这种方法依赖于大规模计算技术(尤其是集群),所以成本较高;数值计算的并行,只生成一条马尔卡夫链,数据计算部分并行,这种方式预热成本较小,但是需要通信,所以并行效率较低。而且并行度也依赖于核数,也是以集群为基础的,所以成本也较高。因此,如何实现高效率的并行蒙特卡洛算法,并且减低所需的成本,是现今急需解决的问题。
发明内容
本发明的目的是提供一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法及系统,以利用FPGA(Field-Programmable Gate Array,现场可编程门阵列)对蒙特卡洛算法进行并行流水加速,减少成本,同时提高并行效率。
为解决上述技术问题,本发明提供一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法,包括:
主机端完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端的DDR内存;其中,所述初始化包括构造概率空间和产生随机数;
所述FPGA端读取所述DDR内存中的所述随机数数据,并利用构造的马尔科夫链对所述随机数数据进行并行的流水线运算,获取并发送对应的结果数据到所述主机端。
可选的,所述利用构造的马尔科夫链对所述随机数数据进行并行的流水线运算,包括:
利用#pragma unroll的方式将所述马尔科夫链完全展开;
展开的每条马尔科夫链分别采用流水的方式对所述随机数数据中的部分数据进行运算;其中,所述部分数据中的随机数的数量为所述随机数数据中的随机数的数量除以所述马尔科夫链的数量。
可选的,所述利用#pragma unroll的方式将所述马尔科夫链完全展开之前,还包括:
根据所述随机数数据中的随机数的数量,构造所述马尔科夫链。
可选的,该方法还包括:
所述主机端对接收的所述结果数据进行积分运算;其中,所述积分运算包括加权平均运算。
此外,本发明还提供了一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速系统,包括:
主机端,用于完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端的DDR内存;其中,所述初始化包括构造概率空间和产生随机数;
所述FPGA端,用于读取所述DDR内存中的所述随机数数据,并利用构造的马尔科夫链对所述随机数数据进行并行的流水线运算,获取并发送对应的结果数据到所述主机端。
可选的,所述FPGA端,包括:
展开模块,用于利用#pragma unroll的方式将所述马尔科夫链完全展开;
运算模块,用于展开的每条马尔科夫链分别采用流水的方式对所述随机数数据中的部分数据进行运算;其中,所述部分数据中的随机数的数量为所述随机数数据中的随机数的数量除以所述马尔科夫链的数量。
可选的,所述FPGA端,还包括:
构造模块,用于根据所述随机数数据中的随机数的数量,构造所述马尔科夫链。
可选的,所述主机端,还包括:
积分模块,用于对接收的所述结果数据进行积分运算;其中,所述积分运算包括加权平均运算。
本发明所提供的一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法,包括:主机端完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端的DDR内存;其中,初始化包括构造概率空间和产生随机数;FPGA端读取DDR内存中的随机数数据,并利用构造的马尔科夫链对随机数数据进行并行的流水线运算,获取并发送对应的结果数据到主机端;
可见,本发明通过主机端完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端的DDR内存,可以在主机端获取蒙特卡洛算法运算所需的随机数;通过FPGA端读取DDR内存中的随机数数据,并利用构造的马尔科夫链对随机数数据进行并行的流水线运算,获取并发送对应的结果数据到主机端,可以利用FPGA板卡中构造的马尔科夫链采用并行加流水线的方式完成蒙特卡洛算法核心计算过程,减少了成本,同时提高了并行效率。此外,本发明还提供了一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速系统,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法的流程图;
图2为本发明实施例所提供的一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法的示意图;
图3为本发明实施例所提供的一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法的FPGA端的运算示意图;
图4为本发明实施例所提供的一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速系统的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法的流程图。该方法可以包括:
步骤101:主机端完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端的DDR内存;其中,初始化包括构造概率空间和产生随机数。
可以理解的是,本步骤的目的可以为主机端完成蒙特卡洛算法运算所需的初始化的过程,并将蒙特卡洛算法计算所需的随机数数据,也就是初始化完成后产生的随机数,通过PCI-e接口传输给与之连接的FPGA板卡(FPGA端)的DDR内存。
需要说明的是,对于主机端进行初始化的过程,可以由设计人员根据实用场景和用户需求自行设置,如图2所示,可以包括构造概率空间和产生随机数两个步骤,还可以包括其他步骤,只要可以获取FPGA端构造的马尔科夫链运算所需的数据,对于具体的初始化的过程,本实施例不做任何限制。
具体的,对于本实施例所提供的方法中的主机端和FPGA端,也就是处理器和与之相连的FPGA板卡的具体结构,可以由设计人员根据实用场景和用户需求自行设置,本实施例对此不做任何限制。
步骤102:FPGA端读取DDR内存中的随机数数据,并利用构造的马尔科夫链对随机数数据进行并行的流水线运算,获取并发送对应的结果数据到主机端。
其中,本步骤中FPGA端利用构造的马尔科夫链对随机数数据进行并行的流水线运算的具体过程,可以包括利用#pragma unroll的方式将马尔科夫链完全展开;展开的每条马尔科夫链分别采用流水的方式对随机数数据中的部分数据进行运算。对于每条马尔科夫链计算的随机数数据的随机数的数量,可以由设计人员自行设置,如部分数据中的随机数的数量可以为随机数数据中的随机数的数量除以马尔科夫链的数量。本实施例对此不受任何限制。
具体的,可以如图2所示,假设FPGA端(device端)需要构造m条马尔科夫链(Markovchain),这m条马尔科夫链完全独立,所以可以用#pragma unroll的方式完全展开。每条马尔科夫链在执行时由于必须顺序执行,可以如图3所示,按照成多级流水线的模式,把数据运算部分拆分成多个kernel(内核),也就是多个运算单元(pe),串行的运算模式可以为在一个随机数(x1)首先传入第一个运算单元pe1,运算完成后通过channel1(通道1)传入pe2,pe2运算完成后将结果通过channe2传入pe3,直到最后一个pe运算完成,再传入下一随机数(x2),效率较为低下,而本实施例所提供的方法中的流水的方式,可以在pe1处理完随机数后不必等待后面的模块执行完再读入下一个随机数,把运算完的结果传入channel1后再读入下一个随机数,这样所有的pe都处于工作状态形成流水线,进一步提高多条马尔科夫链并行运算的效果。
需要说明的是,对于FPGA端构造马尔科夫链的具体过程,如FPGA端构造计算随机数数据的所需的马尔科夫链的数量,可以由设计人员或用户自行设置,如可以由用户根据自身的计算需求,在FPGA端构造对应数量的马尔科夫链,也可以由FPGA端根据DDR内存中存储的随机数数据的数量,构造对应数量的马尔科夫链,也就是说,本步骤还可以包括根据随机数数据中的随机数的数量,构造马尔科夫链的过程。本实施例对此不做任何限制。
具体的,如图2所示,本步骤之后还可以包括主机端对接收的结果数据进行积分运算的步骤,使得主机端可以获取蒙特卡洛算法的最终运算结果。对于主机端根据FPGA端发送的结果数据进行积分运算,获取最终的运算结果的过程,可以由设计人员自行设置,如可以对结果数据进行加权平均运算获取蒙特卡洛算法的最终运算结果。本实施例对此不做任何限制。
本实施例中,本发明实施例通过主机端完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端的DDR内存,可以在主机端获取蒙特卡洛算法运算所需的随机数;通过FPGA端读取DDR内存中的随机数数据,并利用构造的马尔科夫链对随机数数据进行并行的流水线运算,获取并发送对应的结果数据到主机端,可以利用FPGA板卡中构造的马尔科夫链采用并行加流水线的方式完成蒙特卡洛算法核心计算过程,比传统的马尔科夫链并行有更高的效率,而且不需要在集群上实现,可以大幅度节省成本。
请参考图4,图4为本发明实施例所提供的一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速系统的结构图。该系统可以包括:
主机端100,用于完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端200的DDR内存;其中,初始化包括构造概率空间和产生随机数;
FPGA端200,用于读取DDR内存中的随机数数据,并利用构造的马尔科夫链对随机数数据进行并行的流水线运算,获取并发送对应的结果数据到主机端。
可选的,FPGA端200,可以包括:
展开模块,用于利用#pragma unroll的方式将马尔科夫链完全展开;
运算模块,用于展开的每条马尔科夫链分别采用流水的方式对随机数数据中的部分数据进行运算;其中,部分数据中的随机数的数量为随机数数据中的随机数的数量除以马尔科夫链的数量。
可选的,FPGA端200,还可以包括:
构造模块,用于根据随机数数据中的随机数的数量,构造马尔科夫链。
可选的,主机端100,还可以包括:
积分模块,用于对接收的结果数据进行积分运算;其中,积分运算包括加权平均运算。
本实施例中,本发明实施例通过主机端100完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端200的DDR内存,可以在主机端100获取蒙特卡洛算法运算所需的随机数;通过FPGA端200读取DDR内存中的随机数数据,并利用构造的马尔科夫链对随机数数据进行并行的流水线运算,获取并发送对应的结果数据到主机端,可以利用FPGA板卡中构造的马尔科夫链采用并行加流水线的方式完成蒙特卡洛算法核心计算过程,比传统的马尔科夫链并行有更高的效率,而且不需要在集群上实现,可以大幅度节省成本。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (8)

1.一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法,其特征在于,包括:
主机端完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端的DDR内存;其中,所述初始化包括构造概率空间和产生随机数;
所述FPGA端读取所述DDR内存中的所述随机数数据,并利用构造的马尔科夫链对所述随机数数据进行并行的流水线运算,获取并发送对应的结果数据到所述主机端。
2.根据权利要求1所述的基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法,其特征在于,所述利用构造的马尔科夫链对所述随机数数据进行并行的流水线运算,包括:
利用#pragma unroll的方式将所述马尔科夫链完全展开;
展开的每条马尔科夫链分别采用流水的方式对所述随机数数据中的部分数据进行运算;其中,所述部分数据中的随机数的数量为所述随机数数据中的随机数的数量除以所述马尔科夫链的数量。
3.根据权利要求2所述的基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法,其特征在于,所述利用#pragma unroll的方式将所述马尔科夫链完全展开之前,还包括:
根据所述随机数数据中的随机数的数量,构造所述马尔科夫链。
4.根据权利要求1至3任一项所述的基于FPGA异构平台的马尔科夫蒙特卡洛算法加速方法,其特征在于,还包括:
所述主机端对接收的所述结果数据进行积分运算;其中,所述积分运算包括加权平均运算。
5.一种基于FPGA异构平台的马尔科夫蒙特卡洛算法加速系统,其特征在于,包括:
主机端,用于完成初始化,并将产生的随机数数据通过PCI-e接口发送到FPGA端的DDR内存;其中,所述初始化包括构造概率空间和产生随机数;
所述FPGA端,用于读取所述DDR内存中的所述随机数数据,并利用构造的马尔科夫链对所述随机数数据进行并行的流水线运算,获取并发送对应的结果数据到所述主机端。
6.根据权利要求5所述的基于FPGA异构平台的马尔科夫蒙特卡洛算法加速系统,其特征在于,所述FPGA端,包括:
展开模块,用于利用#pragma unroll的方式将所述马尔科夫链完全展开;
运算模块,用于展开的每条马尔科夫链分别采用流水的方式对所述随机数数据中的部分数据进行运算;其中,所述部分数据中的随机数的数量为所述随机数数据中的随机数的数量除以所述马尔科夫链的数量。
7.根据权利要求6所述的基于FPGA异构平台的马尔科夫蒙特卡洛算法加速系统,其特征在于,所述FPGA端,还包括:
构造模块,用于根据所述随机数数据中的随机数的数量,构造所述马尔科夫链。
8.根据权利要求5至7任一项所述的基于FPGA异构平台的马尔科夫蒙特卡洛算法加速系统,其特征在于,所述主机端,还包括:
积分模块,用于对接收的所述结果数据进行积分运算;其中,所述积分运算包括加权平均运算。
CN201710632320.2A 2017-07-28 2017-07-28 基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法 Pending CN107423030A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710632320.2A CN107423030A (zh) 2017-07-28 2017-07-28 基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710632320.2A CN107423030A (zh) 2017-07-28 2017-07-28 基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法

Publications (1)

Publication Number Publication Date
CN107423030A true CN107423030A (zh) 2017-12-01

Family

ID=60430731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710632320.2A Pending CN107423030A (zh) 2017-07-28 2017-07-28 基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法

Country Status (1)

Country Link
CN (1) CN107423030A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032010A (zh) * 2018-07-17 2018-12-18 阿里巴巴集团控股有限公司 Fpga器件及基于其的数据处理方法
CN109240978A (zh) * 2018-09-21 2019-01-18 郑州云海信息技术有限公司 一种搭建加速平台的fpga系统、设备及加速平台
CN111722834A (zh) * 2020-07-23 2020-09-29 哈尔滨工业大学 一种面向机器人ekf-slam算法的加速方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598352A (zh) * 2015-01-08 2015-05-06 西安空间无线电技术研究所 一种用于sram型fpga的快速可靠性评估方法
US20160306923A1 (en) * 2013-01-17 2016-10-20 Edico Genome, Inc. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN106681960A (zh) * 2017-01-04 2017-05-17 中山大学 基于共享内存的蒙特卡罗方法求解线性方程组的加速方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160306923A1 (en) * 2013-01-17 2016-10-20 Edico Genome, Inc. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
CN104598352A (zh) * 2015-01-08 2015-05-06 西安空间无线电技术研究所 一种用于sram型fpga的快速可靠性评估方法
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN106681960A (zh) * 2017-01-04 2017-05-17 中山大学 基于共享内存的蒙特卡罗方法求解线性方程组的加速方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
石琳琦,赵辛宇,吴望尘: "基于FPGA的并行蒙特卡洛计算加速器的设计与实现", 《数字技术与应用》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032010A (zh) * 2018-07-17 2018-12-18 阿里巴巴集团控股有限公司 Fpga器件及基于其的数据处理方法
CN109240978A (zh) * 2018-09-21 2019-01-18 郑州云海信息技术有限公司 一种搭建加速平台的fpga系统、设备及加速平台
CN109240978B (zh) * 2018-09-21 2021-10-22 郑州云海信息技术有限公司 一种搭建加速平台的fpga系统、设备及加速平台
CN111722834A (zh) * 2020-07-23 2020-09-29 哈尔滨工业大学 一种面向机器人ekf-slam算法的加速方法
CN111722834B (zh) * 2020-07-23 2021-12-28 哈尔滨工业大学 一种面向机器人ekf-slam算法的加速方法

Similar Documents

Publication Publication Date Title
CN104915322B (zh) 一种卷积神经网络硬件加速方法
CN109740747B (zh) 运算方法、装置及相关产品
Schäfer et al. High performance stencil code algorithms for GPGPUs
CN103336758A (zh) 一种稀疏矩阵的存储方法CSRL及基于该方法的SpMV实现方法
Rupnow et al. A study of high-level synthesis: Promises and challenges
CN110543939B (zh) 一种基于fpga的卷积神经网络后向训练的硬件加速实现装置
Norman et al. A case study of CUDA FORTRAN and OpenACC for an atmospheric climate kernel
CN103617150A (zh) 一种基于gpu的大规模电力系统潮流并行计算系统及其方法
CN103927270B (zh) 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法
Chamberlain et al. Auto-Pipe: Streaming applications on architecturally diverse systems
CN107423816A (zh) 一种多计算精度神经网络处理方法和系统
CN107423030A (zh) 基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法
CN106528171B (zh) 一种异构计算平台子系统间的接口设计方法、装置及系统
Li et al. An FPGA design framework for CNN sparsification and acceleration
CN105302525B (zh) 用于多层次异构结构的可重构处理器的并行处理方法
CN103973431A (zh) 一种基于OpenCL的AES并行化实现方法
CN108269226B (zh) 用于处理稀疏数据的装置和方法
Rojek et al. Adaptation of fluid model EULAG to graphics processing unit architecture
CN106933777B (zh) 基于国产申威26010处理器的基2一维fft的高性能实现方法
CN107402905A (zh) 基于神经网络的计算方法及装置
CN108369510A (zh) 用于以无序加载的置换的指令和逻辑
CN108805277A (zh) 基于多fpga的深度信念网络加速平台及其设计方法
CN105404611A (zh) 一种基于矩阵模型的多计算引擎的自动选择方法
CN104050148A (zh) 快速傅里叶变换加速器
Waltz Performance of a three‐dimensional unstructured mesh compressible flow solver on NVIDIA Fermi‐class graphics processing unit hardware

Legal Events

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

Application publication date: 20171201