CN112381211A - 基于异构平台执行深度神经网络的***及方法 - Google Patents
基于异构平台执行深度神经网络的***及方法 Download PDFInfo
- Publication number
- CN112381211A CN112381211A CN202011305477.2A CN202011305477A CN112381211A CN 112381211 A CN112381211 A CN 112381211A CN 202011305477 A CN202011305477 A CN 202011305477A CN 112381211 A CN112381211 A CN 112381211A
- Authority
- CN
- China
- Prior art keywords
- module
- equal
- operators
- heterogeneous
- task
- 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
Links
Images
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种基于异构平台执行深度神经网络的***及方法,用于解决现有技术中存在的基于异构平台执行深度神经网络的速度较低和对于模型的兼容性较差的技术问题,实现步骤为:(1)模型解析模块对DNN模型进行解析;(2)分析模块根据解析结果构建计算图;(3)平台检测模块检测异构平台中的异构计算单元的硬件参数;(4)任务分配模块构建任务分配策略并进行优化;(5)推理模块根据最优任务分配策略对异构计算单元进行任务分配,得到执行DNN模型的结果。本发明解析模块支持解析主流深度学习框架的模型格式,提高了***对于不同框架模型的兼容性,任务分配模块提供最优任务分配策略,提高了深度神经网络的执行速度。
Description
技术领域
本发明属于深度神经网络技术领域,涉及一种执行深度神经网络的***及方法,具体涉及一种基于异构平台执行深度神经网络的***及方法,可用于目标检测、人脸识别和语音识别等领域。
背景技术
随着人工智能的飞速发展,以深度神经网络为代表的深度学习技术取得了显著的成果,深度神经网络技术在目标检测、人脸识别和语音识别等领域都已经有了非常广泛的应用,而随着大数据领域的兴起,深度神经网络对硬件设备的计算能力的需求也在不断提升。深度神经网络模型的训练阶段需要喂入大量的训练数据集,在训练的循环过程中,通常需要对一个输入进行上亿次计算,对硬件设备的算力有很高的需求,而在深度神经网络的推理阶段不仅对算力有着高要求,还对推理速度有较高的要求,在通用处理器CPU有限的计算资源下实现计算密集型的深度神经网络的效率非常低,在很多具有高实时性要求的应用场景下存在很大的限制性。而针对深度神经网络计算任务单一,计算密度大,数据重复计算量大的特点,通用处理器和专用处理器组合起来进行异构计算成为了大趋势,相较于单一计算设备,异构计算能够提供更高的算力和能效比,专用处理器包括图形处理器GPU,现场可编程逻辑门阵列FPGA,嵌入式神经网络处理器NPU等。
深度神经网络中的算子在不同的硬件计算单元上的执行性能和功耗有时存在很大的差异,比如CPU适合处理逻辑性较强的任务,GPU、NPU执行计算密集、高并行型的算子的运行性能更好,FPGA能够很好地满足低功耗高性能的需求等,通过将算子分配给适合的异构计算单元,由每个异构计算单元执行各自分配到的算子。如今,由多个异构计算单元组成的异构平台已经被广泛应用于执行深度神经网络。例如,申请公开号为CN111143051A,名称为“通过异构资源执行人工神经网络来执行任务的***和方法”的专利申请,公开了一种通过异构资源执行人工神经网络来执行任务的***和方法,通过接收人工神经网络模型并输出基于包括至少一个子图的人工神经网络模型生成的子图信息,检测多个异构资源的感知信息,基于子图信息和感知信息将用于针对人工神经网络中每个网络层执行任务的请求信号输出到多个异构资源,最终完成人工神经网络的推理。
该发明存在的不足之处在于,接收神经网络模型过程中不能接收不同框架训练得到的模型,对模型的兼容性较差。此外,在将神经网络的执行任务分配到异构资源的过程中没有提供分配策略,需要人工根据经验将神经网络切分后生成的子图分配到合适的异构资源上,没有考虑到神经网络模型中算子之间有时存在并行的特点,不能充分地发挥异构计算的并行性优势,随着计算量的增加,执行神经网络速度较低。
发明内容
本发明的目的在于克服上述现有技术的不足,提出了一种基于异构平台执行深度神经网络的***及方法,用于解决现有技术中存在的执行神经网络速度较低和对模型的兼容性较差的技术问题。
为实现上述目的,本发明采取的技术方案为:
一种基于异构平台执行深度神经网络的***,包括模型解析模块、分析模块、平台检测模块、任务分配模块和推理模块,所述平台检测模块、任务分配模块和推理模块是通过包含R个异构计算单元的异构平台O实现的,R≥1,其中:
所述模型解析模块,用于对基于深度学习训练的深度神经网络DNN模型进行序列化解析,将得到的包含N个算子的描述文件M和包含N'个算子间数据流向关系的描述文件M'发送至分析模块,同时对M中的N个算子进行遍历,并将遍历得到的N个算子的属性参数发送至任务分配模块;
所述分析模块,用于构建用于存储N个算子的结构体集合G和用于存储N'个算子间数据流向关系的结构体集合G',将M存储到G中,将M'存储到G'中,然后通过G和G'构建计算图,并将计算图发送至推理模块;
所述平台检测模块,用于检测异构平台O包含的R个异构计算单元的硬件参数,并将检测结果发送至任务分配模块;
所述任务分配模块,包括参数处理模块和任务预测模块;所述参数处理模块,用于对N个算子的属性参数与R个异构计算单元的硬件参数进行合并,同时对每个算子与每个异构计算单元进行组合,并将合并及组合结果发送至任务预测模块;所述任务预测模块,用于对合并结果进行扩充,然后根据扩充、合并及组合结果生成最优任务分配策略A',并将A'发送至推理模块;
所述推理模块,用于根据最优任务分配策略A'将计算图中的G中存储的M和G'中存储M'发送到异构平台O的R个异构计算单元上,通过每个异构计算单元执行接收到的算子并根据算子间数据流向关系进行计算。
一种基于异构平台执行深度神经网络的方法,包括以下步骤:
(1)模型解析模块对DNN模型进行解析:
(1a)模型解析模块采用protobuf库对基于深度学习训练的深度神经网络DNN模型进行序列化解析,得到包含N个算子的描述文件M={Mn|1≤n≤N}和包含N'个算子间数据流向关系的描述文件M'={M'uv|u,v∈[1,N]},并将M和M'发送至分析模块,其中,DNN模型包括个Nconv卷积算子、Npool个池化算子和Nfc个全连接算子,Nconv≥1,Npool≥1,Nfc≥1,Nconv+Npool+Nfc=N,Mn表示第n个算子,M'uv表示任意两个算子之间的数据流向关系;
(1b)模型解析模块对描述文件中M的N个算子进行遍历,得到N个算子的属性参数S,包括每个卷积算子的属性参数Sconv={C1,C2,C3}、每个池化算子的属性参数Spool={P1,P2}和每个全连接算子的属性参数Sfc={F1,F2},并将S发送到任务分配模块,其中,C1、C2和C3分别表示卷积核的大小、卷积层的通道数和卷积步长,P1和P2分别表示池化层的尺寸和步长,F1和F2分别表示全连接层的长度和宽度;
(2)分析模块构建计算图:
分析模块构建用于存储N个算子的结构体集合G={Gn|1≤n≤N}和用于存储N'个算子间的数据流向关系的结构体集合G'={G'uv|u,v∈[1,N]},并将每个算子Mn存储到对应的结构体Gn中,将算子间的数据流向关系M'uv存储到对应的结构体G'uv中,同时以每个Gn为节点,以每个G'uv为边构建有向无环的计算图,并将计算图发送至推理模块,其中,Gn表示储存第n个算子的结构体,G'uv表示储存M'uv对应数据流向关系的结构体;
(3)平台检测模块检测异构平台O中的异构计算单元的硬件参数:
平台检测模块对异构平台O={Or|1≤r≤R}中的每个异构计算单元Or包括芯片核心数目、芯片架构和主频的硬件参数进行检测,得到硬件参数集合D={Dr|1≤r≤R},并将D发送至任务分配模块,其中,Or表示第r个异构计算单元,Dr表示第r个异构计算单元Or对应的硬件参数;
(4)任务分配模块构建任务分配策略并进行优化:
(4a)参数处理模块对解析模块发送的N个算子的属性参数S和平台检测模块发送的D进行合并,得到参数集合S'={S,D},同时对每个算子Mn与每个异构计算单元Or进行组合,并将组合得到的N×R个组合体作为任务分配策略A={Arn|1≤r≤R,1≤n≤N},然后将参数集合S'和分配策略A发送至任务预测模块,其中,Arn表示第n个算子Mn和第r个异构计算单元Or形成的组合体对应的任务分配策略;
(4b)任务预测模块按照算子运算规则,对参数集合S'={S,D}所包含的属性参数S添加H组属性参数值,实现对S的扩充,得到扩充后的参数集合S*={{S,D},{S1,D},…,{Sh,D},…,{SH,D}},其中,H≥100,Sh表示扩充的第h组属性参数值,算子运算规则规定了卷积核的大小为奇数以及卷积层的通道数与卷积核的数量相等;
(4c)任务预测模块将扩充后的参数集合S*和分配策略A作为基于深度Q网络的预测模型的输入进行训练,得到训练好的预测模型,并将参数集合S'和分配策略A作为训练好的预测模型输入进行预测,得到最优任务分配策略A'={A'rn|1≤r≤R,1≤n≤N},然后将A'发送至推理模块,其中,A'rn表示Arn对应的最优任务分配策略;
(5)推理模块对计算图进行推理:
推理模块根据最优任务分配策略A'将计算图中每个Gn中存储的算子Mn和每个G'uv中存储的算子间的数据流向关系M'uv发送到异构平台O中的异构计算单元Or,并通过每个异构计算单元Or执行接收到的Mn,同时根据M'uv对算子间流动的数据进行计算,得到执行深度神经网络的结果。
本发明与现有技术相比,具有如下优点:
第一,本发明模型解析模块通过对基于深度学习训练的深度神经网络DNN模型进行序列化解析,分析模块根据解析结果构建计算图,解决了不能接收不同框架训练得到的模型的问题,提高了对于不同框架模型的兼容性;
第二,本发明任务分配模块构建任务分配策略并进行优化,将最优任务分配策略发送到推理模块,推理模块根据最优任务分配策略将每个算子分配到执行时间最短的异构计算单元,避免了人工根据经验制定分配策略,有效地提高了深度神经网络的执行速度。
附图说明
图1为本发明基于异构平台执行深度神经网络的***的结构示意图;
图2为本发明基于异构平台执行深度神经网络的方法的实现流程图;
图3为本发明分析模块构建的计算图的网络结构示意图。
具体实施方式
下面将结合附图和具体实施案例,对本发明作进一步的详细描述。
参照图1,本发明基于异构平台执行深度神经网络的***,包括模型解析模块、分析模块、平台检测模块、任务分配模块和推理模块,本实施例中,所述平台检测模块、任务分配模块和推理模块是通过包含4个异构计算单元的异构平台O实现的,其中:
所述模型解析模块,用于对基于深度学习训练的深度神经网络DNN模型进行序列化解析,将得到的包含12个算子的描述文件M和包含16个算子间数据流向关系的描述文件M'发送至分析模块,同时对M中的12个算子进行遍历,并将遍历得到的12个算子的属性参数发送至任务分配模块;
所述分析模块,用于构建用于存储12个算子的结构体集合G和用于存储16个算子间数据流向关系的结构体集合G',将M存储到G中,将M'存储到G'中,然后通过G和G'构建计算图,并将计算图发送至推理模块;
所述平台检测模块,用于检测异构平台O包含的4个异构计算单元的硬件参数,并将检测结果发送至任务分配模块;
所述任务分配模块,包括参数处理模块和任务预测模块;所述参数处理模块,用于对12个算子的属性参数与4个异构计算单元的硬件参数进行合并,同时对每个算子与每个异构计算单元进行组合,并将合并及组合结果发送至任务预测模块;所述任务预测模块,用于对合并结果进行扩充,然后根据扩充、合并及组合结果生成最优任务分配策略A',并将A'发送至推理模块;
所述推理模块,用于根据最优任务分配策略A'将计算图中的G中存储的M和G'中存储M'发送到异构平台O的4个异构计算单元上,通过每个异构计算单元执行接收到的算子并根据算子间数据流向关系进行计算。
参照图2,本发明基于异构平台执行深度神经网络的方法的实现流程图,包括如下步骤:
步骤1)模型解析模块对DNN模型进行解析:
步骤1a)模型解析模块采用protobuf库对基于深度学习训练的深度神经网络DNN模型进行序列化解析,得到包含12个算子的描述文件M={Mn|1≤n≤12}和包含14个算子间数据流向关系的描述文件M'={M'uv|u,v∈[1,12]},并将M和M'发送至分析模块,其中,DNN模型包括个7卷积算子、4个池化算子和1个全连接算子,Mn表示第n个算子,M'uv表示任意两个算子之间的数据流向关系;
本实施例中,对基于Caffe训练的DNN模型进行序列化解析,通过读取prototxt文件中每个网络层的参数和模型的网络结构,得到包含算子的描述文件M和包含算子间数据流向关系的描述文件M';
步骤1b)模型解析模块对描述文件中M的12个算子进行遍历,得到7个卷积算子的属性参数Sconv={{5,3,1},{5,1,1},{3,1,1},{3,1,1},{3,1,1},{5,1,1},{5,1,1}}、3个池化算子的属性参数Spool={{2,2},{2,2},{2,2}}和1个全连接算子的属性参数Sfc={1,8},并将12个算子的属性参数S发送到任务分配模块;
步骤2)分析模块构建计算图:
分析模块构建用于存储12个算子的结构体集合G={Gn|1≤n≤12}和用于存储14个算子间的数据流向关系的结构体集合G'={G'uv|u,v∈[1,12]},并将每个算子Mn存储到对应的结构体Gn中,将算子间的数据流向关系M'uv存储到对应的结构体G'nv中,同时以每个Gn为节点,以每个G'uv为边构建有向无环的计算图,并将计算图发送至推理模块,其中,Gn表示储存第n个算子的结构体,G'uv表示储存M'uv对应数据流向关系的结构体;
本实施例中,计算图的网络结构如图3所示,{G1,G2,G3,G4,G5,G6,G8,G10}为存储卷积算子的结构体,{G7,G9,G11}为存储池化算子的结构体,{G12}为存储全连接算子的结构体;
步骤3)平台检测模块检测异构平台O中的异构计算单元的硬件参数:
平台检测模块对异构平台O={Or|1≤r≤4}中的每个异构计算单元Or包括芯片核心数目、芯片架构和主频的硬件参数进行检测,得到硬件参数集合D={Dr|1≤r≤4},并将D发送至任务分配模块,其中,Or表示第r个异构计算单元,Dr表示第r个异构计算单元Or对应的硬件参数;
步骤4)任务分配模块构建任务分配策略并进行优化:
步骤4a)参数处理模块对解析模块发送的12个算子的属性参数和平台检测模块发送的D进行合并,得到参数集合S'={S,D},同时对每个算子Mn与每个异构计算单元Or进行组合,并将组合得到的48个组合体作为任务分配策略A={Arn|1≤r≤4,1≤n≤12},然后将参数集合S'和分配策略A发送至任务预测模块,其中,Arn表示第n个算子Mn和第r个异构计算单元Or形成的组合体对应的任务分配策略;
步骤4b)任务预测模块按照算子运算规则,对参数集合S'={S,D}所包含的属性参数S添加500组属性参数值,实现对S'的扩充,得到扩充后的参数集合S*={{S,D},{S1,D},…,{Sh,D},…,{S500,D}},其中,Sh表示扩充的第h组属性参数值,本实施例中,扩充的属性参数值中C1取值为{1,3,5,7},C3取值为{1,2,3},P1取值为{2,4},P2取值为{1,2},F1取值为{1,2},F2取值为{1,2,…,300};
任务预测模块中为了给训练预测模型提供足够多的样本,对S'进行扩充,扩充后的属性参数尽可能的覆盖了算子的所有参数取值,从而有效地消除了不同模型对结果的影响;
步骤4c)任务预测模块将扩充后的参数集合S*和分配策略A作为基于深度Q网络的预测模型的输入进行训练,得到训练好的预测模型,并将参数集合S'和分配策略A作为训练好的预测模型的输入进行预测,得到最优任务分配策略A'={A'rn|1≤r≤4,1≤n≤12},然后将A'发送至推理模块,其中,A'rn表示Arn对应的最优任务分配策略:
步骤4c1)任务预测模块构建包括依次级联的输入层、隐藏层和输出层的深度Q网络的预测模型,其中,输入层包括15个神经元,输入向量为X={xi|i=1,2,…,15},xi表示输入层第i个神经元的输入值,隐藏层包括24个神经元,输出向量为Y={yj|j=1,2,…,24},yj表示隐藏层第j个神经元的输出值,输出层包括4个神经元,输出向量为Z={zk|k=1,2,3,4},zk表示输出层第k个神经元的输出值,输入层到隐藏层的权值矩阵为W1={wij|i=1,2,…,15,j=1,2,…,24},wij表示输入层第i个神经元到隐藏层第j个神经元的权值,隐藏层到输出层的权值矩阵为W2={wjk|j=1,2,…,24,k=1,2,3,4},wjk表示隐藏层第j个神经元到输出层第k个神经元的权重,其中:
其中,netj表示隐藏层第j个神经元的输入值,netk表示输出层第k个神经元的输入值,θj表示输出层第j个神经元的输出阈值,θk表示隐藏层第k个神经元的输出阈值,θj=0.5,θk=0.5;
输入层的输入向量为算子的属性参数和异构计算单元的硬件参数,深度Q网络用于模拟不同分配策略下的执行速度并将其作为输出;
步骤4c2)任务预测模块初始化迭代次数为t,最大迭代次数为T,并令T=5000,t=1;
步骤4c3)任务预测模块在参数集合S*中随机选取一组参数st={Sh,D}作为状态空间,同时将分配策略集合A中随机选取的4个分配策略{ak|k=1,2,3,4}作为行为空间;
步骤4c4)任务预测模块将st和ak作为深度Q网络的输入对ak的价值进行预测,得到价值集合Q={Q(st,ak)|k=1,2,…,4},并将其中数值最大的价值作为最高价值Q*,其中,Q(st,ak)表示状态空间为st时ak的价值;
步骤4c5)任务预测模块采用TD时序差分算法,并通过Q*对Q(st,ak)进行更新,更新公式为:
Q(st,ak)'=Q(st,ak)+λ(r(st,ak)+γQ*-Q(st,ak))
其中,Q(st,ak)'表示Q(st,ak)的更新结果,r(st,ak)表示Q(st,ak)的报酬值,λ表示学习因子,γ表示折扣系数,λ=0.8,γ=0.4;
步骤4c6)任务预测模块采用梯度下降法,同时根据Q(st,ak)'对深度Q网络各层间的权值矩阵进行更新,其计算公式为;
w'jk=wjk+αδkzk
w'ij=wij+αδjyj
δk=yj(1-yj)(Q(st,ak)'-zk)
其中,w'jk表示wjk更新后的权值,w'ij表示wij更新后的权值,δk表示输出层第k个神经元的一般误差,δj表示隐藏层第j个神经元的一般误差,α表示学习速率,α=0.4;
步骤4c7)任务预测模块判断t=T是否成立,若是,得到训练好的预测模型,然后执行步骤(4c8),否则,令t=t+1,并执行步骤(4c3);
步骤4c8)任务预测模块将S'和A作为训练好的预测模型输入进行检测,得到价值函数集合Q={Q(st,arn)|1≤r≤4,1≤n≤12},通过选取Q中的每一列价值{Q(st,a1n),Q(st,a2n),Q(st,a3n),Q(st,a4n)}中的数值最大的价值得到12个最大值,并将12个最大值对应的12个分配策略{arn|1≤r≤4,1≤n≤12}作为最优任务分配策略A';
预测模型输出每个分配策略对应的价值,并将每个算子分配给4个异构计算单元的4个分配策略中选择数值最大的价值对应的分配策略作为最优任务分配策略,实现每个算子在被分配到的异构计算单元上的执行速度最快,从而提高了深度神经网络的执行速度;
步骤5)推理模块对计算图进行推理:
推理模块根据最优任务分配策略A'将计算图中每个Gn中存储的算子Mn和每个G'uv中存储的算子间的数据流向关系M'uv发送到异构平台O中的异构计算单元Or,并通过每个异构计算单元Or执行接收到的Mn,同时根据M'uv对算子间流动的数据进行计算,得到执行深度神经网络的结果。
Claims (3)
1.一种基于异构平台执行深度神经网络的***,包括模型解析模块、分析模块、平台检测模块、任务分配模块和推理模块,其特征在于,所述平台检测模块、任务分配模块和推理模块是通过包含R个异构计算单元的异构平台O实现的,R≥1,其中:
所述模型解析模块,用于对基于深度学习训练的深度神经网络DNN模型进行序列化解析,将得到的包含N个算子的描述文件M和包含N'个算子间数据流向关系的描述文件M'发送至分析模块,同时对M中的N个算子进行遍历,并将遍历得到的N个算子的属性参数发送至任务分配模块;
所述分析模块,用于构建用于存储N个算子的结构体集合G和用于存储N'个算子间数据流向关系的结构体集合G',将M存储到G中,将M'存储到G'中,然后通过G和G'构建计算图,并将计算图发送至推理模块;
所述平台检测模块,用于检测异构平台O包含的R个异构计算单元的硬件参数,并将检测结果发送至任务分配模块;
所述任务分配模块,包括参数处理模块和任务预测模块;所述参数处理模块,用于对N个算子的属性参数与R个异构计算单元的硬件参数进行合并,同时对每个算子与每个异构计算单元进行组合,并将合并及组合结果发送至任务预测模块;所述任务预测模块,用于对合并结果进行扩充,然后根据扩充、合并及组合结果生成最优任务分配策略A',并将A'发送至推理模块;
所述推理模块,用于根据最优任务分配策略A'将计算图中的G中存储的M和G'中存储M'发送到异构平台O的R个异构计算单元上,通过每个异构计算单元执行接收到的算子并根据算子间数据流向关系进行计算。
2.一种基于异构平台执行深度神经网络的方法,其特征在于,包括以下步骤:
(1)模型解析模块对DNN模型进行解析:
(1a)模型解析模块采用protobuf库对基于深度学习训练的深度神经网络DNN模型进行序列化解析,得到包含N个算子的描述文件M={Mn|1≤n≤N}和包含N'个算子间数据流向关系的描述文件M'={M'uv|u,v∈[1,N]},并将M和M'发送至分析模块,其中,DNN模型包括Nconv个卷积算子、Npool个池化算子和Nfc个全连接算子,Nconv≥1,Npool≥1,Nfc≥1,Nconv+Npool+Nfc=N,Mn表示第n个算子,M'uv表示任意两个算子之间的数据流向关系;
(1b)模型解析模块对描述文件M中的N个算子进行遍历,得到N个算子的属性参数S,包括每个卷积算子的属性参数Sconv={C1,C2,C3}、每个池化算子的属性参数Spool={P1,P2}和每个全连接算子的属性参数Sfc={F1,F2},并将S发送到任务分配模块,其中,C1、C2和C3分别表示卷积核的大小、卷积层的通道数和卷积步长,P1和P2分别表示池化层的尺寸和步长,F1和F2分别表示全连接层的长度和宽度;
(2)分析模块构建计算图:
分析模块构建用于存储N个算子的结构体集合G={Gn|1≤n≤N}和用于存储N'个算子间的数据流向关系的结构体集合G'={G'uv|u,v∈[1,N]},并将每个算子Mn存储到对应的结构体Gn中,将算子间的数据流向关系M'uv存储到对应的结构体G'uv中,同时以每个Gn为节点,以每个G'uv为边构建有向无环的计算图,并将计算图发送至推理模块,其中,Gn表示储存第n个算子的结构体,G'uv表示储存M'uv对应数据流向关系的结构体;
(3)平台检测模块检测异构平台O中的异构计算单元的硬件参数:
平台检测模块对异构平台O={Or|1≤r≤R}中的每个异构计算单元Or包括芯片核心数目、芯片架构和主频的硬件参数进行检测,得到硬件参数集合D={Dr|1≤r≤R},并将D发送至任务分配模块,其中,Or表示第r个异构计算单元,Dr表示第r个异构计算单元Or对应的硬件参数;
(4)任务分配模块构建任务分配策略并进行优化:
(4a)参数处理模块对解析模块发送的N个算子的属性参数S和平台检测模块发送的D进行合并,得到参数集合S'={S,D},同时对每个算子Mn与每个异构计算单元Or进行组合,并将组合得到的N×R个组合体作为任务分配策略A={Arn|1≤r≤R,1≤n≤N},然后将参数集合S'和分配策略A发送至任务预测模块,其中,Arn表示第n个算子Mn和第r个异构计算单元Or形成的组合体对应的任务分配策略;
(4b)任务预测模块按照算子运算规则,对参数集合S'={S,D}所包含的属性参数S添加H组属性参数值,实现对S'的扩充,得到扩充后的参数集合S*={{S,D},{S1,D},…,{Sh,D},…,{SH,D}},其中,H≥100,Sh表示扩充的第h组属性参数值;
(4c)任务预测模块将扩充后的参数集合S*和分配策略A作为基于深度Q网络的预测模型的输入进行训练,得到训练好的预测模型,并将参数集合S'和分配策略A作为训练好的预测模型的输入进行预测,得到最优任务分配策略A'={A'rn|1≤r≤R,1≤n≤N},然后将A'发送至推理模块,其中,A'rn表示Arn对应的最优任务分配策略;
(5)推理模块对计算图进行推理:
推理模块根据最优任务分配策略A'将计算图中每个Gn中存储的算子Mn和每个G'uv中存储的算子间的数据流向关系M'uv发送到异构平台O中的异构计算单元Or,并通过每个异构计算单元Or执行接收到的Mn,同时根据M'uv对算子间流动的数据进行计算,得到执行深度神经网络的结果。
3.根据权利要求2所述的基于异构平台执行深度神经网络的方法,其特征在于,步骤(4c)中所述的最优任务分配策略A',其获取步骤为:
(4c1)任务预测模块构建包括依次级联的输入层、隐藏层和输出层的深度Q网络的预测模型,其中,输入层包括η个神经元,输入向量为X={xi|i=1,2,…,η},xi表示输入层第i个神经元的输入值,η≥5,隐藏层包括l个神经元,输出向量为Y={yj|j=1,2,…,l},yj表示隐藏层第j个神经元的输出值,l≥10,输出层包括m个神经元,输出向量为Z={zk|k=1,2,…,m},zk表示输出层第k个神经元的输出值,m≥1,输入层到隐藏层的权值矩阵为W1={wij|i=1,2,…,η,j=1,2,…,l},wij表示输入层第i个神经元到隐藏层第j个神经元的权值,隐藏层到输出层的权值矩阵为W2={wjk|j=1,2,…,l,k=1,2,…,m},wjk表示隐藏层第j个神经元到输出层第k个神经元的权重,其中:
其中,netj表示隐藏层第j个神经元的输入值,netk表示输出层第k个神经元的输入值,θj表示输出层第j个神经元的输出阈值,θk表示隐藏层第k个神经元的输出阈值,θj,θk∈(0,1);
(4c2)任务预测模块初始化迭代次数为t,最大迭代次数为T,T≥1000,并令t=1;
(4c3)任务预测模块在参数集合S*中随机选取一组参数st={Sh,D}作为状态空间,同时将分配策略集合A中随机选取的m个分配策略{ak|k=1,2,…,m}作为行为空间;
(4c4)任务预测模块将st和ak作为深度Q网络的输入对ak的价值进行预测,得到价值集合Q={Q(st,ak)|k=1,2,…,m},并将其中数值最大的价值作为最高价值Q*,其中,Q(st,ak)表示状态空间为st时ak的价值;
(4c5)任务预测模块采用TD时序差分算法,并通过Q*对Q(st,ak)进行更新,更新公式为:
Q(st,ak)'=Q(st,ak)+λ(r(st,ak)+γQ*-Q(st,ak))
其中,Q(st,ak)'表示Q(st,ak)的更新结果,r(st,ak)表示Q(st,ak)的报酬值,λ表示学习因子,γ表示折扣系数,λ,γ∈[0,1];
(4c6)任务预测模块采用梯度下降法,同时根据Q(st,ak)'对深度Q网络各层间的权值矩阵进行更新,更新公式为;
w'jk=wjk+αδkzk
w'ij=wij+αδjyj
δk=yj(1-yj)(Q(st,ak)'-zk)
其中,w'jk表示wjk更新后的权值,w'ij表示wij更新后的权值,δk表示输出层第k个神经元的误差,δj表示隐藏层第j个神经元的误差,α表示学习速率,α∈[0,1];
(4c7)任务预测模块判断t=T是否成立,若是,得到训练好的预测模型,然后执行步骤(4c8),否则,令t=t+1,并执行步骤(4c3);
(4c8)任务预测模块将S'和A作为训练好的预测模型的输入进行预测,得到价值集合Q={Q(st,arn)|1≤r≤R,1≤n≤N},通过选取Q中的每一列价值{Q(st,a1n),Q(st,a2n),…,Q(st,arn),…,Q(st,aRn)}中的数值最大的价值,得到N个最大值,并将N个最大值对应的N个分配策略{arn|1≤r≤R,1≤n≤N}作为最优任务分配策略A'。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011305477.2A CN112381211B (zh) | 2020-11-20 | 2020-11-20 | 基于异构平台执行深度神经网络的***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011305477.2A CN112381211B (zh) | 2020-11-20 | 2020-11-20 | 基于异构平台执行深度神经网络的***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112381211A true CN112381211A (zh) | 2021-02-19 |
CN112381211B CN112381211B (zh) | 2023-04-28 |
Family
ID=74584381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011305477.2A Active CN112381211B (zh) | 2020-11-20 | 2020-11-20 | 基于异构平台执行深度神经网络的***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112381211B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485801A (zh) * | 2021-06-25 | 2021-10-08 | 中国科学技术大学苏州高等研究院 | 基于神经网络相似度建模的实时dnn调度***及方法 |
CN113950103A (zh) * | 2021-09-10 | 2022-01-18 | 西安电子科技大学 | 一种移动边缘环境下多服务器完全计算卸载方法及*** |
CN114217688A (zh) * | 2021-12-24 | 2022-03-22 | 中国科学技术大学 | 一种基于神经网络结构的npu功耗优化***和方法 |
CN115421897A (zh) * | 2022-11-07 | 2022-12-02 | 之江实验室 | 一种面向芯粒的深度神经网络流水线并行调度方法及装置 |
CN115470901A (zh) * | 2022-09-06 | 2022-12-13 | 北京大学 | 支持移动端异构处理器分载的混合精度训练方法及设备 |
WO2023124677A1 (zh) * | 2021-12-30 | 2023-07-06 | 华为技术有限公司 | 数据处理的方法和计算平台 |
CN116991564A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
US11887353B1 (en) | 2022-09-21 | 2024-01-30 | Zhejiang Lab | Deep learning image classification oriented to heterogeneous computing device |
WO2024060810A1 (zh) * | 2022-09-21 | 2024-03-28 | 之江实验室 | 面向异构计算设备的深度学习图像分类 |
WO2024139812A1 (zh) * | 2022-12-28 | 2024-07-04 | 华为技术有限公司 | 一种资源类型数据的传输方法及相关装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443364A (zh) * | 2019-06-21 | 2019-11-12 | 深圳大学 | 一种深度神经网络多任务超参数优化方法及装置 |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN111061569A (zh) * | 2019-12-18 | 2020-04-24 | 北京工业大学 | 一种基于遗传算法的异构多核处理器任务分配与调度策略 |
US20200249998A1 (en) * | 2019-02-01 | 2020-08-06 | Alibaba Group Holding Limited | Scheduling computation graph heterogeneous computer system |
US20200272907A1 (en) * | 2019-02-22 | 2020-08-27 | Huazhong University Of Science And Technology | Deep learning heterogeneous computing method based on layer-wide memory allocation and system thereof |
CN111738434A (zh) * | 2020-06-03 | 2020-10-02 | 中国科学院计算技术研究所 | 在异构处理单元上执行深度神经网络的方法 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN111818139A (zh) * | 2020-06-28 | 2020-10-23 | 盾钰(上海)互联网科技有限公司 | 一种基于神经网络的无线异构控制计算*** |
CN111832714A (zh) * | 2019-04-19 | 2020-10-27 | 上海寒武纪信息科技有限公司 | 运算方法及装置 |
-
2020
- 2020-11-20 CN CN202011305477.2A patent/CN112381211B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200249998A1 (en) * | 2019-02-01 | 2020-08-06 | Alibaba Group Holding Limited | Scheduling computation graph heterogeneous computer system |
US20200272907A1 (en) * | 2019-02-22 | 2020-08-27 | Huazhong University Of Science And Technology | Deep learning heterogeneous computing method based on layer-wide memory allocation and system thereof |
CN111832714A (zh) * | 2019-04-19 | 2020-10-27 | 上海寒武纪信息科技有限公司 | 运算方法及装置 |
CN110443364A (zh) * | 2019-06-21 | 2019-11-12 | 深圳大学 | 一种深度神经网络多任务超参数优化方法及装置 |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN111061569A (zh) * | 2019-12-18 | 2020-04-24 | 北京工业大学 | 一种基于遗传算法的异构多核处理器任务分配与调度策略 |
CN111738434A (zh) * | 2020-06-03 | 2020-10-02 | 中国科学院计算技术研究所 | 在异构处理单元上执行深度神经网络的方法 |
CN111753948A (zh) * | 2020-06-23 | 2020-10-09 | 展讯通信(上海)有限公司 | 模型处理方法及相关设备 |
CN111818139A (zh) * | 2020-06-28 | 2020-10-23 | 盾钰(上海)互联网科技有限公司 | 一种基于神经网络的无线异构控制计算*** |
Non-Patent Citations (2)
Title |
---|
SAMIRA PAKDEL ET AL: "Using Heterogeneous Graph Nodes (HGNs) to Minimize Overall Graph Execution Time in Heterogeneous Distributed Systems Modeling", 《2019 27TH EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED AND NETWORK-BASED PROCESSING (PDP)》 * |
杨鹏飞: "片上网络异构多核***任务调度与映射", 《西安交通大学学报》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485801A (zh) * | 2021-06-25 | 2021-10-08 | 中国科学技术大学苏州高等研究院 | 基于神经网络相似度建模的实时dnn调度***及方法 |
CN113950103A (zh) * | 2021-09-10 | 2022-01-18 | 西安电子科技大学 | 一种移动边缘环境下多服务器完全计算卸载方法及*** |
CN114217688A (zh) * | 2021-12-24 | 2022-03-22 | 中国科学技术大学 | 一种基于神经网络结构的npu功耗优化***和方法 |
CN114217688B (zh) * | 2021-12-24 | 2024-05-10 | 中国科学技术大学 | 一种基于神经网络结构的npu功耗优化***和方法 |
WO2023124677A1 (zh) * | 2021-12-30 | 2023-07-06 | 华为技术有限公司 | 数据处理的方法和计算平台 |
CN115470901A (zh) * | 2022-09-06 | 2022-12-13 | 北京大学 | 支持移动端异构处理器分载的混合精度训练方法及设备 |
CN115470901B (zh) * | 2022-09-06 | 2023-05-19 | 北京大学 | 支持移动端异构处理器分载的混合精度训练方法及设备 |
US11887353B1 (en) | 2022-09-21 | 2024-01-30 | Zhejiang Lab | Deep learning image classification oriented to heterogeneous computing device |
WO2024060810A1 (zh) * | 2022-09-21 | 2024-03-28 | 之江实验室 | 面向异构计算设备的深度学习图像分类 |
CN115421897A (zh) * | 2022-11-07 | 2022-12-02 | 之江实验室 | 一种面向芯粒的深度神经网络流水线并行调度方法及装置 |
WO2024139812A1 (zh) * | 2022-12-28 | 2024-07-04 | 华为技术有限公司 | 一种资源类型数据的传输方法及相关装置 |
CN116991564B (zh) * | 2023-09-28 | 2024-01-09 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
CN116991564A (zh) * | 2023-09-28 | 2023-11-03 | 之江实验室 | 面向异构双核mcu的算子内并行加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112381211B (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112381211B (zh) | 基于异构平台执行深度神经网络的***及方法 | |
Swaminathan et al. | Sparse low rank factorization for deep neural network compression | |
Chen et al. | ReGAN: A pipelined ReRAM-based accelerator for generative adversarial networks | |
Yang et al. | Legonet: Efficient convolutional neural networks with lego filters | |
CN107239825A (zh) | 考虑负载均衡的深度神经网络压缩方法 | |
Lin et al. | Binarized convolutional neural networks with separable filters for efficient hardware acceleration | |
Yilmaz | Reservoir computing using cellular automata | |
Chen et al. | Tight compression: Compressing CNN model tightly through unstructured pruning and simulated annealing based permutation | |
Mohaimenuzzaman et al. | Pruning vs XNOR-Net: A comprehensive study of deep learning for audio classification on edge-devices | |
CN115862319A (zh) | 一种面向时空图自编码器的交通流量预测方法 | |
CN115512156A (zh) | 一种用于图像分类模型训练的自蒸馏训练方法 | |
Wu | Compression of fully-connected layer in neural network by kronecker product | |
Cai et al. | Efficient methods for deep learning | |
Kajkamhaeng et al. | SE-SqueezeNet: SqueezeNet extension with squeeze-and-excitation block | |
Zheng et al. | A novel and efficient model pruning method for deep convolutional neural networks by evaluating the direct and indirect effects of filters | |
Basirat et al. | Learning Task-specific Activation Functions using Genetic Programming. | |
CN115761654B (zh) | 一种车辆重识别方法 | |
Xu et al. | An efficient channel-level pruning for CNNs without fine-tuning | |
CN110472668B (zh) | 一种图像分类方法 | |
Wang et al. | Balancing memory-accessing and computing over sparse DNN accelerator via efficient data packaging | |
Xu et al. | Ultra-low Latency Adaptive Local Binary Spiking Neural Network with Accuracy Loss Estimator | |
Song et al. | Assessing machine learnability of image and graph representations for drone performance prediction | |
Guo et al. | Hybrid pruning for convolutional neural network convolution kernel | |
Gafour et al. | Genetic fractal image compression | |
Wang et al. | TB-DNN: A thin binarized deep neural network with high accuracy |
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 |