CN111736986A - 一种深度学习模型的fpga加速执行方法及相关装置 - Google Patents

一种深度学习模型的fpga加速执行方法及相关装置 Download PDF

Info

Publication number
CN111736986A
CN111736986A CN202010471493.2A CN202010471493A CN111736986A CN 111736986 A CN111736986 A CN 111736986A CN 202010471493 A CN202010471493 A CN 202010471493A CN 111736986 A CN111736986 A CN 111736986A
Authority
CN
China
Prior art keywords
fpga
deep learning
learning model
model
executed
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.)
Granted
Application number
CN202010471493.2A
Other languages
English (en)
Other versions
CN111736986B (zh
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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry 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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN202010471493.2A priority Critical patent/CN111736986B/zh
Publication of CN111736986A publication Critical patent/CN111736986A/zh
Application granted granted Critical
Publication of CN111736986B publication Critical patent/CN111736986B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Neurology (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种深度学习模型的FPGA加速执行方法,包括:FPGA云服务器根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到深度学习模型中所有卷积核的拆分配置数据;根据拆分配置数据将深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡;控制多个待执行FPGA板卡执行深度学习模型计算操作。通过将深度学习模型中的所有卷积核拆分至对应的FPGA板卡中进行计算操作,实现将模型拆分计算,而不是在少数几个FPGA板卡中加载过多的计算功能,避免产生硬件浪费,提高硬件性能的利用率。本申请还公开了一种深度学习模型的FPGA加速执行装置、服务器以及计算机可读存储介质,具有以上有益效果。

Description

一种深度学习模型的FPGA加速执行方法及相关装置
技术领域
本申请涉及计算机技术领域,特别涉及一种深度学习模型的FPGA加速执行方法、FPGA加速执行装置、服务器以及计算机可读存储介质。
背景技术
随着信息技术的不断发展,在机器学习的领域中的计算量和数据量越来越大,现有的硬件基础无法提供更好的计算性能和数据传输效率。因此,现有硬件中采用FPGA(Field-Programmable Gate Array现场可编程门阵列)和GPU(Graphics Processing Unit图形处理器)等硬件对机器学习模型的学习过程进行加速处理。同时,FPGA处理能力也不断增强,越来越多的数据中心开始使用FPGA进行加速。为了管理这些数量和种类越来越多的FPGA加速卡,FPGA云平台应用而生,在云平台的管理下,将复杂的计算任务分配给FPGA资源池中的某一个或者某几个FPGA中进行加速,加速卡之间通过10G甚至100G以太网进行高速传输。
可见,现有技术中,可以通过FPGA云将复杂的机器学习训练任务分配至一个或多个FPGA进行加速,并且在不同的FPGA之间通过高速以太网进行数据传输。但是,在分配机器学习模型是分配到单个FPGA中,使得单个FPGA实现的功能过多,会出现一些内核在进行计算,而其他的内核在空闲,导致资源浪费,硬件性能利用率下降。
因此,如何避免硬件资源浪费,提高硬件性能利用率是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种深度学习模型的FPGA加速执行方法、深度学习模型的FPGA加速执行装置、服务器以及计算机可读存储介质,通过将深度学习模型中的所有卷积核拆分至对应的FPGA板卡中进行计算操作,实现将模型拆分计算,而不是在少数几个FPGA板卡中加载过多的计算功能,避免产生硬件浪费,提高硬件性能的利用率。
为解决上述技术问题,本申请提供一种深度学习模型的FPGA加速执行方法,包括:
FPGA云服务器根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到所述深度学习模型中所有卷积核的拆分配置数据;
根据所述拆分配置数据将所述深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡;
控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
可选的,还包括:
当进行拆分处理之前,设置对应的最低吞吐量。
可选的,FPGA云服务器根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到所述深度学习模型中所有卷积核的拆分配置数据,包括:
所述FPGA云服务器根据模型文件中层参数计算每一层的计算量;
将所有层的计算量相加,得到所述模型计算量;
将所述模型计算量乘以最低吞吐量得到总计算量,将所述总计算量除以所述FPGA板卡计算量,得到板卡数量;
按照预设数据量单位和所述板卡数量将所述深度学习模型中的所有卷积核与所述板卡数量的多个FPGA板卡建立对应关系,将所述对应关系作为所述拆分配置数据。
可选的,按照预设数据量单位和所述板卡数量将所述深度学习模型中的所有卷积核与所述板卡数量的多个FPGA板卡建立对应关系,将所述对应关系作为所述拆分配置数据,包括:
根据所述板卡数量进行计算时长计算,得到计算时间和传输时间;
当所述计算时间大于所述传输时间时,按照预设数据量单位和所述板卡数量将所述深度学习模型中的所有卷积核与所述板卡数量的多个FPGA板卡建立对应关系,将所述对应关系作为所述拆分配置数据;
当所述计算时间小于等于所述传输时间时,将所述深度学习模型中的所有卷积核与单个FPGA板卡建立对应关系,将所述对应关系作为拆分配置数据。
可选的,控制所述多个待执行FPGA板卡执行深度学习模型计算操作,包括:
在所述多个待执行FPGA板卡之间建立可靠通信机制;其中,所述可靠通信机制包括数据校验机制、流量控制机制、丢包重传机制以及超时重传机制;
通过所述可靠通信机制控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
可选的,还包括:
当所述深度学习网络计算操作执行完成时,将执行得到的结果发送至主机端,以便将所述结果进行显示输出。
本申请还提供一种深度学习模型的FPGA加速执行装置,包括:
模型拆分配置模块,用于根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到所述深度学习模型中所有卷积核的拆分配置数据;
模型拆分部署模块,用于根据所述拆分配置数据将所述深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡;
深度学习计算模块,用于控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
可选的,所述深度学习计算模块,包括:
可靠机制建立单元,用于在所述多个待执行FPGA板卡之间建立可靠通信机制;其中,所述可靠通信机制包括数据校验机制、流量控制机制、丢包重传机制以及超时重传机制;
计算操作执行单元,用于通过所述可靠通信机制控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的深度学习模型的FPGA加速执行方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的深度学习模型的FPGA加速执行方法的步骤。
本申请所提供的一种深度学习模型的FPGA加速执行方法,包括:FPGA云服务器根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到所述深度学习模型中所有卷积核的拆分配置数据;根据所述拆分配置数据将所述深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡;控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
通过模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到所述深度学习模型中所有卷积核的拆分配置数据,也就是确定所有卷积核与对应FPGA板卡的关系,然后根据所述拆分配置数据将所述深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡,实现将所有卷积拆分至对应的待执行FPGA板卡,最后执行深度学习模型计算操作,实现将模型拆分计算,而不是在少数几个FPGA板卡中加载过多的计算功能,避免产生硬件浪费,提高硬件性能的利用率。
本申请还提供一种深度学习模型的FPGA加速执行装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种深度学习模型的FPGA加速执行方法的流程图;
图2为本申请实施例所提供的一种深度学习模型的FPGA加速执行装置的结构示意图。
具体实施方式
本申请的核心是提供一种深度学习模型的FPGA加速执行方法、深度学习模型的FPGA加速执行装置、服务器以及计算机可读存储介质,通过将深度学习模型中的所有卷积核拆分至对应的FPGA板卡中进行计算操作,实现将模型拆分计算,而不是在少数几个FPGA板卡中加载过多的计算功能,避免产生硬件浪费,提高硬件性能的利用率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,可以通过FPGA云将复杂的机器学习训练任务分配至一个或多个FPGA进行加速,并且在不同的FPGA之间通过高速以太网进行数据传输。但是,在分配机器学习模型是分配到单个FPGA中,使得单个FPGA实现的功能过多,会出现一些内核在进行计算,而其他的内核在空闲,导致资源浪费,硬件性能利用率下降。
因此,本申请提供一种深度学习模型的FPGA加速执行方法,通过模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到深度学习模型中所有卷积核的拆分配置数据,也就是确定所有卷积核与对应FPGA板卡的关系,然后根据拆分配置数据将深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡,实现将所有卷积拆分至对应的待执行FPGA板卡,最后执行深度学习模型计算操作,实现将模型拆分计算,而不是在少数几个FPGA板卡中加载过多的计算功能,避免产生硬件浪费,提高硬件性能的利用率。
以下通过一个实施例,对本申请提供的一种深度学习模型的FPGA加速执行方法进行说明。
请参考图1,图1为本申请实施例所提供的一种深度学习模型的FPGA加速执行方法的流程图。
本实施例中,该方法可以包括:
S101,FPGA云服务器根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到深度学习模型中所有卷积核的拆分配置数据;
本步骤旨在FPGA云服务器根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到深度学习模型中所有卷积核的拆分配置数据,也就是确定如何将所有的卷积核分配至多个FPGA板卡或单个FPGA板卡。
其中,卷积核为执行深度学习网络计算的基本单元,属于无法再拆分的单位。因此,本实施例中以卷积核为单位将该深度学习模型进行拆分操作。
具体的,本步骤中的拆分处理在获取到模型计算量和对应的FPGA板卡计算量的基础上,就可以计算出需要的FPGA板卡的数量。进而将该模型所有的卷积核分配至该数量的FPGA板卡中,进而将模型以卷积核为单位进行拆分处理。
其中,模型计算量在一些情况下是确定的,可以直接计算出对应的需要的板卡数量。而在一些情况下模型计算量是未知的,并且在该情况中还需要根据技术人员设置的期望处理速度进行处理。此时,不仅需要将模型进行拆分处理,还需要保持一定的处理速度。现有技术中,无法满足这种情况并且还会进一步导致硬件资源的浪费。
因此,本实施例中为了在期望中进行模型计算,还可以包括:
当进行拆分处理之前,设置对应的最低吞吐量。
本可选方案中,主要是在进行拆分前确定模型计算的最低要求,包括最低吞吐量。还可以包括最低时延,用于保持模型计算的时延控制在该最低时延之内。
基于上述可选方案,本步骤可以包括:
步骤1,FPGA云服务器根据模型文件中层参数计算每一层的计算量;
步骤2,将所有层的计算量相加,得到模型计算量;
步骤3,将模型计算量乘以最低吞吐量得到总计算量,将总计算量除以FPGA板卡计算量,得到板卡数量;
步骤4,按照预设数据量单位和板卡数量将深度学习模型中的所有卷积核与板卡数量的多个FPGA板卡建立对应关系,将对应关系作为拆分配置数据。
可见,本可选方案中主要是对如何进行拆分处理,得到该拆分配置数据进行说明。首先是通过步骤1至步骤2计算出该模型的模型计算量,然后再计算出对应的板卡数量。最后,按照预设数据量单位和板卡数量将深度学习模型中的所有卷积核与板卡数量的多个FPGA板卡建立对应关系,将对应关系作为拆分配置数据。也就是,所有卷积核分配至该板卡数量的多个FPGA板卡中。
进一步的,本实施例在计算模型计算量的过程还可以判断是否需要对该模型进行拆分,也就是确定将模型的所有卷积核拆分至多个FPGA板卡中,还是将所有卷积核对应单个FPGA板卡。为此,该步骤4可以包括:
根据板卡数量进行计算时长计算,得到计算时间和传输时间;
当计算时间大于传输时间时,按照预设数据量单位和板卡数量将深度学习模型中的所有卷积核与板卡数量的多个FPGA板卡建立对应关系,将对应关系作为拆分配置数据;
当计算时间小于等于传输时间时,将深度学习模型中的所有卷积核与单个FPGA板卡建立对应关系,将对应关系作为拆分配置数据。
也就是,根据该板卡数量进行时长计算,得到需要的计算时间和传输时间。也就是在确定了板卡分配的情况下,计算该分配方案对应的计算时间和传输时间。然后,判断计算时间是否大于传输时间。当计算时间大于传输时间时,将所有的卷积核分配至多个FPGA板卡中。当计算时间小于等于传输时间时,将所有的卷积核分配至单个FPGA板卡中。
S102,根据拆分配置数据将深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡;
在S101的基础上,本步骤旨在根据拆分配置数据将深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡。也就是,根据分配后的数据将该模型的所有卷积核部署至对应的FPGA板卡,被部署后的FPGA板卡就被称作待执行FPGA板卡。
其中,本实施例中将模型中的卷积核进行拆分部署的方式可以参考现有技术中提供的对应的部署方式,可以参考下一实施例中提供的部署方式,在此不做赘述。
S103,控制多个待执行FPGA板卡执行深度学习模型计算操作。
在S102的基础上,本步骤旨在控制多个待执行FPGA板卡执行深度学习模型计算操作。也就是操作多个待执行FPGA板卡进行深度学习模型计算。
其中,具体如何执行模型计算操作可以参考现有技术提供的任意一种模型计算操作,具体的在此不做限定。
由于将模型拆分至多个FPGA板卡之间进行计算操作,因此,多个FPGA板卡之间的数据通信的可靠性十分重要,影响了模型计算的准确性和效率。
因此,本步骤还可以包括:
步骤1,在多个待执行FPGA板卡之间建立可靠通信机制;其中,可靠通信机制包括数据校验机制、流量控制机制、丢包重传机制以及超时重传机制;
步骤2,通过可靠通信机制控制多个待执行FPGA板卡执行深度学习模型计算操作。
可见,本可选方案中主要是首先在多个FPGA板卡之间建立可靠通信机制;其中,可靠通信机制包括数据校验机制、流量控制机制、丢包重传机制以及超时重传机制;然后,再通过可靠通信机制控制多个待执行FPGA板卡执行深度学习模型计算操作。可见,通过以上的不同机制间的相互作用,保持了FPGA板卡间的传输数据的可靠性和准确性。
可选的,本实施例还可以包括:
当深度学习网络计算操作执行完成时,将执行得到的结果发送至主机端,以便将结果进行显示输出。
可见,本可选方案中,当深度学习网络计算操作执行完成时,将执行得到的结果发送至主机端,以便将结果进行显示输出。也就是,最后操作完成得到对应的执行结果,
综上,本实施例通过模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到深度学习模型中所有卷积核的拆分配置数据,也就是确定所有卷积核与对应FPGA板卡的关系,然后根据拆分配置数据将深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡,实现将所有卷积拆分至对应的待执行FPGA板卡,最后执行深度学习模型计算操作,实现将模型拆分计算,而不是在少数几个FPGA板卡中加载过多的计算功能,避免产生硬件浪费,提高硬件性能的利用率。
以下通过另一具体的实施例,对本申请提供的一种深度学习模型的FPGA加速执行方法做进一步说明。
本实施例中,将该方法应用于FPGA云平台中,具体实施过程如下:
步骤1,设置要在FPGA云平台部署的深度学习模型并设置计算过程要达到的最低吞吐量和最低时延。
步骤2,将模型描述文件输入到本方案的模型预处理模型模块进行分析,依次对每层layer进行分析,并创建分析文件model.config存储每一层中卷积核对应的FPGA板卡的ID,该文件作为模型运行时的拆分依据。
首先计算出深度学习模型的计算量,然后根据计算量计算出需要的FPGA板卡的数量,最后根据卡数判断是否需要进行模型拆分处理。
其中,计算模型计算量,以caffe模型为例,输入prototxt模型文件,根据prototxt模型文件的layer参数来计算每一层需要的计算量。以卷积算子为例,当input的通道数为C,output的宽和高为[W,H],filter的kernel个数为N,宽和高为K,则该层计算量为C*K*K*W*H*N。若为Relu激活层,当input的通道数为C,input的宽和高为[W,H],则该层计算量为C*W*H。根据诸如此类的计算方式,最后得到每一层的计算量,最后再将所有层的计算量相加就可以得到该模型的总计算量。
其中,当处理的是分段式模型,例如:RCNN(Regions with CNN features)、SPPNet(spatial pyramid pooling network深度学习网络)、Faster RCNN(Faster Regions withCNN features)、Mask RCNN(Mask Regions with CNN features)等模型,该类模型较大,且每段任务分工明确,当把模型所有任务部署到单个FPGA卡时,会导致模型第一段在计算时,第二阶段算子在等待。因此,当本实施例检测到模型是类似的分段式模型时,根据用户设置的QPS(Queries-per-second每秒请求服务数)或者最低时延来决定卡的个数,将模型拆分到多张FPGA卡,使得FPGA资源占用率最大化。
当模型是一段式,且模型较大时,模型部署在一张FPGA卡时,由于单卡算力瓶颈,运行速度会非常差,因此考虑在算子层面进行自动拆分。当使用算子拆分时,需要计算需要使用的FPGA卡张数。
本实施例计算卡数的方式,具体为:
N=M*Q/A
模型单batch单次前向的计算量为M flops,FPGA的算力为A flops,假设用户需要的最低吞吐量为Q fps,N为卡数。
拆分时需要平衡数据传输开销对模型推理时延的影响,因此需要使用计算量,并根据如下公式进行计算阈值Th,决定是否要进行拆分。
假定某层Layer计算量为L,Tr为FPGA云的网络带宽,则:
Th=(L/FPGA_flops)/(layer_data*N/Tr)。
其中,layer_data为每一层的数据量,Tr为每秒传输的数据量。
若Th>1则表示计算时间大于传输时间,则将该层拆分;
若<=1则表示计算时间小于传输时间,不对该层作拆分。
步骤3,配置FPGA云环境,配置需要使用的FPGA卡,并为每个FPGA绑定唯一的FPGA云的FPGA ID,并将配置文件model.config下发给每个FPGA。
步骤4,主机端发起EnqueueKernels命令运行每个FPGA卡。FPGA卡按照model.config分配的ID执行深度学习计算操作
步骤5,最后FPGA将结果发送至主机端,由CPU进行显示输出。
可见,本实施例通过模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到深度学习模型中所有卷积核的拆分配置数据,也就是确定所有卷积核与对应FPGA板卡的关系,然后根据拆分配置数据将深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡,实现将所有卷积拆分至对应的待执行FPGA板卡,最后执行深度学习模型计算操作,实现将模型拆分计算,而不是在少数几个FPGA板卡中加载过多的计算功能,避免产生硬件浪费,提高硬件性能的利用率。
下面对本申请实施例提供的一种深度学习模型的FPGA加速执行装置进行介绍,下文描述的一种深度学习模型的FPGA加速执行装置与上文描述的一种深度学习模型的FPGA加速执行方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种深度学习模型的FPGA加速执行装置的结构示意图。
本实施例中,该装置可以包括:
模型拆分配置模块100,用于根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到深度学习模型中所有卷积核的拆分配置数据;
模型拆分部署模块200,用于根据拆分配置数据将深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡;
深度学习计算模块300,用于控制多个待执行FPGA板卡执行深度学习模型计算操作。
可选的,该深度学习计算模块300,可以包括:
可靠机制建立单元,用于在多个待执行FPGA板卡之间建立可靠通信机制;其中,可靠通信机制包括数据校验机制、流量控制机制、丢包重传机制以及超时重传机制;
计算操作执行单元,用于通过可靠通信机制控制多个待执行FPGA板卡执行深度学习模型计算操作。
本申请实施例还一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的深度学习模型的FPGA加速执行方法的步骤。
本申请实施例还一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的深度学习模型的FPGA加速执行方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种深度学习模型的FPGA加速执行方法、深度学习模型的FPGA加速执行装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种深度学习模型的FPGA加速执行方法,其特征在于,包括:
FPGA云服务器根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到所述深度学习模型中所有卷积核的拆分配置数据;
根据所述拆分配置数据将所述深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡;
控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
2.根据权利要求1所述的深度学习模型的FPGA加速执行方法,其特征在于,还包括:
当进行拆分处理之前,设置对应的最低吞吐量。
3.根据权利要求2所述的深度学习模型的FPGA加速执行方法,其特征在于,FPGA云服务器根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到所述深度学习模型中所有卷积核的拆分配置数据,包括:
所述FPGA云服务器根据模型文件中层参数计算每一层的计算量;
将所有层的计算量相加,得到所述模型计算量;
将所述模型计算量乘以最低吞吐量得到总计算量,将所述总计算量除以所述FPGA板卡计算量,得到板卡数量;
按照预设数据量单位和所述板卡数量将所述深度学习模型中的所有卷积核与所述板卡数量的多个FPGA板卡建立对应关系,将所述对应关系作为所述拆分配置数据。
4.根据权利要求3所述的深度学习模型的FPGA加速执行方法,其特征在于,按照预设数据量单位和所述板卡数量将所述深度学习模型中的所有卷积核与所述板卡数量的多个FPGA板卡建立对应关系,将所述对应关系作为所述拆分配置数据,包括:
根据所述板卡数量进行计算时长计算,得到计算时间和传输时间;
当所述计算时间大于所述传输时间时,按照预设数据量单位和所述板卡数量将所述深度学习模型中的所有卷积核与所述板卡数量的多个FPGA板卡建立对应关系,将所述对应关系作为所述拆分配置数据;
当所述计算时间小于等于所述传输时间时,将所述深度学习模型中的所有卷积核与单个FPGA板卡建立对应关系,将所述对应关系作为拆分配置数据。
5.根据权利要求1至4任一项所述的深度学习模型的FPGA加速执行方法,其特征在于,控制所述多个待执行FPGA板卡执行深度学习模型计算操作,包括:
在所述多个待执行FPGA板卡之间建立可靠通信机制;其中,所述可靠通信机制包括数据校验机制、流量控制机制、丢包重传机制以及超时重传机制;
通过所述可靠通信机制控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
6.根据权利要求5所述的深度学习模型的FPGA加速执行方法,其特征在于,还包括:
当所述深度学习网络计算操作执行完成时,将执行得到的结果发送至主机端,以便将所述结果进行显示输出。
7.一种深度学习模型的FPGA加速执行装置,其特征在于,包括:
模型拆分配置模块,用于根据模型计算量和FPGA板卡计算量对待执行的深度学习模型进行拆分处理,得到所述深度学习模型中所有卷积核的拆分配置数据;
模型拆分部署模块,用于根据所述拆分配置数据将所述深度学习模型中的卷积核部署至对应的FPGA板卡,得到多个待执行FPGA板卡;
深度学习计算模块,用于控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
8.根据权利要求7所述的深度学习模型的FPGA加速执行装置,其特征在于,所述深度学习计算模块,包括:
可靠机制建立单元,用于在所述多个待执行FPGA板卡之间建立可靠通信机制;其中,所述可靠通信机制包括数据校验机制、流量控制机制、丢包重传机制以及超时重传机制;
计算操作执行单元,用于通过所述可靠通信机制控制所述多个待执行FPGA板卡执行深度学习模型计算操作。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的深度学习模型的FPGA加速执行方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的深度学习模型的FPGA加速执行方法的步骤。
CN202010471493.2A 2020-05-29 2020-05-29 一种深度学习模型的fpga加速执行方法及相关装置 Active CN111736986B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010471493.2A CN111736986B (zh) 2020-05-29 2020-05-29 一种深度学习模型的fpga加速执行方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010471493.2A CN111736986B (zh) 2020-05-29 2020-05-29 一种深度学习模型的fpga加速执行方法及相关装置

Publications (2)

Publication Number Publication Date
CN111736986A true CN111736986A (zh) 2020-10-02
CN111736986B CN111736986B (zh) 2023-06-23

Family

ID=72646499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010471493.2A Active CN111736986B (zh) 2020-05-29 2020-05-29 一种深度学习模型的fpga加速执行方法及相关装置

Country Status (1)

Country Link
CN (1) CN111736986B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022126316A1 (zh) * 2020-12-14 2022-06-23 华为技术有限公司 人工智能ai模型的开发方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249010B1 (en) * 2003-04-03 2007-07-24 Xilinx, Inc. Methods of estimating susceptibility to single event upsets for a design implemented in an FPGA
WO2016210014A1 (en) * 2015-06-25 2016-12-29 Microsoft Technology Licensing, Llc Memory bandwidth management for deep learning applications
CN108268931A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 数据处理的方法、装置和系统
CN109086867A (zh) * 2018-07-02 2018-12-25 武汉魅瞳科技有限公司 一种基于fpga的卷积神经网络加速系统
US20190050715A1 (en) * 2018-09-28 2019-02-14 Intel Corporation Methods and apparatus to improve data training of a machine learning model using a field programmable gate array
CN109767002A (zh) * 2019-01-17 2019-05-17 济南浪潮高新科技投资发展有限公司 一种基于多块fpga协同处理的神经网络加速方法
CN110399221A (zh) * 2019-07-23 2019-11-01 江苏鼎速网络科技有限公司 数据处理方法、系统及终端设备
CN110503201A (zh) * 2019-08-29 2019-11-26 苏州浪潮智能科技有限公司 一种神经网络分布式并行训练方法与装置
CN110795228A (zh) * 2018-08-03 2020-02-14 伊姆西Ip控股有限责任公司 使用加速器混合集的分布式深度学习的自适应批量数据集划分
CN110889439A (zh) * 2019-11-08 2020-03-17 浪潮电子信息产业股份有限公司 一种图像特征提取方法、装置及电子设备和存储介质
CN111027669A (zh) * 2019-10-21 2020-04-17 浙江省北大信息技术高等研究院 在现场可编程门阵列上实现深度神经网络的方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249010B1 (en) * 2003-04-03 2007-07-24 Xilinx, Inc. Methods of estimating susceptibility to single event upsets for a design implemented in an FPGA
WO2016210014A1 (en) * 2015-06-25 2016-12-29 Microsoft Technology Licensing, Llc Memory bandwidth management for deep learning applications
CN108268931A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 数据处理的方法、装置和系统
CN109086867A (zh) * 2018-07-02 2018-12-25 武汉魅瞳科技有限公司 一种基于fpga的卷积神经网络加速系统
CN110795228A (zh) * 2018-08-03 2020-02-14 伊姆西Ip控股有限责任公司 使用加速器混合集的分布式深度学习的自适应批量数据集划分
US20190050715A1 (en) * 2018-09-28 2019-02-14 Intel Corporation Methods and apparatus to improve data training of a machine learning model using a field programmable gate array
CN109767002A (zh) * 2019-01-17 2019-05-17 济南浪潮高新科技投资发展有限公司 一种基于多块fpga协同处理的神经网络加速方法
CN110399221A (zh) * 2019-07-23 2019-11-01 江苏鼎速网络科技有限公司 数据处理方法、系统及终端设备
CN110503201A (zh) * 2019-08-29 2019-11-26 苏州浪潮智能科技有限公司 一种神经网络分布式并行训练方法与装置
CN111027669A (zh) * 2019-10-21 2020-04-17 浙江省北大信息技术高等研究院 在现场可编程门阵列上实现深度神经网络的方法及装置
CN110889439A (zh) * 2019-11-08 2020-03-17 浪潮电子信息产业股份有限公司 一种图像特征提取方法、装置及电子设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022126316A1 (zh) * 2020-12-14 2022-06-23 华为技术有限公司 人工智能ai模型的开发方法和装置

Also Published As

Publication number Publication date
CN111736986B (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
EP3525096B1 (en) Resource load balancing control method and cluster scheduler
Abad et al. Package-aware scheduling of faas functions
US20190155660A1 (en) Scheduling system for computational work on heterogeneous hardware
CN111552550A (zh) 一种基于图形处理器gpu资源的任务调度方法、设备及介质
US20170031720A1 (en) Deploying software in a multi-instance node
CN111666158A (zh) 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备
CN114118433A (zh) 一种设备的配置参数的推荐方法及装置
CN111274010B (zh) 数据控制方法、装置、电子设备及存储介质
CN111736986B (zh) 一种深度学习模型的fpga加速执行方法及相关装置
CN115357351A (zh) 算力网络调度方法、装置、系统、设备及介质
Perepelitsyn et al. Method of QoS evaluation of FPGA as a service
CN111159124B (zh) Linux内核文件系统异步写缓存方法、装置及介质
CN117369990A (zh) 一种算力资源调度方法及装置、系统、设备、存储介质
CN116915869A (zh) 基于云边协同的时延敏感型智能服务快速响应方法
CN105511959A (zh) 虚拟资源分配方法和装置
CN116450290A (zh) 计算机资源的管理方法、装置、云服务器及存储介质
CN112631577B (zh) 一种模型的调度方法、模型调度器以及模型安全测试平台
Bouterse et al. Performance analysis of the reserve capacity policy for dynamic VM allocation in a SaaS environment
CN112156453B (zh) 实例自适应调整方法、装置、计算机可读存储介质及设备
CN114138466A (zh) 面向智慧公路的任务协同处理方法、装置及存储介质
CN110928683B (zh) 基于两类密集型虚拟机的边缘计算资源分配方法
CN108885565A (zh) 对游戏模式的操作系统支持
CN115917509A (zh) 用于快速分布式训练的归约服务器
Bittencourt et al. Distributed Load Balancing Algorithms for Heterogeneous Players in Asynchronous Networks.
Cano et al. ADARES: adaptive resource management for virtual machines

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