CN112631778B - 一种基于fpga云的计算优化方法、系统、存储介质及设备 - Google Patents
一种基于fpga云的计算优化方法、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN112631778B CN112631778B CN202011571278.6A CN202011571278A CN112631778B CN 112631778 B CN112631778 B CN 112631778B CN 202011571278 A CN202011571278 A CN 202011571278A CN 112631778 B CN112631778 B CN 112631778B
- Authority
- CN
- China
- Prior art keywords
- fpga
- main
- fpga card
- auxiliary
- processing
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000005457 optimization Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 93
- 238000004364 calculation method Methods 0.000 claims abstract description 90
- 238000013528 artificial neural network Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 10
- 230000001133 acceleration Effects 0.000 description 40
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于FPGA云的计算优化方法、系统、存储介质及设备,方法包括以下步骤:将待进行计算处理的神经网络拆分为主算子和多个副算子,其中,主算子的计算量分别大于各副算子的计算量;将主算子和各副算子分别烧写到各自的FPGA卡中,以得到主FPGA卡和多个副FPGA卡;将待处理数据分别发送到主FPGA卡和多个副FPGA卡中进行计算处理;响应于各副FPGA卡完成计算处理并获知主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到主FPGA卡进行统一处理,并确认主FPGA卡是否处理完成;响应于主FPGA卡处理完成,将处理结果上传到主机。本发明节省了现有技术中计算结果进行数据交互的时间,提高了资源池中FPGA卡的利用率,提高了计算效率。
Description
技术领域
本发明涉及FPGA云技术领域,尤其涉及一种基于FPGA云的计算优化方法、系统、存储介质及设备。
背景技术
随着FPGA云在数据中心的广泛部署,FPGA加速应用场景也越来越广泛。在当前已公布的FPGA云平台(如华为云、阿里云等)中,FPGA加速卡作为服务器节点的协处理器,处理主机下发的加速请求,在此网络拓扑下,云上的加速应用通过服务器软件完成统一管理,完成分布式处理,FPGA加速卡只处理当前主机下发的加速请求。
图1示出了现有技术中FPGA云平台系统中的应用加速流程,如图1所示,主机1把待加速数据通过PCIe接口发给本地FPGA1加速卡的DDR,完成加速数据存储后主机触发FPGA1的kernel(FPGA内的动态加速应用)开始加速处理,kernel接到请求后从DDR读取数据并开始加速处理(量子计算,AI计算等),完成加速处理后把加速结果存回DDR,再通知主机读取DDR中的数据,完成此次应用的加速处理,同理,主机2进行相同的操作完成主机2上应用数据的加速。在大型加速应用中,由于需要加速的应用通常很大,需要对数据或模型进行拆分,分别给不同的服务器进行处理,两个服务器间的交互信息通过各自的网卡进行传输。对于主机1上的FPGA-1加速卡而言,只看到主机1下发的加速请求,主机2上的加速操作对于主机1上的FPGA来说是透明的,同时FPGA上的kernel加速单元也是被动接收加速请求命令。也就是说,对于大型应用的加速,在现有FPGA云平台中,都是通过服务器本身完成分布式处理,FPGA加速卡只处理当前主机下发的加速请求。
在现有的FPGA云服务器中,FPGA加速卡作为协处理器,被动处理待加速的数据,完成当前加速处理后的结果返回服务器。在大型加速应用中,分布式处理器间的交互通过网卡完成,FPGA加速卡间无直接通信。当一个应用需要多个FPGA加速卡协同完成时,多个FPGA加速卡间的数据交互需要通过中转服务器完成,也就是说,FPGA-1user kernel加速处理后的结果需要返回主机1,主机1通过网卡传递给主机2,主机2再发送给FPGA-2user kernel进行后续处理,交互延时很大,极大影响了分布式计算效率。
发明内容
有鉴于此,本发明的目的在于提出一种基于FPGA云的计算优化方法、系统、存储介质及设备,用以解决现有技术中FPGA云的分布式加速应用的计算效率低的问题。
基于上述目的,本发明提供了一种基于FPGA云的计算优化方法,包括如下步骤:
将待进行计算处理的神经网络拆分为主算子和多个副算子,其中,主算子的计算量分别大于各副算子的计算量;
将主算子和各副算子分别烧写到各自的FPGA卡中,以得到主FPGA卡和多个副FPGA卡;
将待处理数据分别发送到主FPGA卡和多个副FPGA卡中进行计算处理;
响应于各副FPGA卡完成计算处理并获知主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到主FPGA卡进行统一处理,并确认主FPGA卡是否处理完成;
响应于主FPGA卡处理完成,将处理结果上传到主机。
在一些实施例中,将待进行计算处理的神经网络拆分为主算子和多个副算子包括:分析神经网络各层的计算能力以及多个FPGA卡之间的数据传输效率,并基于分析结果将待进行计算处理的神经网络拆分为主算子和多个副算子。
在一些实施例中,将主算子和各副算子分别烧写到各自的FPGA卡中包括:将主算子和各副算子分别烧写到各自的FPGA卡的Kernel单元。
在一些实施例中,方法还包括:得到主FPGA卡和多个副FPGA卡后,分别对主FPGA卡和多个副FPGA卡进行初始化配置。
在一些实施例中,主FPGA卡和各副FPGA卡之间通过报文交换进行通信以获知彼此的计算状况。
在一些实施例中,将各副FPGA卡的计算结果移交到主FPGA卡进行统一处理包括:将各副FPGA卡的计算结果分别通过各自的Shell单元移交到主FPGA卡的Shell单元,且将计算结果由主FPGA卡的Shell单元传送到其Kernel单元。
在一些实施例中,方法还包括:响应于有副FPGA卡完成计算处理并获知主FPGA卡已完成计算处理,返回对神经网络进行算子拆分的步骤。
本发明的另一方面,还提供了一种基于FPGA云的计算优化系统,包括:
算子拆分模块,配置用于将待进行计算处理的神经网络拆分为主算子和多个副算子,其中,主算子的计算量分别大于各副算子的计算量;
算子烧写模块,配置用于将主算子和各副算子分别烧写到各自的FPGA卡中,以得到主FPGA卡和多个副FPGA卡;
数据发送模块,配置用于将待处理数据分别发送到主FPGA卡和多个副FPGA卡中进行计算处理;
计算处理模块,配置用于响应于各副FPGA卡完成计算处理并获知主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到主FPGA卡进行统一处理,并确认主FPGA卡是否处理完成;以及
处理结果上传模块,配置用于响应于主FPGA卡处理完成,将处理结果上传到主机。
本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任意一项方法。
本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任意一项方法。
本发明至少具有以下有益技术效果:
本发明通过拆分主算子和副算子,并设置副算子主动获知主算子的计算情况,使得主算子对副算子的结果进行统一处理,节省了现有技术中计算结果进行数据交互的时间,提高了资源池中FPGA卡的利用率,提高了计算效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为现有技术中FPGA云平台系统中的应用加速流程示意图;
图2为根据本发明提供的基于FPGA云的计算优化方法的实施例的示意图;
图3为本发明实施例的自研FPGA云平台的网络拓扑示意图
图4为本发明实施例的ResNet 152分布式加速网络拓扑示意图;
图5为根据本发明提供的基于FPGA云的计算优化系统的实施例的示意图;
图6为本发明提供的执行基于FPGA云的计算优化方法的计算机设备的一个实施例的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
基于上述目的,本发明实施例的第一个方面,提出了一种基于FPGA云的计算优化方法的实施例。图2示出的是本发明提供的基于FPGA云的计算优化方法的实施例的示意图。如图2所示,本发明实施例包括如下步骤:
步骤S10、将待进行计算处理的神经网络拆分为主算子和多个副算子,其中,主算子的计算量分别大于各副算子的计算量;
步骤S20、将主算子和各副算子分别烧写到各自的FPGA卡中,以得到主FPGA卡和多个副FPGA卡;
步骤S30、将待处理数据分别发送到主FPGA卡和多个副FPGA卡中进行计算处理;
步骤S40、响应于各副FPGA卡完成计算处理并获知主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到主FPGA卡进行统一处理,并确认主FPGA卡是否处理完成;
步骤S50、响应于主FPGA卡处理完成,将处理结果上传到主机。
本发明实施例通过拆分主算子和副算子,并设置副算子主动获知主算子的计算情况,使得主算子对副算子的结果进行统一处理,节省了现有技术中计算结果进行数据交互的时间,提高了资源池中FPGA卡的利用率,提高了计算效率。
在一些实施例中,将待进行计算处理的神经网络拆分为主算子和多个副算子包括:分析神经网络各层的计算能力以及多个FPGA卡之间的数据传输效率,并基于分析结果将待进行计算处理的神经网络拆分为主算子和多个副算子。在一些实施例中,将主算子和各副算子分别烧写到各自的FPGA卡中包括:将主算子和各副算子分别烧写到各自的FPGA卡的Kernel单元。在一些实施例中,方法还包括:得到主FPGA卡和多个副FPGA卡后,分别对主FPGA卡和多个副FPGA卡进行初始化配置。
图3示出的是自研FPGA云平台的网络拓扑示意图,如图3所示,FPGA加速卡(即FPGA卡)作为云平台的核心节点,FPGA加速卡间通过网络连接成一个核心处理平面。FPGA之间的通信数据不仅包含加速数据,也包含配置数据,同时,FPGA内部的kernel加速单元也可以充当主机功能,主动发起配置请求或数据搬移请求。一个交换矩阵中有一个云平台管理服务器完成上电配置以及相关的管理配置,多个FPGA加速卡构成FPGA加速资源池,连接到交换网络,实现纯硬件加速。对于FPGA BOX中FPGA加速卡,网络接口是唯一的对外通信接口,所有的配置数据和加速数据都是通过网络接口进行通信;同时,FPGA内部的kernel加速单元也可以主动发起数据搬移或配置请求。
图4示出的是本发明实施例的ResNet 152分布式加速网络拓扑示意图。如图4所示,Host CPU对ResNet152网络结构进行分析和拆分,根据ResNet152的网络结构特点以及每层的计算量和计算时间,并结合资源池中FPGA加速卡单卡的资源以及两块加速卡间数据传输延时,可以将ResNet152模型分成4个算子层(算子的数量不是绝对,根据神经网络模型大小及FPGA板卡资源大小进行拆分的选择:模型越大或者FPGA板卡资源越少,需要拆分的算子越多),本例四个算子层中,3个副算子分别是算子2、算子3、算子4,它们的计算量较少,而算子1(主算子)的计算量会多一些,D(op1)=D(op2)+S(fpga)*T(fpga)+δ,其中D(opx)为算子层x的计算量,S(fpga)为FPGA加速卡间的传输速率,T(fpga)为FPGA加速卡间的传输延时,δ为四个算子层汇聚计算时间,一般远远小于整个计算的千分之一。也就是说算子1的计算量比其他算子层多了计算结果搬移时间内的计算量,这样可以抵消计算结果搬移时间(通常情况下,模型拆分进行并行计算后计算结果必须进行同步计算处理,这里选择FPGA-1作为最后结果同步处理的板卡)。然后,Host CPU把对应4个layer的四个kernel程序通过网络分别烧写入资源池中的四个FPGA加速卡,并分别对FPGA资源池中的四个FPGA加速卡进行初始化配置(初始寄存器的配置等)。接着,主机把ResNet152的原始数据通过网络分别发送给四个FPGA加速卡进行模型并行加速处理。其中FPGA-2,FPGA-3,FPGA-4加速卡上的算子会首先完成已分配模型的计算,这些算子计算完成后可以主动探知资源池中其他FPGA加速卡上算子的计算状态,同时主动发起计算结果搬移的指令,把各自计算结果搬移到FPGA-1加速卡,当FPGA-2,3,4把计算结果通过网络搬移给FPGA-1时,FPGA-1刚好完成模型的计算,然后继续进行计算结果同步处理,处理完成后把最终的结果通过网络传回主机,完成加速处理。
在一些实施例中,主FPGA卡和各副FPGA卡之间通过报文交换进行通信以获知彼此的计算状况。在一些实施例中,将各副FPGA卡的计算结果移交到主FPGA卡进行统一处理包括:将各副FPGA卡的计算结果分别通过各自的Shell单元移交到主FPGA卡的Shell单元,且将计算结果由主FPGA卡的Shell单元传送到其Kernel单元。
本实施例中,FPGA卡内部包含两部分:shell单元和kernel单元,shell单元包含各接口和一些接口转换逻辑,kernel单元为加速单元。shell区有一个针对kernel的接口转换模块,用于把kernel输出接口格式转换为网络报文接口,通过这个接口转换模块,kernel发起的读状态指令或配置指令就可以转换成网络接口,以报文的格式发送给其他FPGA卡,同时,转换模块把其他FPGA卡的报文数据转换为kernel接口。在获知(主动感知)过程中,副FPGA卡的kernel把请求通过自定义报文格式通过网络发送给主FPGA卡,通过网络完成交互。具体地,主FPGA卡的kernel把副FPGA卡的ID和地址等信息组成自定义格式的stream接口,发给主FPGA卡的shell。主FPGA卡的shell把kernel给过来的信息转成能在网络上传输的数据包发出去,通过交换网络发送给副FPGA卡的网卡网口。副FPGA卡的shell接收到主FPGA卡发送的状态读取报文,进行解析后把状态结果再组装成网络报文通过交换网络发送回主FPGA卡,主FPGA卡的shell再解析结果报文后把结果信息通过转换模块发送给kernel。在移交过程中,副FPGA卡的kernel计算完之后会把结果存入本卡的memory,然后副FPGA卡的shell就会从memory读取数据并转换成网络报文格式通过交换网络发给主FPGA卡。获知过程是有报文头和少量的负载,移交过程的负载部分都是数据。本实施例中主FPGA卡和副FPGA卡的交互方式适用于资源池中任何FPGA卡之间的交互。
在一些实施例中,方法还包括:响应于有副FPGA卡完成计算处理并获知主FPGA卡已完成计算处理,返回对神经网络进行算子拆分的步骤。本实施例中,如果感知到主FPGA卡已经计算完成,则通知主机异常状态,让主机重新进行神经网络模型拆分。
本发明实施例的第二个方面,还提供了一种基于FPGA云的计算优化系统。图5示出的是本发明提供的基于FPGA云的计算优化系统的实施例的示意图。一种基于FPGA云的计算优化系统包括:算子拆分模块10,配置用于将待进行计算处理的神经网络拆分为主算子和多个副算子,其中,主算子的计算量分别大于各副算子的计算量;算子烧写模块20,配置用于将主算子和各副算子分别烧写到各自的FPGA卡中,以得到主FPGA卡和多个副FPGA卡;数据发送模块30,配置用于将待处理数据分别发送到主FPGA卡和多个副FPGA卡中进行计算处理;计算处理模块40,配置用于响应于各副FPGA卡完成计算处理并获知主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到主FPGA卡进行统一处理,并确认主FPGA卡是否处理完成;以及处理结果上传模块50,配置用于响应于主FPGA卡处理完成,将处理结果上传到主机。
本发明实施例的基于FPGA云的计算优化系统,通过拆分主算子和副算子,并设置副算子主动获知主算子的计算情况,使得主算子对副算子的结果进行统一处理,节省了现有技术中计算结果进行数据交互的时间,提高了资源池中FPGA卡的利用率,提高了计算效率。
本发明实施例的第三个方面,还提供了一种计算机存储介质,存储介质存储有计算机程序指令,该计算机程序指令被执行时实现上述任意一项实施例方法。
应当理解,在相互不冲突的情况下,以上针对根据本发明的基于FPGA云的计算优化方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的基于FPGA云的计算优化系统和存储介质。也就是说,上面所述的应用于基于FPGA云的计算优化方法的所有实施例及其变化都可以直接移转应用于根据本发明的系统和存储介质,并直接结合于此。为了本公开的简洁起见,在此不再重复阐述。
本发明实施例的第四个方面,还提供了一种计算机设备,包括存储器302和处理器301,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例方法。
如图6所示,为本发明提供的执行基于FPGA云的计算优化方法的计算机设备的一个实施例的硬件结构示意图。以如图6所示的计算机设备为例,在该计算机设备中包括一个处理器301以及一个存储器302,并还可以包括:输入装置303和输出装置304。处理器301、存储器302、输入装置303和输出装置304可以通过总线或者其他方式连接,图6中以通过总线连接为例。输入装置303可接收输入的数字或字符信息,以及产生与基于FPGA云的计算优化系统的用户设置以及功能控制有关的键信号输入。输出装置304可包括显示屏等显示设备。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的基于FPGA云的计算优化方法。
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种基于FPGA云的计算优化方法,其特征在于,包括以下步骤:
将待进行计算处理的神经网络拆分为主算子和多个副算子,其中,所述主算子的计算量分别大于各副算子的计算量;
将所述主算子和各副算子分别烧写到各自的FPGA卡中,以得到主FPGA卡和多个副FPGA卡;
将待处理数据分别发送到所述主FPGA卡和多个副FPGA卡中进行计算处理;
响应于各副FPGA卡完成计算处理并获知所述主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到所述主FPGA卡进行统一处理,并确认所述主FPGA卡是否处理完成;
响应于所述主FPGA卡处理完成,将处理结果上传到主机;
其中,响应于各副FPGA卡完成计算处理并获知所述主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到所述主FPGA卡进行统一处理包括:
各副FPGA卡完成计算处理后,主动探知资源池中其他FPGA卡上算子的计算状态,同时主动发起计算结果搬移的指令,把各自计算结果搬移到所述主FPGA卡,当各副FPGA卡把计算结果通过网络搬移给所述主FPGA卡时,所述主FPGA卡刚好完成模型的计算,然后继续进行计算结果同步处理。
2.根据权利要求1所述的方法,其特征在于,将待进行计算处理的神经网络拆分为主算子和多个副算子包括:
分析所述神经网络各层的计算能力以及多个FPGA卡之间的数据传输效率,并基于分析结果将待进行计算处理的神经网络拆分为主算子和多个副算子。
3.根据权利要求1所述的方法,其特征在于,将所述主算子和各副算子分别烧写到各自的FPGA卡中包括:
将所述主算子和各副算子分别烧写到各自的FPGA卡的Kernel单元。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
得到所述主FPGA卡和多个副FPGA卡后,分别对所述主FPGA卡和多个副FPGA卡进行初始化配置。
5.根据权利要求1所述的方法,其特征在于,所述主FPGA卡和各副FPGA卡之间通过报文交换进行通信以获知彼此的计算状况。
6.根据权利要求3所述的方法,其特征在于,将各副FPGA卡的计算结果移交到所述主FPGA卡进行统一处理包括:
将各副FPGA卡的计算结果分别通过各自的Shell单元移交到所述主FPGA卡的Shell单元,且将所述计算结果由所述主FPGA卡的Shell单元传送到其Kernel单元。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于有副FPGA卡完成计算处理并获知所述主FPGA卡已完成计算处理,返回对所述神经网络进行算子拆分的步骤。
8.一种基于FPGA云的计算优化系统,其特征在于,包括:
算子拆分模块,配置用于将待进行计算处理的神经网络拆分为主算子和多个副算子,其中,所述主算子的计算量分别大于各副算子的计算量;
算子烧写模块,配置用于将所述主算子和各副算子分别烧写到各自的FPGA卡中,以得到主FPGA卡和多个副FPGA卡;
数据发送模块,配置用于将待处理数据分别发送到所述主FPGA卡和多个副FPGA卡中进行计算处理;
计算处理模块,配置用于响应于各副FPGA卡完成计算处理并获知所述主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到所述主FPGA卡进行统一处理,并确认所述主FPGA卡是否处理完成;以及
处理结果上传模块,配置用于响应于所述主FPGA卡处理完成,将处理结果上传到主机;
其中,响应于各副FPGA卡完成计算处理并获知所述主FPGA卡未完成计算处理,将各副FPGA卡的计算结果移交到所述主FPGA卡进行统一处理包括:
各副FPGA卡完成计算处理后,主动探知资源池中其他FPGA卡上算子的计算状态,同时主动发起计算结果搬移的指令,把各自计算结果搬移到所述主FPGA卡,当各副FPGA卡把计算结果通过网络搬移给所述主FPGA卡时,所述主FPGA卡刚好完成模型的计算,然后继续进行计算结果同步处理。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被执行时实现如权利要求1-7任意一项所述的方法。
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011571278.6A CN112631778B (zh) | 2020-12-27 | 2020-12-27 | 一种基于fpga云的计算优化方法、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011571278.6A CN112631778B (zh) | 2020-12-27 | 2020-12-27 | 一种基于fpga云的计算优化方法、系统、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631778A CN112631778A (zh) | 2021-04-09 |
CN112631778B true CN112631778B (zh) | 2023-01-06 |
Family
ID=75325840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011571278.6A Active CN112631778B (zh) | 2020-12-27 | 2020-12-27 | 一种基于fpga云的计算优化方法、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631778B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535745B (zh) * | 2021-08-09 | 2022-01-18 | 威讯柏睿数据科技(北京)有限公司 | 一种层次化数据库操作加速系统和方法 |
CN117112596A (zh) * | 2023-07-28 | 2023-11-24 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992940A (zh) * | 2017-12-12 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种卷积神经网络在fpga上的实现方法及装置 |
US20190114535A1 (en) * | 2017-10-17 | 2019-04-18 | Xilinx, Inc. | Neural network processing system having host controlled kernel acclerators |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN111324558A (zh) * | 2020-02-05 | 2020-06-23 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、分布式数据流编程框架及相关组件 |
CN111602147A (zh) * | 2017-11-17 | 2020-08-28 | 脸谱公司 | 基于非局部神经网络的机器学习模型 |
CN112087471A (zh) * | 2020-09-27 | 2020-12-15 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法及fpga云平台 |
-
2020
- 2020-12-27 CN CN202011571278.6A patent/CN112631778B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190114535A1 (en) * | 2017-10-17 | 2019-04-18 | Xilinx, Inc. | Neural network processing system having host controlled kernel acclerators |
CN111602147A (zh) * | 2017-11-17 | 2020-08-28 | 脸谱公司 | 基于非局部神经网络的机器学习模型 |
CN107992940A (zh) * | 2017-12-12 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种卷积神经网络在fpga上的实现方法及装置 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN111324558A (zh) * | 2020-02-05 | 2020-06-23 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、分布式数据流编程框架及相关组件 |
CN112087471A (zh) * | 2020-09-27 | 2020-12-15 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法及fpga云平台 |
Also Published As
Publication number | Publication date |
---|---|
CN112631778A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112631778B (zh) | 一种基于fpga云的计算优化方法、系统、存储介质及设备 | |
TWI803663B (zh) | 一種運算裝置和運算方法 | |
US11916740B2 (en) | K8S-based service deployment method and apparatus, device, and medium | |
CN111026063A (zh) | 数字孪生体构建方法、装置、计算机设备及存储介质 | |
CN116627888B (zh) | 硬件计算模块、设备、方法、电子设备及存储介质 | |
CN115168162B (zh) | 容器环境基于ingress控制器多灰度发布方法、设备及存储介质 | |
WO2023207035A1 (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN109829546B (zh) | 平台即服务云端服务器及其机器学习数据处理方法 | |
CN114285695B (zh) | 通信方法、装置、设备、系统和存储介质 | |
CN113572822A (zh) | 一种云终端模拟控制方法、装置、存储介质及电子设备 | |
CN116506295A (zh) | 一种容器化虚拟网元服务功能链构建方法、装置、设备和介质 | |
CN115358401A (zh) | 一种推理服务的处理方法、装置、计算机设备及存储介质 | |
Silva et al. | Environment for integration of distributed heterogeneous computing systems | |
CN109726800B (zh) | 运算方法、装置及相关产品 | |
CN112949853B (zh) | 深度学习模型的训练方法、系统、装置及设备 | |
EP4293984A1 (en) | Data transmission system and method, and related device | |
KR102501542B1 (ko) | 블록체인 시스템의 가동 방법, 장치, 설비 및 저장 매체 | |
CN114390042B (zh) | 工业通信方法、工业通信系统、设备和存储介质 | |
CN110020720B (zh) | 算子拼接方法及装置 | |
TW202219750A (zh) | 機器學習模型訓練方法、電子設備、控制器及存儲介質 | |
WO2019225420A1 (ja) | 変換装置、および、変換プログラム | |
CN115509146B (zh) | 一种飞行维护模拟机分布式通讯资源整合方法 | |
CN118070850B (zh) | 数据中心网络流量生成方法、装置、介质及计算机程序 | |
CN117876553B (zh) | 一种基于3de的加速器模型轻量化方法及设备 | |
CN114866534B (zh) | 一种图像处理方法、装置、设备及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |