一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

矩阵运算装置与矩阵运算方法与流程

2022-02-22 08:00:22 来源:中国专利 TAG:

1.本发明涉及一种技术,且特别涉及一种矩阵运算装置与矩阵运算方法。
背景技术
:2.在人工智能(artificialintelligence,ai)中,或是类神经网络(neuralnetwork),往往会执行大量的矩阵乘法计算。gemm(generalmatrixmultiplication通用矩阵乘法)是深度学习的核心运算单元。作为实例,自然语言处理(naturallanguageprocessing,nlp)模型有大量gemm计算。基于gemm,在计算机视觉(computervision,cv)模型中也有大量卷积(convolution)运算。有些典型卷积运算本身就是gemm计算。为了加速gemm计算,模型矩阵可以在训练后采用稀疏化处理,以把在模型矩阵中的一部分绝对值小于一定阈值的模型权重强制为0。按权重绝对值大小通用稀疏处理后模型矩阵中0的分布是随机的,没有固定结构。一方面而言,修正线性单元(rectifiedlinearunit,relu)是cv模型中常用的激活函数。relu计算导致矩阵的负值被转换为0。经过relu计算,作为矩阵输入之一的实时中间张量(tensor)存在大量随机分布的0。3.如此一来,在现有的人工智能及类神经网络中的运算中,会对大量的稀疏矩阵(sparsematrix)执行矩阵乘法运算。特别是零占比5%-95%的矩阵乘法加速对人工智能及类神经网络整体性能影响很大,如何更通用也更有效率地对稀疏矩阵执行矩阵乘法运算加速,是本领域的重要技术课题之一。技术实现要素:4.本发明提供一种矩阵运算装置与矩阵运算方法,以加速对稀疏矩阵(sparsematrix)的矩阵乘法运算。5.在根据本发明的实施例中,所述矩阵运算装置包括存储单元、第一选择电路、乘法器数组(multiplierarray)、第二选择电路以及累加器数组(accumulatorarray)。存储单元适于存储第一矩阵与第二矩阵。第一选择电路耦接至存储单元以及乘法器数组。第一选择电路根据非零索引表的任一笔数据的行索引(rowindex)与列索引(columnindex)从第一矩阵与第二矩阵其中一者提取对应元素值给乘法器数组的对应列(column)或对应行(row)中的多个乘法器的每一个的乘法器第一输入端。第一选择电路根据所述行索引或所述列索引从第一矩阵与第二矩阵其中另一者的对应列或对应行提取全部元素值作为多个第二元素值。第一选择电路将这些第二元素值的每一个分别提供给乘法器数组的对应列或对应行中的多个乘法器的一个对应乘法器的乘法器第二输入端。乘法器数组的多个乘法器的每一个被配置为执行乘积运算。第二选择电路耦接至乘法器数组以及累加器数组。第二选择电路根据所述列索引或所述行索引从累加器数组中选择一个经选列或一个经选行。第二选择电路将在乘法器数组的所述对应列或所述对应行中的每一个乘法器的输出分别传输给累加器数组的所述经选列或所述经选行中的这些累加器的一个对应累加器的输入端。累加器数组的每一个累加器被配置为执行累加运算。6.在根据本发明的实施例中,所述矩阵运算方法包括:由存储单元存储第一矩阵与第二矩阵;根据非零索引表的任一笔数据的行索引与列索引从第一矩阵与第二矩阵其中一者提取对应元素值给乘法器数组的对应列或对应行中的多个乘法器的每一个的乘法器第一输入端;根据所述行索引或所述列索引从第一矩阵与第二矩阵其中另一者的对应列或对应行提取全部元素值作为多个第二元素值;将这些第二元素值的每一个提供给乘法器数组的所述对应列或所述对应行中的这些乘法器的一个对应乘法器的乘法器第二输入端;由乘法器数组的多个乘法器的每一个执行乘积运算;根据所述列索引或所述行索引从累加器数组中选择一个经选列或一个经选行;将在乘法器数组的所述对应列或所述对应行中的每一个乘法器的输出传输给累加器数组的所述经选列或所述经选行中的这些累加器的一个对应累加器的输入端;以及由所述累加器数组的多个累加器的每一个执行累加运算。7.基于上述,本发明诸实施例所述非零索引表可以提供第一矩阵的行索引与列索引(亦即在第一矩阵中,非零元素的行位置与列位置)。基于选择电路的选择操作(切换操作),第一矩阵的零元素可以被有效排除而不会占用乘法器数组的计算资源。因此,矩阵运算装置可以加速对稀疏矩阵(例如是第一矩阵)的矩阵乘法运算。附图说明8.图1是依照本发明的一实施例的一种矩阵运算装置的电路方块(circuitblock)示意图。9.图2是依照本发明的一实施例所绘示,图1所示乘加运算单元的电路方块示意图。10.图3是依照本发明的另一实施例的一种矩阵运算装置的电路方块示意图。11.图4是依照本发明的另一实施例的一种矩阵运算方法的流程示意图。12.图5是依照本发明的一实施例所绘示,图3所示第一选择电路、乘法器数组与累加器数组的电路方块示意图。13.图6是依照本发明的另一实施例所绘示,图3所示第一选择电路、乘法器数组与累加器数组的电路方块示意图。14.附图标记说明15.100、300:矩阵运算装置16.210:乘法器17.220、acc:累加器18.221:加法器19.222:缓存器20.310:存储单元21.320:第一选择电路22.321、323:扫描电路23.322、324:选择器24.330:乘法器数组25.340:第二选择电路26.350:累加器数组27.a、b:矩阵28.a1,1、a1,2、a1,n、a1,p、a2,1、a2,2、a2,n、a2,p、am,1、am,2、am,n、am,p、b1,1、b1,2、b1,k、b2,1、b2,2、b2,k、bn,1、bn,2、bn,k、bp,1、bp,2、bp,k、c1,1、c1,2、c1,k、c2,1、c2,2、c2,k、cm,1、cm,2、cm,k:元素29.i:行索引30.j:列索引31.ma1,1、ma1,2、ma1,k、ma2,1、ma2,2、ma2,k、mam,1、mam,2、mam,k:乘加运算单元32.s410、s420、s430、s440、s450:步骤33.t[s]:非零索引表具体实施方式[0034]现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在附图和描述中用来表示相同或相似部分。[0035]在本案说明书全文(包括权利要求)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以透过其他装置或某种连接手段而间接地连接至该第二装置。本案说明书全文(包括权利要求)中提及的“第一”、“第二”等用语是用以命名组件(element)的名称,而并非用来限制组件数量的上限或下限,亦非用来限制组件的次序。另外,凡可能之处,在附图及实施方式中使用相同标号的组件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的组件/构件/步骤可以相互参照相关说明。[0036]作为实例,自然语言处理(naturallanguageprocessing,nlp)模型有大量的通用矩阵乘法(generalmatrixmultiplication,gemm)计算。为了加速,模型矩阵可以在训练后采用稀疏化处理把一部分绝对值小于一定阈值的模型权重强制为0。按权重绝对值大小,在稀疏化处理后模型矩阵中0的分布是随机的。下述诸实施例所提出的方法适合加速这种稀疏化处理后的nlp模型。在计算机视觉(computervision,cv)模型中也有大量卷积(convolution)运算基于gemm。有些典型卷积运算本身就是gemm计算。修正线性单元(rectifiedlinearunit,relu)是cv模型中常用的激活函数。经过relu计算,作为矩阵输入之一的实时中间张量(tensor)存在大量随机分布的0,这种场景也适用于下述诸实施例提出的加速方法。下述公式1说明一种矩阵乘法。在公式1中,矩阵a是m*n矩阵,矩阵b是n*k矩阵,而矩阵c是m*k矩阵。其中,m、n、k是依据实际设计所决定的整数。[0037]矩阵c=矩阵a*矩阵b[0038][0039]图1是依照本发明的一实施例的一种矩阵运算装置100的电路方块(circuitblock)示意图。请参照图1与公式1。矩阵运算装置100可以执行公式1的计算,以将矩阵a乘以矩阵b而产生乘积矩阵c。图1所示矩阵运算装置100包含多个乘加运算单元(multiplicationaccumulationcell,mac)ma1,1、ma1,2、…、ma1,k、ma2,1、ma2,2、…、ma2,k、…、mam,1、mam,2、…、mam,k。乘加运算单元ma1,1~mam,k的第一输入端可以接收矩阵b的第p行(row)的元素bp,1、bp,2、…、bp,k,并且乘加运算单元ma1,1~mam,k的第二输入端可以接收矩阵a的第p列(column)的元素a1,p、a2,p、…、am,p,如图1所示。其中,p是介于1到n的整数。乘加运算单元ma1,1~mam,k可以依据矩阵a的元素a1,p~am,p以及矩阵b的元素bp,1~bp,k来进行矩阵乘法运算。例如,当p为1时,乘加运算单元ma1,1接收矩阵a的元素a1,1以及矩阵b的元素b1,1来进行乘加运算。当p为n时,乘加运算单元ma1,1接收矩阵a的元素a1,n以及矩阵b的元素bn,1来进行乘加运算。[0040]依此类推,矩阵b的每一行及矩阵a的每一列的可被依序提供至乘加运算单元ma1,1~mam,k来进行乘加运算。当乘加运算单元ma1,1~mam,k完成了矩阵b的所有行以及矩阵a的所有列的乘加运算之后,矩阵运算装置100即完成了矩阵a与矩阵b的矩阵乘法运算。矩阵运算装置100可将所有乘加运算单元ma1,1~mam,k中所存储的乘积累加值输出,即为矩阵c的元素c1,1、c1,2、…、c1,k、c2,1、c2,2、…、c2,k、…、cm,1、cm,2、…、cm,k。[0041]举例而言,以乘加运算单元ma1,1来说,首先在第一运算期间(p为1),乘加运算单元ma1,1可计算元素a1,1及元素b1,1的乘积,并将两者的乘积存储为乘积累加值(元素c1,1)。接着在第一运算期间后的第二运算期间(p为2),乘加运算单元ma1,1计算元素a1,2及元素b2,1两者的乘积。进一步,乘加运算单元c11可将元素a1,2及元素b2,1两者的乘积与所存储的乘积累加值(也就是a1,1及b1,1的乘积)进行加总,并以此加总的结果更新所述乘积累加值。此时,乘加运算单元c11的所述乘积累加值(元素c1,1)为“a1,1*b1,1 a1,2*b2,1”。以此类推,随着矩阵b的所有行及矩阵a的所有列被提供至乘加运算单元ma1,1~mam,k之后(在第n运算期间结束后,亦即p为n),乘加运算单元ma1,1可计算出元素a1,1~a1,n分别与元素b1,1~bn,1的乘积累加值,也就是“a1,1*b1,1 a1,2*b2,1 … a1,n*bn,1”。[0042]图2是依照本发明的一实施例所绘示,图1所示乘加运算单元ma1,1的电路方块示意图。图1所示其他乘加运算单元(例如乘加运算单元ma1,2~mam,k)可以参照图2所示乘加运算单元ma1,1的相关说明加以类推,故在此不予赘述。请参照图1与图2。图2所示乘加运算单元ma1,1包括乘法器210以及累加器220。乘法器210的乘法器第一输入端通过数据线耦接至存储单元(未绘示于图1),以接收矩阵b的元素bp,1。乘法器210的乘法器第二输入端通过数据线耦接至存储单元(未绘示于图1),以接收矩阵a的元素a1,p。累加器220的输入端耦接至乘法器210的输出端,以接收元素a1,p与元素bp,1的乘积值。累加器220可以累加多个乘积值而产生矩阵c的元素c1,1。[0043]图2所示累加器220包括加法器221以及缓存器222。加法器221的加法器第一输入端可以作为累加器220的输入端。加法器221的加法器第一输入端耦接至乘法器210的输出端,以接收元素a1,p与元素bp,1的乘积值。加法器221的加法器第二输入端耦接至缓存器222的输出端,以接收旧乘积累加结果。加法器221的输出端耦接至缓存器222的输入端,以将新乘积累加结果更新至缓存器l1。因此,缓存器222可以累加多个乘积值而产生矩阵c的元素c1,1。[0044]图3是依照本发明的另一实施例的一种矩阵运算装置300的电路方块示意图。图3所示矩阵运算装置300包括存储单元310、第一选择电路320、乘法器数组(multiplierarray)330、第二选择电路340以及累加器数组(accumulatorarray)350。存储单元310适于存储第一矩阵(矩阵a与矩阵b其中一个)与第二矩阵(矩阵a与矩阵b其中另一个)。第一选择电路320耦接至存储单元310以读取矩阵a与矩阵b。第一选择电路320可以将矩阵a或矩阵b压缩为非零索引表(non-zeroindextable)t[s],以充分利用密集的乘算和累加。[0045]对于通用矩阵乘法a*b,矩阵a与矩阵b都有可能是稀疏矩阵。本方法只选择两者之一(相对零占比更高的矩阵)为稀疏矩阵来加速。矩阵运算装置300可以将矩阵a和矩阵b的稀疏度进行比较,以确定稀疏矩阵是矩阵a与矩阵b的哪一个。为了方便说明也不影响通用性,在此假设矩阵b是稀疏矩阵,其中矩阵b有s个非零元素。第一选择电路320可以扫描矩阵b以产生非零索引表t[s]。在矩阵b中的每一个非零元素的位置(行索引i与列索引j)会被记录在所述非零索引表t[s]。矩阵运算装置300可以执行公式2的计算,以将矩阵a乘以矩阵b而产生乘积矩阵c。其中,t=0,1,…,k*int((s k-1)/k),而int()为下取整函数。矩阵运算装置300的好处包括:1、支持随机零而不限样式(randomzeroswithoutapattern);2、支持权重或激活稀疏性(weightoractivationsparsity);3、不再受限于最少稀疏行或列;4、计算加速度a,(n*k)/(s k-1)《=a《=(n*k)/s。[0046][0047]图4是依照本发明的另一实施例的一种矩阵运算方法的流程示意图。请参照图3与图4。在步骤s410中,存储单元310存储第一矩阵(矩阵a与矩阵b其中一个)与第二矩阵(矩阵a与矩阵b其中另一个)。为了方便说明,在此假设第一矩阵是矩阵b,而第二矩阵是矩阵a。在其他实施例中,第一矩阵可以是矩阵a,而第二矩阵可以是矩阵b。[0048]在步骤s420与步骤s430中,第一选择电路320可以读取存储单元310中的矩阵a与矩阵b。第一选择电路320还耦接至乘法器数组330。在此假设乘法器数组330包括m*k个乘法器。第一选择电路320可以根据非零索引表t[s]的任一笔数据的行索引i与列索引j从第一矩阵与第二矩阵其中一者提取对应元素值给乘法器数组330的对应列或对应行中的每一个乘法器的乘法器第一输入端(步骤s420)。第一选择电路320还可以根据非零索引表t[s]的所述行索引i或所述列索引j从第一矩阵与第二矩阵其中另一者的对应列或对应行提取全部元素值作为多个第二元素值,以及将每一个第二元素值提供给乘法器数组330的所述对应列或所述对应行中的一个对应乘法器的乘法器第二输入端(步骤s430)。[0049]在步骤s440中,乘法器数组330的每一个乘法器可以执行乘积运算。第二选择电路340耦接至乘法器数组330以及累加器数组350。在此假设累加器数组350包括m*k个累加器。在步骤s450中,第二选择电路340可以根据非零索引表t[s]的所述列索引j或所述行索引i从所述累加器数组350中选择一个经选列或一个经选行,以及第二选择电路340可以将在乘法器数组330的所述对应列或所述对应行中的每一个乘法器的输出传输给累加器数组350的所述经选列或所述经选行中的一个对应累加器的输入端。在步骤s460中,累加器数组350的每一个累加器可以执行累加运算而产生矩阵c。[0050]举例来说,假设以第一矩阵(例如矩阵b)为稀疏矩阵。当以第一矩阵为稀疏矩阵时,第一选择电路320可以根据非零索引表t[s]的任一笔数据的行索引i与列索引j从所述第一矩阵提取对应元素值作为第一元素值(步骤s420)。第一选择电路320可以在步骤s420中将所述第一元素值提供给乘法器数组330的对应列中的多个乘法器的每一个的乘法器第一输入端。第一选择电路320可以根据非零索引表t[s]的行索引i从第二矩阵的对应列提取整列元素值作为第二元素值。第一选择电路320可以将这些第二元素值的每一个分别提供给乘法器数组330的所述对应列中的这些乘法器的一个对应乘法器的乘法器第二输入端(步骤s430)。当以所述第一矩阵为稀疏矩阵时,所述第二选择电路340可以根据非零索引表t[s]的所述列索引j从累加器数组350的多个列中选择一个经选列(步骤s450)。第二选择电路340可以在步骤s450中将在乘法器数组330的所述对应列中的这些乘法器的每一个乘法器的输出分别传输给累加器数组350的所述经选列中的多个累加器的一个对应累加器的输入端。[0051]再举例来说,假设以第二矩阵(例如矩阵a)为稀疏矩阵。当以第二矩阵为稀疏矩阵时,第一选择电路可以根据非零索引表t[s]的任一笔数据的行索引i与列索引j从所述第二矩阵提取对应元素值作为第一元素值(步骤s420)。第一选择电路320可以在步骤s420中将所述第一元素值提供给乘法器数组330的对应行中的多个乘法器的每一个的乘法器第一输入端。第一选择电路320可以根据非零索引表t[s]的列索引j从第一矩阵的对应行提取整行元素值作为第二元素值。第一选择电路320可以将这些第二元素值的每一个分别提供给乘法器数组330的所述对应行中的这些乘法器的一个对应乘法器的乘法器第二输入端(步骤s430)。当以所述第二矩阵为稀疏矩阵时,所述第二选择电路340可以根据非零索引表t[s]的所述行索引i从累加器数组350的多个行中选择一个经选行(步骤s450)。第二选择电路340可以在步骤s450中将在乘法器数组330的所述对应行中的这些乘法器的每一个乘法器的输出分别传输给累加器数组350的所述经选行中的多个累加器的一个对应累加器的输入端。[0052]图5是依照本发明的一实施例所绘示,图3所示第一选择电路320、乘法器数组330与累加器数组350的电路方块示意图。图5所示实施例是假设第一矩阵被定义为稀疏矩阵。图5所示第一选择电路320包括扫描电路321以及选择器322。扫描电路321耦接至存储单元310以读取第一矩阵(例如矩阵b)。扫描电路321可以扫描矩阵b以产生非零索引表t[s]。举例来说,假设矩阵b的元素b1,1是零而矩阵b的元素b1,2不是零,则扫描电路321可以舍弃(不记录)元素b1,1的行索引i与列索引j“1,1”,而且将元素b1,2的行索引i与列索引j“1,2”记录于非零索引表t[s]。[0053]选择器322耦接至扫描电路321、存储单元310以及乘法器数组330。根据被记录在非零索引表t[s]的行索引i与列索引j,选择器322可以从第一矩阵(例如矩阵b)提取对应元素值给乘法器数组330的一个对应列中的每一个乘法器的乘法器第一输入端。根据被记录在非零索引表t[s]的行索引i,选择器322可以从第二矩阵(例如矩阵a)的对应列提取整列元素值给乘法器数组330的对应列中的多个乘法器的乘法器第二输入端。根据被记录在非零索引表t[s]的列索引j,第二选择电路340可以从累加器数组350的多个列中选择一个经选列,以及第二选择电路340可以将在乘法器数组330的所述对应列中的乘法器的输出传输给累加器数组350的所述经选列中的累加器acc的输入端。累加器数组350的每一个累加器acc可以执行累加运算而产生矩阵c的元素。每一个累加器acc可以参照图2所示累加器220的相关说明加以类推,故在此不予赘述。[0054]举例来说,假设第一矩阵是矩阵b,而第二矩阵是矩阵a。再假设,非零索引表t[s]的多笔数据被依照乘法器数组330与累加器数组350的列数量k而分为一或多个批次,其中非零索引表t[s]的一个批次最多有k笔数据(k个元素的“行索引i与列索引j”)。例如,非零索引表t[s]的当前批次的第y笔数据包括矩阵b的某一个元素的行索引i与列索引j。基于非零索引表t[s]的当前批次的第y笔数据的所述行索引i与所述列索引j,第一选择电路320可以从矩阵b提取位于第i行第j列的元素值bi,j作为第一元素值,而且第一选择电路320可以将所述第一元素值bi,j提供给乘法器数组330的第y列中的每一个乘法器的乘法器第一输入端。根据非零索引表t[s]的当前批次的第y笔数据的所述行索引i,第一选择电路320还可以从矩阵a的第i列提取整列元素值a1,i~am,i作为第二元素值。第一选择电路320可以将这些第二元素值a1,i~am,i的每一个提供给乘法器数组330的第y列中的多个乘法器的一个对应乘法器的乘法器第二输入端。例如,第一选择电路320可以将元素值a1,1提供给乘法器数组330的第y列中的第一个乘法器的乘法器第二输入端,将元素值a2,1提供给乘法器数组330的第y列中的第二个乘法器的乘法器第二输入端,以及将元素值am,1提供给乘法器数组330的第y列中的第m个乘法器的乘法器第二输入端。[0055]根据非零索引表t[s]的当前批次的第y笔数据的所述列索引j,第二选择电路340可以从累加器数组350的多个列中选择第j列,以及第二选择电路340将在乘法器数组330的第y列中的多个乘法器的每一个的输出分别传输给累加器数组350的第j列中的多个累加器acc的对应累加器的输入端。例如,第二选择电路340可以将在乘法器数组330的第y列中的第一个乘法器的输出传输给累加器数组350的第j列中的第一个累加器acc的输入端,将在乘法器数组330的第y列中的第二个乘法器的输出传输给累加器数组350的第j列中的第二个累加器acc的输入端,以及将在乘法器数组330的第y列中的第m个乘法器的输出传输给累加器数组350的第j列中的第m个累加器acc的输入端。[0056]图6是依照本发明的另一实施例所绘示,图3所示第一选择电路320、乘法器数组330与累加器数组350的电路方块示意图。图6所示实施例是假设第二矩阵被定义为稀疏矩阵。图6所示第一选择电路320包括扫描电路323以及选择器324。扫描电路323耦接至存储单元310以读取第二矩阵(例如矩阵a)。扫描电路323可以扫描矩阵a以产生非零索引表t[s]。举例来说,假设矩阵a的元素a1,1是零而矩阵a的元素a2,1不是零,则扫描电路323可以舍弃(不记录)元素a1,1的行索引i与列索引j“1,1”,而且将元素a2,1的行索引i与列索引j“2,1”记录于非零索引表t[s]。[0057]选择器324耦接至扫描电路323、存储单元310以及乘法器数组330。根据被记录在非零索引表t[s]的行索引i与列索引j,选择器324可以从第二矩阵(例如矩阵a)提取对应元素值给乘法器数组330的一个对应行中的每一个乘法器的乘法器第一输入端。根据被记录在非零索引表t[s]的列索引j,选择器324可以从第一矩阵(例如矩阵b)的对应行提取整行元素值给乘法器数组330的对应行中的多个乘法器的乘法器第二输入端。根据被记录在非零索引表t[s]的行索引i,第二选择电路340可以从累加器数组350的多个行中选择一个经选行,以及第二选择电路340可以将在乘法器数组330的所述对应行中的乘法器的输出传输给累加器数组350的所述经选行中的累加器acc的输入端。累加器数组350的每一个累加器acc可以执行累加运算而产生矩阵c的元素。每一个累加器acc可以参照图2所示累加器220的相关说明加以类推,故在此不予赘述。[0058]举例来说,假设第一矩阵是矩阵b,而第二矩阵是矩阵a。再假设,非零索引表t[s]的多笔数据被依照乘法器数组330与累加器数组350的行数量m而分为一或多个批次,其中非零索引表t[s]的一个批次最多有m笔数据(m个元素的“行索引i与列索引j”)。例如,非零索引表t[s]的当前批次的第y笔数据包括矩阵a的某一个元素的行索引i与列索引j。基于非零索引表t[s]的当前批次的第y笔数据的所述行索引i与所述列索引j,第一选择电路320可以从矩阵a提取位于第i行第j列的元素值ai,j作为第一元素值,而且第一选择电路320可以将所述第一元素值ai,j提供给乘法器数组330的第y行中的每一个乘法器的乘法器第一输入端。根据非零索引表t[s]的当前批次的第y笔数据的所述列索引j,第一选择电路320还可以从矩阵b的第j行提取整行元素值bj,1~bj,k作为第二元素值。第一选择电路320可以将这些第二元素值bj,1~bj,k的每一个提供给乘法器数组330的第y行中的多个乘法器的一个对应乘法器的乘法器第二输入端。例如,第一选择电路320可以将元素值b1,1提供给乘法器数组330的第y行中的第一个乘法器的乘法器第二输入端,将元素值b1,2提供给乘法器数组330的第y行中的第二个乘法器的乘法器第二输入端,以及将元素值b1,k提供给乘法器数组330的第y行中的第k个乘法器的乘法器第二输入端。[0059]根据非零索引表t[s]的当前批次的第y笔数据的所述行索引i,第二选择电路340可以从累加器数组350的多个行中选择第i行,以及第二选择电路340将在乘法器数组330的第y行中的多个乘法器的每一个的输出分别传输给累加器数组350的第i行中的多个累加器acc的对应累加器的输入端。例如,第二选择电路340可以将在乘法器数组330的第y行中的第一个乘法器的输出传输给累加器数组350的第i行中的第一个累加器acc的输入端,将在乘法器数组330的第y行中的第二个乘法器的输出传输给累加器数组350的第i行中的第二个累加器acc的输入端,以及将在乘法器数组330的第y行中的第k个乘法器的输出传输给累加器数组350的第i行中的第k个累加器acc的输入端。[0060]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献