掌桥专利:专业的专利平台
掌桥专利
首页

矩阵乘设备

文献发布时间:2024-07-23 01:35:21


矩阵乘设备

技术领域

本披露一般地涉及计算机领域。更具体地,本披露涉及进行矩阵乘的乘累加装置、人工智能加速器、集成电路装置与板卡。

背景技术

深度学习模型在图像识别、自然语言处理、智能驾驶等领域均有良好的应用,为了实现低功耗的目标,神经网络系统往往需要根据不同的输入,实时动态切换或调整模型的数据精度,也就是动态精度计算。以应用于安防摄像头的目标检测神经网络模型为例,当画面中出现大量移动的人或物体时,系统需要高精度的模型以保证识别准确率,当画面中物体较少或静止时,则维持低精度的模型即可,以降低能耗。

而动态精度计算又与卷积运算息息相关,卷积运算的核心便是矩阵乘运算,因此,一种高效的硬件系统支撑矩阵乘,进而实现动态精度计算是迫切需要的。

发明内容

为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了进行矩阵乘的乘累加装置、人工智能加速器、集成电路装置与板卡。

在第一方面中,本披露提供一种对第一矩阵与第二矩阵进行矩阵乘的乘累加装置,第一矩阵根据行向量的元素组合分类有向量序列,乘累加装置包括累加器与转换器。累加器用以将第一矩阵中相同向量序列所对应的第二矩阵的列向量相加,以生成同类项部分和;转换器用以内积同类项部分和与相应的向量序列,并将内积结果累加,以获得矩阵乘相应幂次的结果。

在第二方面中,本披露提供一种人工智能加速器,包括矩阵处理单元,矩阵处理单元包括P

在第三方面中,本披露提供一种集成电路装置,包括上述的人工智能加速器。

在第四方面中,本披露提供一种板卡,包括上述的集成电路装置。

本披露将矩阵乘进行拆解,通过合并相同向量序列以生成同类项部分和不仅可以支持任意规模、任意位宽神经网络计算,还能高效支持动态精度计算场景。

附图说明

通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:

图1是示出本披露实施例的板卡的结构图;

图2是示出本披露实施例的集成电路装置的结构图;

图3是示出本披露实施例的乘累加装置的结构示意图;

图4是示出本披露实施例合并同类项的示意图;

图5是示出本披露实施例的累加器的结构示意图;

图6是示出本披露实施例的转换器的结构示意图;

图7是示出本披露另一个实施例适用于动态精度计算的计算装置的结构示意图;

图8是示出本披露另一个实施例的矩阵处理单元的结构示意图;

图9是示出本披露另一个实施例的运算元件的结构示意图;

图10是示出本披露另一个实施例采用乒乓式流水的结构示意图。

具体实施方式

下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。

应当理解,本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。

下面结合附图来详细描述本披露的具体实施方式。

在动态精度计算场景下,人工智能加速器的硬件需要适应不同精度的模型,以安防摄像头为例,当画面出现大量移动物体时,输入图像为关键帧,人工智能加速器便需要支援高精度(长位宽)版本的模型,以保证识别准确率,当画面静止时,输入图像改为普通帧,人工智能加速器仅需运行低精度(短位宽)版本的模型,以节省能耗。

除了上述情况,在现今的影像处理中,一定数量的普通帧会搭配一帧关键帧,因此关键帧不仅出现在画面突变或识别难度较高时,而是会周期性出现。对关键帧处理完毕后,高精度模型的计算结果会被保留下来,作为后续几帧普通帧的校验,根据校验结果对其低精度模型中的数据位宽作动态调整。

在计算关键帧时,人工智能加速器一般同时运行高精度模型与低精度模型,其中高精度模型用于输出对关键帧的执行结果,低精度模型的计算结果用于验证与高精度模型的差距是否在预设阈值内,才能对模型数据位宽作出调整。具体来说,低精度模型的精度由均方误差来度量,当均方误差小于预设偏差下限时,表示低精度模型输入数据的识别难度或变化程度相对偏低,可以减少数据位宽以节省能耗,当均方误差大于预设偏差上限时,表示低精度模型输入数据的识别难度或变化程度相对偏高,需增加数据位宽以提高精度,当均方误差处于预设偏差的上限和下限之间时,表示低精度模型在可靠性与高能效之间取得了平衡,无需做调节。

在动态精度计算场景中,同一网络结构的高精度模型和低精度模型的权值数据通常重复,如果每次都计算这些重复的数据,会导致数据的冗余处理。一般来说,高位宽权值的数值由高比特位和规约截断比特位所组成,而低位宽权值的数值由高位宽权值的高比特位和1比特的规约进位所组成。不论是高精度模型与低精度模型均具有相同的高比特位,此部分便不需要在计算不同精度模型时重复加载。再者,当输入神经元相同时,高比特位在进行乘累加时也是重复的。

上述的访存与计算冗余不仅发生在关键帧和普通帧的模型切换过程,更存在于动态精度校验中使用的网络结构相同、权值位宽不同的模型中。本披露的实施例基于上述的特性,设计出一种硬件用以减少冗余计算。

图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个集成电路装置,集成电路装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和大量的计算能力。

芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。

板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。

图2是示出此实施例的芯片101中的集成电路装置的结构图。如图2中所示,集成电路装置20包括计算装置201、接口装置202、处理装置203和存储装置204。

计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。

接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。

处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。

存储装置204用以存储待处理的数据,其可以是DRAM,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。

图3示出此实施例适用于动态精度计算的计算装置201的结构示意图。计算装置201包括对第一矩阵与第二矩阵进行矩阵乘的乘累加装置301,乘累加装置301包括累加器302与转换器303。累加器302用以将第一矩阵中相同向量序列所对应的第二矩阵的列向量相加,以生成同类项部分和,其中第一矩阵根据行向量的元素组合分类有向量序列。转换器303用以内积同类项部分和与相应的向量序列,并将内积结果累加,以获得矩阵乘相应幂次的结果。

乘累加装置301接收第一矩阵与第二矩阵作为输入,在此实施例中第一矩阵为权值,第二矩阵为神经元数据,以比特串行的方式完成乘累加计算。乘累加装置301在执行卷积计算时,将所有卷积核中的权值从高位到低位逐比特展开,统一计算相同位次的权值比特参与的乘累加运算。乘累加装置301将卷积核中的比特权值按比特位次划分并提出,以形成二进制权值矩阵W

当这些位次的权值比特用于多个模型的计算时,例如前述的高比特位,乘累加装置301仅需加载规约截断比特位和规约进位,当输入神经元也一致时,乘累加装置301还可将高比特位参与的乘累加计算结果反复使用,而无需重新计算。

具体来说,由于在固定位宽的乘法器中一个p比特乘法由p-1个移位加法完成,故一个p比特乘法近似等效为p-1个加法,假设该卷积运算中神经元向量x的长度为N,原乘累加的计算量为3N+(32-1)×3N=96N。如果x的位宽为32比特,则此实施例的乘累加装置503仅需约9N个加法,而原本的计算量是3N个32比特乘法与3N个加法。因此,乘累加装置301采用按位次处理权值比特的计算模式,不仅不会增加乘累加计算量,还避免了现有技术的固定位宽乘累加单元处理混合精度神经网络模型中的不同位宽数据时的算力浪费问题。

此外,在单个权值矩阵中也可能存在比特位的重叠带来的重复计算,乘累加装置301进一步采用合并同类项的思路去除这种重复计算。同类项指的是权值矩阵中元素完全相同的行向量,多个元素完全相同的行向量在合并同类项后只需计算一次。

图4示出此实施例合并同类项的示意图,图中以N×a的权值矩阵W

k

k

k

接着将权值矩阵W

乘累加装置301基于位次的权值数据将乘累加计算分为两阶段。第一阶段根据标量序列index

其中I(g)为示性函数。由上式可知,向量序列k

由于o

为了实现上述各阶段,累加器302用以实现第一阶段,转换器303用以实现第二阶段。

累加器302将第一矩阵中相同向量序列k

在此实施例中,神经元矩阵x包括N个列向量x

每个位串行累加单元502接收一个来自解复用单元501的同类项部分和,第j个位串行累加单元502依序接收所有解复用单元501的第j个同类项部分和z

位串行累加单元502具有N个串联的累加单元503,除了第一级的累加单元503仅包括暂存器将输入直接输出至下一级外,其余各级的累加单元503包括输入暂存器504、全加器505、和暂存器506及进位暂存器507。输入暂存器504用以暂存来自解复用单元501的同类项部分和z

综上所述,神经元矩阵x的第i个列向量逐比特输入至第j个位串行累加单元502的第i比特进行累加,最后一级的累加单元503的和暂存器508随着比特流生成2

累加器302根据标量序列index

图6示出此实施例的转换器303的结构示意图。转换器303用以内积同类项部分和z

具体来说,转换器303包括2

第h个生成单元602逐元素累加同类项部分和z

转换器303还包括a个比特流输出端606,分别连接至加法器604的输出端,第h个比特流输出端606输出第h个结果o

以一次性合并处理的卷积核个数a为3为例,长度为7的部分和向量z由累加器302逐比特输出,并逐比特流入转换器303。比特串行累加的进位保留在转换器303内,并随输入比特流迭代更新。在此实施例中,转换器303与累加器302成对工作,即一个累加器302的输出对应一个转换器303的输入。

此实施例在整个计算过程中相同的权值比特位只加载了一次,其参与的乘累加计算也只计算了一次,从而消除了模型间比特位重叠带来的数据冗余。再者,反复使用上述结构的计算装置201在执行动态精度校验时,低精度模型每层的权值位宽得以确定,此时的低精度模型在高能效与可靠性之间取得了最优平衡,可用于后续普通帧的计算。

此实施例将矩阵乘进行拆解,通过合并相同向量序列以生成同类项部分和,不仅可以支持任意规模、任意位宽神经网络计算,还能高效支持动态精度计算场景。

图7示出本披露另一个此实施例,为适用于动态精度计算的计算装置201的另一种结构示意图。图7的计算装置201包括直接存储器访问(direct memory access,DMA)701、指令存储单元702、数据存储单元703、控制单元704、编解码单元705、矩阵处理单元706、向量处理单元707、标量处理单元708。

直接存储器访问701用以与接口装置202、处理装置203及存储装置204进行数据传输。当处理装置203初始化计算装置201的数据传输时,数据传输本身是由直接存储器访问控制器(未绘出)来实行和完成。具体来说,在实现直接存储器访问传输时,是由直接存储器访问控制器直接掌管总线,直接存储器访问传输前,处理装置203把总线控制权交给直接存储器访问控制器,结束后直接存储器访问控制器把总线控制权再交回给处理装置203。

指令存储单元702用以存储来自处理装置203经过直接存储器访问701发送过来的指令,通常是先进先出暂存器。

数据存储单元703用以存储来自处理装置203经过直接存储器访问701发送过来的待运算数据,或是暂存运算完的结果,通常是动态随机存取内存。

控制单元704用以读取存放在指令存储单元702中的指令,解析成控制流,控制矩阵处理单元706、向量处理单元707及标量处理单元708的调度,以实现任务的运行。

编解码单元705用以负责对计算装置201内稀疏率较高的数据以游程编码的方式进行压缩,以及对编码的解压缩还原。游程编码是一种仅记录序列中的非零取值,以及两个非零取值之间0的个数的压缩编码方式,适合对稀疏率较高的数据进行压缩。游程编码载有2个信息,第一个信息是m比特非零数据,第二个信息为相邻两个非零数据之间“0”的个数。假设位宽为k比特,当非零数据间隔中“0”的个数超过2

矩阵处理单元706、向量处理单元707及标量处理单元708分别是用于矩阵、向量和标量运算的处理单元。矩阵处理单元706、向量处理单元707以一种邻接互联结构的形式组织成二维或一维的计算阵列,计算阵列的相邻运算元件间可以直接数据传输。矩阵处理单元706、向量处理单元707及标量处理单元708接收来自控制单元704的指令,自数据存储单元703中获取输入数据,例如在执行卷积计算时,矩阵处理单元706便由数据存储单元703分别获取计算所需的神经元和权值。标量处理单元708用以支持神经网络模型中池化、正则化、激活函数等操作中的各种标量计算。计算完毕后,矩阵处理单元706、向量处理单元707及标量处理单元708的计算结果暂存于数据存储单元703中,之后通过直接存储器访问701传送至接口装置202、处理装置203或存储装置204。

动态精度计算主要由矩阵处理单元706来实现。图8示出此实施例的矩阵处理单元706的结构示意图。矩阵处理单元706包括缓存控制装置801、行矩阵缓存802、列矩阵缓存803及运算元件804。

缓存控制装置801接收来自数据存储单元703用于卷积运算的数据,将数据拆分成行矩阵Input-H与列矩阵Input-V,分别发送至行矩阵缓存802与列矩阵缓存803。缓存控制装置801亦可直接向所有运算元件804提供输入数据Input,或是接收所有运算元件804计算的输出数据Output,输出数据Output由缓存控制装置801收集并发送至数据存储单元703。

行矩阵缓存802用以暂存行矩阵Input-H,并将行矩阵Input-H输入至计算阵列中最接近行矩阵缓存802的一列运算元件804中,即图中计算阵列最左侧的一列运算元件804。

列矩阵缓存803用以暂存列矩阵Input-V,并将列矩阵Input-V输入至计算阵列中最接近列矩阵缓存803的一行运算元件804中,即图中计算阵列最上方的一行运算元件804。

矩阵处理单元706的计算阵列共有P

图9示出此实施例的运算元件804的结构示意图。运算元件804包括第一输入复用单元901、第二输入复用单元902、乘累加装置903、输出复用单元904、行先进先出暂存器905及列先进先出暂存器906。

第一输入复用单元901根据控制单元704的指令所解析出的控制流,选择来自前一级的行矩阵Input-H、来自缓存控制装置801的输入数据Input及乘累加装置903累加结果的其中之一作为乘累加的第一矩阵。

第二输入复用单元902同样根据控制单元704的指令所解析出的控制流,选择来自前一级的列矩阵Input-V、来自缓存控制装置801的输入数据Input及乘累加装置903累加结果其中之一作为乘累加的第二矩阵。

乘累加装置903接收第一矩阵与第二矩阵作为输入,以比特串行的方式完成乘累加计算。乘累加装置903包括累加器907、转换器908及暂存器909,乘累加装置903的结构与作动方式与前一个实施例的乘累加装置301相似,具体来说累加器907与累加器302无异,转换器908与转换器303无异,故不赘述。

转换器908的计算结果o

此实施例的乘累加装置903利用了数据比特的稀疏性,即跳过权值或神经元数据中比特值为0导致的含零操作数的乘加,再加上考虑权值比特位重叠带来的计算重复而合并同类项,进一步降低了乘累加计算量,故乘累加装置903按位次的权值数据乘累加计算在保证不改变计算结果的同时,具有更低的计算量。

输出复用单元904用以选择矩阵乘的结果及累加结果其中之一输出至下一级的运算元件804。具体来说,当乘累加装置903完成计算后,输出复用单元904可以选择输出当下来自转换器908的计算结果o

行先进先出暂存器905用以当该运算元件804无需对行矩阵Input-H进行运算时,暂存并传送行矩阵Input-H至下一级的运算元件804。列先进先出暂存器906则是当该运算元件804无需对列矩阵Input-V进行运算时,暂存并传送列矩阵Input-V至下一级的运算元件804。

上述运算元件804的所有操作均由控制单元704中的指令解析出的控制流调度完成。

在此实施例中,向量处理单元707具有一维的计算阵列,其亦利用与运算元件804类似的结构串接而成,不作赘述。

此实施例利用上述结构进行卷积运算时,对于a个包含p比特权值的卷积核,可按照权值比特位次将其划分为p个二进制矩阵W

以具体实例来说明,假设a=p=3,且每个二进制矩阵W

此外,若从存储装置204中加载的是已经过游程编码后的权值,编解码单元705将其解码后送入行矩阵缓存802,而后同样分发到相应的运算元件804中,每行或每列的运算元件804的计算结果经向量处理单元707或标量处理单元708完成整合,得到最终卷积计算结果。

此实施例在实际使用中往往根据卷积计算的规模进行拆分,允许出现多行运算元件804处理来自同一个W

此实施例在进行关键帧的处理时,计算装置201需要计算权值比特部分重叠的高、低精度模型的结果,并计算二者结果的差距度量。由于高、低精度均具有重叠的高比特位权值的高位,根据规约规则(例如“四舍五入”),低精度权值为高比特位和规约进位的和。

计算装置201可以同时计算高、低精度的卷积,一方面输出高精度模型的计算结果,主要由矩阵处理单元706完成,另一方面输出高、低精度模型计算结果间的差距度量,由矩阵处理单元706、向量处理单元707与标量处理单元708协同完成。具体地,矩阵处理单元706中的运算元件804分三部分使用,分别用于计算高比特位、规约进位和规约截断比特位。对于计算规约进位的运算元件804子阵列,神经元数据来自低精度模型;对于计算高比特位的运算元件804,神经元数据一半来自低精度模型,另一半来自高精度模型(当神经元相同时,神经元也可以完全共享);对于计算规约截断比特位的运算元件804,神经元数据来自高精度模型。矩阵处理单元706对高、低精度卷积的计算结果传入向量处理单元707中,由向量处理单元707计算差距度量。与处理向量内积时相同,每个向量处理单元707负责计算差距度量中的一小段部分和,最后累加所有向量处理单元707的结果。向量处理单元707对差距度量的计算结果传入标量处理单元708中,标量处理单元708负责将差距度量与预设偏差阈值比较。

值得注意的是,当数据存储单元703的容量相对于卷积输出的数据量较为宽裕时,高精度模型的计算结果除了直接输出到片外,也放置于数据存储单元703中,方便后续动态精度检验中计算差距度量时对该计算结果的调用。

当矩阵处理单元706完成W

此实施例还可采用乒乓式流水来执行动态精度计算。图10示出此实施例采用乒乓式流水的结构示意图。在第一个时间周期CLK1里,矩阵处理单元706处理权值W

此实施例在整个计算过程中相同的权值比特位只加载了一次,其参与的乘累加计算也只计算了一次,从而消除了模型间比特位重叠带来的数据冗余。再者,反复使用上述结构的计算装置201在执行动态精度校验时,低精度模型每层的权值位宽得以确定,此时的低精度模型在高能效与可靠性之间取得了最优平衡,可用于后续普通帧的计算。

本披露将矩阵乘进行拆解,通过合并相同向量序列以生成同类项部分和不仅可以支持任意规模、任意位宽神经网络计算,还能高效支持动态精度计算场景。

根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。

需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。

在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本披露未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本披露在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。

在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。

在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本披露所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。

依据以下条款可更好地理解前述内容:

条款A1、一种对第一矩阵与第二矩阵进行矩阵乘的乘累加装置,所述第一矩阵根据行向量的元素组合分类有向量序列,其特征在于,所述乘累加装置包括:累加器,用以将所述第一矩阵中相同向量序列所对应的所述第二矩阵的列向量相加,以生成同类项部分和;转换器,用以内积所述同类项部分和与相应的向量序列,并将所述内积结果累加,以获得矩阵乘相应幂次的结果。

条款A2、根据条款A1所述的乘累加装置,其中所述第一矩阵为权值,所述第二矩阵为神经元数据,所述向量序列包括2

条款A3、根据条款A2所述的乘累加装置,其中所述第二矩阵包括N个列向量,所述累加器包括:N个解复用单元,所述第二矩阵的第i个列向量输入至第i个解复用单元,第i个解复用单元根据所述向量序列的顺序选择输出第i个列向量至2

条款A4、根据条款A3所述的乘累加装置,其中所述第二矩阵的第i个列向量逐比特输入至第j个位串行累加单元的第i比特进行累加,以生成2

条款A5、根据条款A4所述的乘累加装置,其中所述转换器包括:2

条款A6、根据条款A5所述的乘累加装置,其中第h个生成单元包括:元素暂存器,用以接收并暂存所述向量矩阵的第h个元素的比特值;加法器,用以累加所述比特值;进位暂存器,用以暂存来自累加后的进位值。

条款A7、根据条款A6所述的乘累加装置,其中所述转换器还包括:a个比特流输出端,分别连接至所述加法器的输出,第h个比特流输出端输出第h个结果。

条款A8、根据条款A5所述的乘累加装置,其中第h个结果为矩阵乘的第a-h幂次的数值。

条款A9、一种人工智能加速器,包括矩阵处理单元,所述矩阵处理单元包括P

条款A10、根据条款A9所述的人工智能加速器,其中所述矩阵处理单元还包括:缓存控制装置,用以接收卷积运算的数据,并将所述数据拆分成行矩阵与列矩阵;行矩阵缓存,用以暂存所述行矩阵;列矩阵缓存,用以暂存所述列矩阵。

条款A11、根据条款A10所述的人工智能加速器,其中所述行矩阵缓存将所述行矩阵输入至P

条款A12、根据条款A10所述的人工智能加速器,其中所述乘累加装置包括暂存器,用以暂存累加结果。

条款A13、根据条款A12所述的人工智能加速器,其中所述运算元件还包括:第一输入复用单元,用以选择来自前一级的行矩阵、来自所述缓存控制装置的输入数据及所述累加结果其中之一为所述第一矩阵;第二输入复用单元,用以选择来自前一级的列矩阵、来自所述缓存控制装置的输入数据及所述累加结果其中之一为所述第二矩阵。

条款A14、根据条款A12所述的人工智能加速器,其中所述运算元件还包括:输出复用单元,用以选择矩阵乘的结果及所述累加结果其中之一输出至下一级的运算元件。

条款A15、根据条款A10所述的人工智能加速器,其中所述运算元件还包括:行先进先出暂存器,当所述运算元件无需对所述行矩阵进行运算时,用以暂存并传送所述行矩阵至下一级的运算元件;列先进先出暂存器,当所述运算元件无需对所述列矩阵进行运算时,用以暂存并传送所述列矩阵至下一级的运算元件。

条款A16、根据条款A9所述的人工智能加速器,其中N

条款A17、根据条款A9所述的人工智能加速器,还包括向量处理单元及标量处理单元,每行或每列的运算元件的计算结果经所述向量处理单元或所述标量处理单元完成整合,以得到最终卷积计算结果。

条款A18、根据条款A17所述的人工智能加速器,其中所述矩阵处理单元获得高、低精度卷积的计算结果,所述向量处理单元计算所述高、低精度卷积的计算结果的差距度量,所述标量处理单元将所述差距度量与预设偏差阈值比较。

条款A19、根据条款A18所述的人工智能加速器,其中在第一个时间周期里,所述矩阵处理单元处理第一个权值的卷积计算,在第二个时间周期里,所述向量处理单元与所述标量处理单元计算所述差距度量并比较,且所述矩阵处理单元处理第二个权值的卷积计算。

条款A20、一种集成电路装置,包括根据条款A9至19任一项所述的人工智能加速器。

条款A21、一种板卡,包括根据条款A20所述的集成电路装置。

以上对本披露实施例进行了详细介绍,本披露中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。

相关技术
  • 一种滤波器的耦合矩阵元素的优化方法、设备及存储设备
  • 有源矩阵型显示设备、有源矩阵型有机场致发光显示设备、以及驱动这样的显示设备的方法
  • 驱动有源矩阵EWOD设备元件的方法、电路和有源矩阵EWOD设备
技术分类

06120116678658