CN112364985A - 一种基于分布式编码的卷积优化方法 - Google Patents

一种基于分布式编码的卷积优化方法 Download PDF

Info

Publication number
CN112364985A
CN112364985A CN202011269076.6A CN202011269076A CN112364985A CN 112364985 A CN112364985 A CN 112364985A CN 202011269076 A CN202011269076 A CN 202011269076A CN 112364985 A CN112364985 A CN 112364985A
Authority
CN
China
Prior art keywords
matrix
convolution
coding
node
sub
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
CN202011269076.6A
Other languages
English (en)
Other versions
CN112364985B (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.)
Hohai University HHU
Original Assignee
Hohai University HHU
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 Hohai University HHU filed Critical Hohai University HHU
Priority to CN202011269076.6A priority Critical patent/CN112364985B/zh
Publication of CN112364985A publication Critical patent/CN112364985A/zh
Application granted granted Critical
Publication of CN112364985B publication Critical patent/CN112364985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Computational Mathematics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及一种基于分布式编码的卷积优化方法。该方法包括:将输入的初始矩阵分割成预设数量的分矩阵,分矩阵的大小为a×a;分别对各分矩阵进行编码,获得各编码矩阵,将各编码矩阵分别发送至对应的分节点;接收各分节点采用Winograd算法对编码矩阵进行卷积运算获得的分节点卷积运算结果;当接收到的分节点卷积运算结果个数达到预设值时,对接收到的各分节点卷积运算结果进行解码,获得各卷积结果;将各卷积结果进行拼接,获得最终卷积结果。通过Winograd算法计算卷积能够有效提升计算效率,分布式编码能够减轻straggler节点对于系统计算延迟的影响,缓解straggler节点拖慢系统执行任务时间的情况,从而提高了分布式系统运算速度。

Description

一种基于分布式编码的卷积优化方法
技术领域
本申请涉及分布式计算架构技术领域,特别是涉及一种基于分布式编码的卷积优化方法。
背景技术
卷积是一种积分变换的数学方法,其定义为两个变量在某范围内相乘后求和的结果。卷积在统计学、概率论、信号处理、计算机科学中都有着极为广泛的应用,且起到了至关重要的作用。在如今较为热门的深度学习领域,卷积也有着其重要的作用,当一个包含着大量冗余和无用信息的输入进入神经网络时,如何去除这些无用信息,只保留有用信息输入网络便成了一个关键的问题,卷积滤波在其中便担任了关键的角色,使用卷积运算对输入信息进行滤波进而提取特征的方法是卷积神经网络的基础,因此卷积神经网络便是卷积滤波与深度学习所结合的典型之一。
卷积在深度学习、图像处理等领域都有着广泛的应用,如何优化卷积在计算机中的运算,加速其运算速度便成了可以探讨的问题,同时随着分布式计算的发展,其使用也变得越来越普及,其中分布式系统中的straggler节点会拖慢整个系统执行任务的时间,导致分布式系统运算速度耗时长。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高分布式系统运算速度的一种基于分布式编码的卷积优化方法。
一种基于分布式编码的卷积优化方法,所述方法包括:
将输入的初始矩阵分割成预设数量的分矩阵,所述分矩阵的大小为a×a;
分别对各所述分矩阵进行编码,获得各编码矩阵;
将各所述编码矩阵分别发送至对应的分节点;
接收各分节点采用Winograd算法对所述编码矩阵进行卷积运算获得的分节点卷积运算结果;
当接收到的所述分节点卷积运算结果个数达到预设值时,对接收到的各所述分节点卷积运算结果进行解码,获得各卷积结果;
将各所述卷积结果进行拼接,获得最终卷积结果。
在其中一个实施例中,所述将输入的初始矩阵分割成预设数量的分矩阵,所述分矩阵的大小为a×a,包括:
根据输入的初始矩阵的大小和分矩阵的大小,确定所述初始矩阵的矩阵分割类型;
当所述初始矩阵的矩阵分割类型为第一类型时,直接将所述初始矩阵分割为预设数量的大小为a×a的分矩阵;
当所述初始矩阵的矩阵分割类型为第二类型时,根据所述初始矩阵的大小和分矩阵的大小,对所述初始矩阵进行补0填充,获得填充后的矩阵;
将所述填充后的矩阵分割为预设数量的大小为a×a的分矩阵。
在其中一个实施例中,所述根据输入的初始矩阵的大小和分矩阵的大小,确定所述初始矩阵的矩阵分割类型,包括:
计算
Figure BDA0002777058230000021
Figure BDA0002777058230000022
的值,当
Figure BDA0002777058230000023
Figure BDA0002777058230000024
的值都为整数时,所述初始矩阵的矩阵分割类型为第一类型;
Figure BDA0002777058230000025
Figure BDA0002777058230000026
的值中的任意一个以上不为整数时,所述初始矩阵的矩阵分割类型为第二类型。
在其中一个实施例中,所述分节点采用Winograd算法对所述编码矩阵进行卷积运算获得的分节点卷积运算结果的方式,包括:
根据所述编码矩阵的大小,确定卷积方式;
当所述卷积方式为第一种卷积方式时,直接采用Winograd算法对所述编码矩阵进行卷积运算,获得分节点卷积运算结果;
当所述卷积方式为第二种卷积方式时,按照编码分矩阵大小为4×4对所述编码矩阵进行分割,获得各编码分矩阵;
采用Winograd算法对各所述编码分矩阵进行卷积运算,获得各编码分矩阵的卷积运算结果;
按照各所述编码分矩阵在所述编码矩阵中的顺序,对各所述编码分矩阵的卷积运算结果进行拼接,获得分节点卷积运算结果。
在其中一个实施例中,所述Winograd算法所使用的转换矩阵分别用AT、G和BT表示,其中:
Figure BDA0002777058230000031
在其中一个实施例中,所述当接收到的所述分节点卷积运算结果个数达到预设值时,对接收到的各所述分节点卷积运算结果进行解码,获得各卷积结果,包括:
当接收到的分节点卷积运算结果个数达到预设值时,根据接收到的各所述分节点卷积运算结果,获得矩阵关系;
对所述矩阵关系中的范德蒙矩阵进行求逆,获得范德蒙矩阵的逆矩阵;
将所述范德蒙矩阵的逆矩阵与各所述分节点卷积运算结果组成的矩阵进行矩阵乘法计算,获得各卷积结果。
在其中一个实施例中,所述预设值根据所述初始矩阵的大小和所述分矩阵的大小确定,预设值的确定公式为:
Figure BDA0002777058230000032
其中,h为预设值,m为所述初始矩阵的行数,n为所述初始矩阵的列数,a为分矩阵的行数或列数。
在其中一个实施例中,所述将各所述卷积结果进行拼接,获得最终卷积结果,包括:
当所述初始矩阵的矩阵分割类型为第一类型时,将各所述卷积结果进行拼接,获得最终卷积结果;
当所述初始矩阵的矩阵分割类型为第二类型时,将各所述卷积结果进行拼接,获得初步卷积结果矩阵;
根据所述初始矩阵中被填充的行和列,将所述初步卷积结果矩阵中对应的行和列进行删除,获得最终卷积结果。
上述一种基于分布式编码的卷积优化方法,将输入的初始矩阵分割成预设数量的分矩阵,分矩阵的大小为a×a;分别对各分矩阵进行编码,获得各编码矩阵,将各编码矩阵分别发送至对应的分节点;接收各分节点采用Winograd算法对编码矩阵进行卷积运算获得的分节点卷积运算结果;当接收到的分节点卷积运算结果个数达到预设值时,对接收到的各分节点卷积运算结果进行解码,获得各卷积结果;将各卷积结果进行拼接,获得最终卷积结果。通过Winograd算法计算卷积能够有效提升计算效率,分布式编码能够减轻straggler节点对于系统计算延迟的影响,缓解straggler节点拖慢系统执行任务时间的情况,从而提高了分布式系统运算速度。
附图说明
图1为一个实施例中一种基于分布式编码的卷积优化方法的流程示意图;
图2为一个实施例中分布式系统的主节点编码解码进程的流程示意图;
图3为一个实施例中分布式系统的分节点处理的流程示意图;
图4为另一个实施例中一种基于分布式编码的卷积优化方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种基于分布式编码的卷积优化方法,包括以下步骤:
步骤S220,将输入的初始矩阵分割成预设数量的分矩阵,分矩阵的大小为a×a。
其中,分布式系统的主节点将输入的初始矩阵分割成预设数量的分矩阵,分矩阵的大小为a×a。预设数量根据分布式系统的分节点个数、初始矩阵大小和分矩阵的大小确定,将预设数量用l表示,l(l=j×k,l≤i-1),
Figure BDA0002777058230000051
a≥4,其中,m为初始矩阵的行数,n为初始矩阵的列数,a为分矩阵的行数或列数,i为分节点个数。
在一个实施例中,参阅图2,将输入的初始矩阵分割成预设数量的分矩阵,分矩阵的大小为a×a,包括:
根据输入的初始矩阵的大小和分矩阵的大小,确定初始矩阵的矩阵分割类型;当初始矩阵的矩阵分割类型为第一类型时,直接将初始矩阵分割为预设数量的大小为a×a的分矩阵;当初始矩阵的矩阵分割类型为第二类型时,根据初始矩阵的大小和分矩阵的大小,对初始矩阵进行补0填充,获得填充后的矩阵;将填充后的矩阵分割为预设数量的大小为a×a的分矩阵。
其中,根据输入的初始矩阵的大小和分矩阵的大小,确定初始矩阵的矩阵分割类型,具体为:计算
Figure BDA0002777058230000052
Figure BDA0002777058230000053
的值,当
Figure BDA0002777058230000054
Figure BDA0002777058230000055
的值都为整数时,初始矩阵的矩阵分割类型为第一类型(即图2中的情况1);当
Figure BDA0002777058230000061
Figure BDA0002777058230000062
的值中的任意一个以上不为整数时,初始矩阵的矩阵分割类型为第二类型(即图2中的情况2)。
当初始矩阵的矩阵分割类型为第一类型时,直接将初始矩阵分割为预设数量的大小为a×a的分矩阵,具体地,
初始矩阵用D表示,如下:
Figure BDA0002777058230000063
对初始矩阵进行分割后,每个分矩阵用Dj,k表示,如下:
Figure BDA0002777058230000064
对初始矩阵进行分割后,各分矩阵所组成的集合可表示为:
Figure BDA0002777058230000065
当初始矩阵的矩阵分割类型为第二类型时,根据初始矩阵的大小和分矩阵的大小,对初始矩阵进行补0填充,获得填充后的矩阵;将填充后的矩阵分割为预设数量的大小为a×a的分矩阵,具体地:
初始矩阵用D表示,如下:
Figure BDA0002777058230000066
此时取
Figure BDA0002777058230000067
根据计算所得j,k可计算出填充后矩阵的行数m′=j(a-2)+a和列数n′=k(a-2)+a,用0将输入矩阵填充为大小为m′×n′的矩阵,该矩阵则为填充后的矩阵,即可对填充后的矩阵进行分割,分割后,每个分矩阵用Dj,k表示,如下:
Figure BDA0002777058230000071
分割后,各分矩阵所组成的集合可表示为:
Figure BDA0002777058230000072
步骤S240,分别对各分矩阵进行编码,获得各编码矩阵。
其中,请参阅图2,主节点将分割好的l个分矩阵进行编码,编码时,根据分节点的个数进行编码,将l个分矩阵编码后,得到i个编码矩阵,用
Figure BDA0002777058230000075
表示,其中,i对应每个分节点的序号,使用变量xi代替分节点序号,编码规则可表示为:
Figure BDA0002777058230000073
根据该编码规则对各分矩阵进行编码操作后,获得各编码矩阵,将各编码矩阵存储于主节点中。
步骤S260,将各编码矩阵分别发送至对应的分节点。
其中,主节点对于初始矩阵D的分割和编码,得到i个编码矩阵,将每个编码矩阵经过序列化后发送至各分节点(每个编码矩阵与每个分节点一一对应,如:编码矩阵
Figure BDA0002777058230000074
发送至第1个分节点,每个编码矩阵下标与分节点序号相对应),主节点完成了编码进程。
步骤S280,接收各分节点采用Winograd算法对编码矩阵进行卷积运算获得的分节点卷积运算结果。
其中,参阅图2,主节点接收各分节点返回的分节点卷积运算结果,分节点卷积运算结果是分节点采用Winograd算法对编码矩阵进行卷积运算获得的。Winograd算法是一种卷积加速算法,Winograd算法所使用的转换矩阵分别用AT、G和BT表示,其中:
Figure BDA0002777058230000081
在一个实施例中,参阅图3,分节点采用Winograd算法对编码矩阵进行卷积运算获得的分节点卷积运算结果的方式,包括:
根据编码矩阵的大小,确定卷积方式;当卷积方式为第一种卷积方式时,直接采用Winograd算法对编码矩阵进行卷积运算,获得分节点卷积运算结果;当卷积方式为第二种卷积方式时,按照编码分矩阵大小为4×4对编码矩阵进行分割,获得各编码分矩阵;采用Winograd算法对各编码分矩阵进行卷积运算,获得各编码分矩阵的卷积运算结果;按照各编码分矩阵在编码矩阵中的顺序,对各编码分矩阵的卷积运算结果进行拼接,获得分节点卷积运算结果。
其中,根据编码矩阵的大小,确定卷积方式,具体地,编码矩阵的大小与分矩阵的大小一样为a×a,如果a等于4,则卷积方式为第一种卷积方式,如果a大于4,则卷积方式为第二种卷积方式。
当卷积方式为第一种卷积方式时,分节点直接采用Winograd算法对编码矩阵进行卷积运算,获得分节点卷积运算结果,具体地:直接使用计算公式计算卷积结果,计算公式为:
Figure BDA0002777058230000082
其中,⊙表示为两个矩阵对应位相乘,D′表示为分节点接收到的编码矩阵,即主节点发送给i分节点的
Figure BDA0002777058230000083
Figure BDA0002777058230000084
表示为分节点卷积运算结果。分节点完成卷积运算操作后,将计算结果返回主节点。
当卷积方式为第二种卷积方式时,分节点按照编码分矩阵大小为4×4对编码矩阵进行分割,获得各编码分矩阵;采用Winograd算法对各编码分矩阵进行卷积运算,获得各编码分矩阵的卷积运算结果;按照各编码分矩阵在编码矩阵中的顺序,对各编码分矩阵的卷积运算结果进行拼接,获得分节点卷积运算结果,具体地:使用矩阵分割方法将编码矩阵D′分割成若干个大小为4×4的矩阵,得到各编码分矩阵,使用
Figure BDA0002777058230000091
计算每一个编码分矩阵的卷积结果,获得各编码分矩阵的卷积运算结果,将每一个编码分矩阵的卷积运算结果,按照各编码分矩阵分割前编码矩阵中的顺序进行拼接,获得分节点卷积运算结果。若在分割过程中未对编码矩阵D′进行补0操作,则此拼接矩阵即为分节点卷积运算结果
Figure BDA0002777058230000093
若在分割过程中对编码矩阵D′进行了补0操作,则将最终拼接好的矩阵中进行了补0操作的行和列删去,此时的矩阵即为分节点卷积运算结果
Figure BDA0002777058230000094
分节点完成卷积运算操作后,将分节点卷积运算结果返回主节点。
使用矩阵分割方法将编码矩阵D′分割成f个大小为4×4的矩阵,得到各编码分矩阵的方式,和对初始矩阵进行分割的方式一致,即:根据编码矩阵D′的大小和编码分矩阵的大小,确定编码矩阵D′是否需要进行补0操作;编码矩阵D′不需要进行补0操作,直接将编码矩阵D′分割为f个大小为4×4的编码分矩阵;编码矩阵D′需要进行补0操作,根据编码矩阵D′的大小和编码分矩阵的大小,对编码矩阵D′进行补0填充,获得填充后的矩阵;将填充后的矩阵分割为f个大小为4×4的编码分矩阵,f个根据编码分矩阵的大小和编码矩阵D′的大小确定,即:
f=j×k;
Figure BDA0002777058230000092
其中,c为编码矩阵D′的行数,d为编码矩阵D′的列数,且a=c=d,f表示编码分矩阵的个数。
步骤S300,当接收到的分节点卷积运算结果个数达到预设值时,对接收到的各分节点卷积运算结果进行解码,获得各卷积结果。
其中,参阅图2,主节点在接收到的分节点卷积运算结果个数达到预设值时,对接收到的各分节点卷积运算结果进行解码,获得各卷积结果。预设值根据初始矩阵的大小和分矩阵的大小确定,确定公式为:
Figure BDA0002777058230000101
其中,h为预设值,m为所述初始矩阵的行数,n为所述初始矩阵的列数,a为分矩阵的行数或列数。
在一个实施例中,当接收到的分节点卷积运算结果个数达到预设值时,对接收到的各分节点卷积运算结果进行解码,获得各卷积结果,包括:
当接收到的分节点卷积运算结果个数达到预设值时,根据接收到的各分节点卷积运算结果,获得矩阵关系;对矩阵关系中的范德蒙矩阵进行求逆,获得范德蒙矩阵的逆矩阵;将范德蒙矩阵的逆矩阵与各分节点卷积运算结果组成的矩阵进行矩阵乘法计算,获得各卷积结果。
其中,范德蒙矩阵是一种各列为几何级数的矩阵。主节点接收到i个分节点中任意h个分节点返回结果,可得到如下的矩阵关系:
Figure BDA0002777058230000102
等号右边的矩阵为标准的范德蒙矩阵,其必定可逆,即必然存在逆矩阵,因此将范德蒙矩阵的逆矩阵与h个分节点卷积运算结果所组成的矩阵相乘,便可得到初始矩阵分割后的每一部分分矩阵与卷积核W的卷积结果Y′j,k
Figure BDA0002777058230000111
解码完成后,保留每一部分分矩阵和卷积核的卷积结果Y′j,k
步骤S320,将各卷积结果进行拼接,获得最终卷积结果。
其中,主节点通过步骤S300的特殊解码方法获得了h个分矩阵与卷积核W的卷积结果Y′j,k,对获取各卷积结果进行拼接,并最终获取完整的卷积结果Y,即最终卷积结果。矩阵拼接共涉及两种情况,一种是在步骤S220中输入初始矩阵D未进行补0操作,一种是在步骤S220中进行了补0操作,根据这两种情况,采用不同的拼接步骤。
在一个实施例中,将各卷积结果进行拼接,获得最终卷积结果,包括:
当初始矩阵的矩阵分割类型为第一类型时,将各卷积结果进行拼接,获得最终卷积结果;当初始矩阵的矩阵分割类型为第二类型时,将各卷积结果进行拼接,获得初步卷积结果矩阵;根据初始矩阵中被填充的行和列,将初步卷积结果矩阵中对应的行和列进行删除,获得最终卷积结果。
其中,当初始矩阵的矩阵分割类型为第一类型时,也就是初始矩阵D未进行补0操作,将各卷积结果进行拼接,获得最终卷积结果,具体地:按照下标j,k的值所对应的位置,将每一个Y′j,k拼接好后,即可获得最终卷积结果Y。
当初始矩阵的矩阵分割类型为第二类型时,也就是初始矩阵D进行了补0操作,将各卷积结果进行拼接,获得初步卷积结果矩阵;根据初始矩阵中被填充的行和列,将初步卷积结果矩阵中对应的行和列进行删除,获得最终卷积结果,具体地:按照下标j,k的值所对应的位置,首先将每一个Y′j,k拼接好,得到初步卷积结果矩阵。由步骤S220可知,经过填充后的初始矩阵的行列数分别为m′=j(a-2)+a和n′=k(a-2)+a,其中:
Figure BDA0002777058230000121
因此输入矩阵每行和每列分别补了m′-m和n′-n个0,拼接结束后将初步卷积结果矩阵的最后m′-m行和最后n′-n列删除即可获得最终卷积结果Y,主节点完成解码进程。
上述一种基于分布式编码的卷积优化方法,将输入的初始矩阵分割成预设数量的分矩阵,分矩阵的大小为a×a;分别对各分矩阵进行编码,获得各编码矩阵,将各编码矩阵分别发送至对应的分节点;接收各分节点采用Winograd算法对编码矩阵进行卷积运算获得的分节点卷积运算结果;当接收到的分节点卷积运算结果个数达到预设值时,对接收到的各分节点卷积运算结果进行解码,获得各卷积结果;将各卷积结果进行拼接,获得最终卷积结果。通过Winograd算法计算卷积能够有效提升计算效率,分布式编码能够减轻straggler节点对于系统计算延迟的影响,缓解straggler节点拖慢系统执行任务时间的情况,从而提高了分布式系统运算速度。
在一个实施例中,请参阅图4,提供了一种基于分布式编码的卷积优化方法,以拥有一个主节点和五个分节点的分布式系统中使用分布式编码卷积算法进行卷积计算输入初始矩阵D大小为5×5,卷积核W大小为3×3举例进行说明。
Figure BDA0002777058230000122
步骤1:将输入的初始矩阵D分割成4个大小为4×4的分矩阵,即m=n=5,a=4,计算可得在不取整的情况下j,k都不为整数,因此要对输入的初始矩阵进行补0操作,取
Figure BDA0002777058230000131
即j=k=2,可根据j,k的值计算填充后的矩阵的行数和列数,由m′=j(a-2)+a和n′=k(a-2)+a可计算得m′=n′=6,因此需将输入的初始矩阵D使用数字0填充至6×6大小。将填充后的矩阵进行矩阵分割可得4个分矩阵:
Figure BDA0002777058230000132
Figure BDA0002777058230000133
步骤2:对分割好的4个分矩阵进行编码,根据编码规则
Figure BDA0002777058230000134
Figure BDA0002777058230000135
可得各编码矩阵:
Figure BDA0002777058230000136
矩阵编码完成后,进入步骤3。
步骤3:将5个编码矩阵按照下标序号,一一对应的发送至相应的分节点,当所有分节点接收到对应的编码矩阵数据,进入步骤4。
步骤4:分节点接收到编码矩阵后,开始使用Winograd算法计算卷积结果,由于所有分节点的计算流程相同,因此,此处仅说明一个分节点的计算流程,以分节点2为例。分节点2接收到主节点发送来的编码矩阵D′,由步骤1可得知,分节点接收到的编码矩阵大小为4×4,因此直接使用
Figure BDA0002777058230000141
计算分节点2的分节点卷积运算结果
Figure BDA0002777058230000142
其中转换矩阵AT、G和BT的值如下所示:
Figure BDA0002777058230000143
计算完毕后,将分节点卷积运算结果
Figure BDA0002777058230000144
返回主节点,其他分节点于分节点2相同,当足够数量的分节点返回计算结果后,进入步骤5。
步骤5:经过步骤4中的分节点计算和分节点卷积运算结果返回过程,此时,当主节点接收到
Figure BDA0002777058230000145
个分节点返回的分节点卷积运算结果时,可以开始执行解码步骤,此处假设分节点3由于网络及节点自身原因,未能及时将分节点卷积运算结果
Figure BDA0002777058230000146
返回主节点,即分节点3成为了影响系统性能的straggler节点,但由于分布式编码的存在,分节点3未能及时返回分节点卷积运算结果的情况并不影响主节点通过解码恢复最终卷积结果。主节点接收到的4个返回的分节点卷积运算结果分别为
Figure BDA0002777058230000147
Figure BDA0002777058230000148
此时可得到如下所示的矩阵关系:
Figure BDA0002777058230000149
通过对其中的范德蒙矩阵求逆,并与由主节点所获取的4个返回的分节点卷积运算结果组成的矩阵进行矩阵乘法计算,最终可求得每一部分分矩阵与卷积核W的卷积结果Y′j,k,如下所示:
Figure BDA0002777058230000151
主节点完成解码,保留各分矩阵与卷积核的卷积结果,进入步骤6。
步骤6:步骤5中通过解码获得了分矩阵与卷积核的卷积结果,此步骤将完成对于所有卷积结果的拼接过程。由于在步骤1初始矩阵分割的过程中,对于输入初始矩阵D进行了补0操作。因此需要在拼接完成后要对拼接结果进行部分删除而获得最终卷积结果Y。由步骤1可知,经过填充后的矩阵的行数和列数分别为m′=n′=6,输入初始矩阵D的大小为5×5,因此输入初始矩阵分别补了1行和1列,所以在拼接完成后,将拼接后的矩阵的最后1行和最后1列删除,最终便可获得最终卷积结果Y。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种基于分布式编码的卷积优化方法,其特征在于,所述方法包括:
将输入的初始矩阵分割成预设数量的分矩阵,所述分矩阵的大小为a×a;
分别对各所述分矩阵进行编码,获得各编码矩阵;
将各所述编码矩阵分别发送至对应的分节点;
接收各分节点采用Winograd算法对所述编码矩阵进行卷积运算获得的分节点卷积运算结果;
当接收到的所述分节点卷积运算结果个数达到预设值时,对接收到的各所述分节点卷积运算结果进行解码,获得各卷积结果;
将各所述卷积结果进行拼接,获得最终卷积结果。
2.根据权利要求1所述的方法,其特征在于,所述将输入的初始矩阵分割成预设数量的分矩阵,所述分矩阵的大小为a×a,包括:
根据输入的初始矩阵的大小和分矩阵的大小,确定所述初始矩阵的矩阵分割类型;
当所述初始矩阵的矩阵分割类型为第一类型时,直接将所述初始矩阵分割为预设数量的大小为a×a的分矩阵;
当所述初始矩阵的矩阵分割类型为第二类型时,根据所述初始矩阵的大小和分矩阵的大小,对所述初始矩阵进行补0填充,获得填充后的矩阵;
将所述填充后的矩阵分割为预设数量的大小为a×a的分矩阵。
3.根据权利要求1所述的方法,其特征在于,所述根据输入的初始矩阵的大小和分矩阵的大小,确定所述初始矩阵的矩阵分割类型,包括:
计算
Figure FDA0002777058220000011
Figure FDA0002777058220000012
的值,当
Figure FDA0002777058220000013
Figure FDA0002777058220000014
的值都为整数时,所述初始矩阵的矩阵分割类型为第一类型;
Figure FDA0002777058220000015
Figure FDA0002777058220000016
的值中的任意一个以上不为整数时,所述初始矩阵的矩阵分割类型为第二类型。
4.根据权利要求1所述的方法,其特征在于,所述分节点采用Winograd算法对所述编码矩阵进行卷积运算获得的分节点卷积运算结果的方式,包括:
根据所述编码矩阵的大小,确定卷积方式;
当所述卷积方式为第一种卷积方式时,直接采用Winograd算法对所述编码矩阵进行卷积运算,获得分节点卷积运算结果;
当所述卷积方式为第二种卷积方式时,按照编码分矩阵大小为4×4对所述编码矩阵进行分割,获得各编码分矩阵;
采用Winograd算法对各所述编码分矩阵进行卷积运算,获得各编码分矩阵的卷积运算结果;
按照各所述编码分矩阵在所述编码矩阵中的顺序,对各所述编码分矩阵的卷积运算结果进行拼接,获得分节点卷积运算结果。
5.根据权利要求4所述的方法,其特征在于,所述Winograd算法所使用的转换矩阵分别用AT、G和BT表示,其中:
Figure FDA0002777058220000021
6.根据权利要求1所述的方法,其特征在于,所述当接收到的所述分节点卷积运算结果个数达到预设值时,对接收到的各所述分节点卷积运算结果进行解码,获得各卷积结果,包括:
当接收到的分节点卷积运算结果个数达到预设值时,根据接收到的各所述分节点卷积运算结果,获得矩阵关系;
对所述矩阵关系中的范德蒙矩阵进行求逆,获得范德蒙矩阵的逆矩阵;
将所述范德蒙矩阵的逆矩阵与各所述分节点卷积运算结果组成的矩阵进行矩阵乘法计算,获得各卷积结果。
7.根据权利要求6所述的方法,其特征在于,所述预设值根据所述初始矩阵的大小和所述分矩阵的大小确定,预设值的确定公式为:
Figure FDA0002777058220000031
其中,h为预设值,m为所述初始矩阵的行数,n为所述初始矩阵的列数,a为分矩阵的行数或列数。
8.根据权利要求2所述的方法,其特征在于,所述将各所述卷积结果进行拼接,获得最终卷积结果,包括:
当所述初始矩阵的矩阵分割类型为第一类型时,将各所述卷积结果进行拼接,获得最终卷积结果;
当所述初始矩阵的矩阵分割类型为第二类型时,将各所述卷积结果进行拼接,获得初步卷积结果矩阵;
根据所述初始矩阵中被填充的行和列,将所述初步卷积结果矩阵中对应的行和列进行删除,获得最终卷积结果。
CN202011269076.6A 2020-11-13 2020-11-13 一种基于分布式编码的卷积优化方法 Active CN112364985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011269076.6A CN112364985B (zh) 2020-11-13 2020-11-13 一种基于分布式编码的卷积优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011269076.6A CN112364985B (zh) 2020-11-13 2020-11-13 一种基于分布式编码的卷积优化方法

Publications (2)

Publication Number Publication Date
CN112364985A true CN112364985A (zh) 2021-02-12
CN112364985B CN112364985B (zh) 2023-07-18

Family

ID=74514727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011269076.6A Active CN112364985B (zh) 2020-11-13 2020-11-13 一种基于分布式编码的卷积优化方法

Country Status (1)

Country Link
CN (1) CN112364985B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114724133A (zh) * 2022-04-18 2022-07-08 北京百度网讯科技有限公司 文字检测和模型训练方法、装置、设备及存储介质
WO2022246952A1 (zh) * 2021-05-26 2022-12-01 南京大学 基于多主节点主从分布式架构的容错方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764675A (zh) * 2009-12-23 2010-06-30 北京邮电大学 分布式网络中的编码资源自适应调度算法
CN110404184A (zh) * 2019-06-13 2019-11-05 苏州同调医学科技有限公司 一种测算放疗射线剂量分布和剂量目标函数的方法和系统
CN111381968A (zh) * 2020-03-11 2020-07-07 中山大学 一种高效运行深度学习任务的卷积运算优化方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764675A (zh) * 2009-12-23 2010-06-30 北京邮电大学 分布式网络中的编码资源自适应调度算法
CN110404184A (zh) * 2019-06-13 2019-11-05 苏州同调医学科技有限公司 一种测算放疗射线剂量分布和剂量目标函数的方法和系统
CN111381968A (zh) * 2020-03-11 2020-07-07 中山大学 一种高效运行深度学习任务的卷积运算优化方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022246952A1 (zh) * 2021-05-26 2022-12-01 南京大学 基于多主节点主从分布式架构的容错方法及系统
CN114724133A (zh) * 2022-04-18 2022-07-08 北京百度网讯科技有限公司 文字检测和模型训练方法、装置、设备及存储介质
CN114724133B (zh) * 2022-04-18 2024-02-02 北京百度网讯科技有限公司 文字检测和模型训练方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112364985B (zh) 2023-07-18

Similar Documents

Publication Publication Date Title
JP4559505B2 (ja) ランダム系列の反復周期の拡張
KR102338211B1 (ko) 서로 다른 두 개의 양자 오류 정정 부호로 인코딩된 논리적 벨 양자 상태를 구현하는 양자 회로 및 방법
CN101273532B (zh) 解码装置及接收装置
CN107786211B (zh) 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器
CN112364985A (zh) 一种基于分布式编码的卷积优化方法
CN106998208B (zh) 一种可变长Polar码的码字构造方法
CN110109646B (zh) 数据处理方法、装置和乘加器及存储介质
CN105099467B (zh) Qc-ldpc码的编码方法及编码装置
CN114640354A (zh) 数据压缩方法、装置、电子设备及计算机可读存储介质
CN112332857B (zh) 一种用于ldpc码的循环移位网络系统及循环移位方法
CN117808101A (zh) 一种基于fpga的神经网络推理方法、系统及存储介质
Yankov Self-dual [62, 31, 12] and [64, 32, 12] codes with an automorphism of order 7.
CN112804029A (zh) 基于ldpc码的bats码的传输方法、装置、设备及可读存储介质
CN108347250B (zh) 适用于少量冗余里德-所罗门码的快速编码方法及设备
CN113222160A (zh) 一种量子态的转换方法及装置
CN108933604B (zh) 一种变量节点处理方法及装置
CN106209115B (zh) 一种数据处理方法及电子设备
CN110990776B (zh) 编码分布式计算方法、装置、计算机设备及存储介质
Riet et al. Batch codes for asynchronous recovery of data
CN109274460B (zh) 一种多比特并行结构串行抵消译码方法和装置
CN114124107A (zh) 一种循环冗余校验的计算方法和装置
CN112583420B (zh) 一种数据处理方法和译码器
WO2015133095A1 (ja) パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体
CA3140980A1 (en) Systems for emulating a quantum computer and methods for use therewith
CN105897278A (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