logo好方法网

人工智能加速器和电子设备


技术摘要:
本公开实施例提供一种人工智能加速器和电子设备,其中,人工智能加速器可以包括至少一个处理模块,每一个处理模块包括第一脉动阵列、数据重排单元和第二脉动阵列;第一脉动阵列用于:将接收的初始数据与第一脉动阵列中存储的变换参数进行矩阵乘运算,得到中间数据;数  全部
背景技术:
当前,卷积神经网络在人工智能应用中被广泛使用,卷积神经网络的高精度也带 来了大量的计算复杂度。学术界和工业界提出了各种用于加速卷积神经网络计算的加速 器。为了能够减少卷积运算时的计算量,Winograd算法被应用于卷积运算中,Winograd算法 可以降低卷积运算的复杂度,减少乘法计算次数。目前,在通过人工智能加速器实现上述 Winograd变换时,处理效率有待提高。
技术实现要素:
有鉴于此,本公开实施例至少提供一种人工智能加速器和电子设备。 第一方面,提供一种人工智能加速器,包括: 至少一个处理模块,每一个所述处理模块包括第一脉动阵列、数据重排单元和第 二脉动阵列,其中,所述第一脉动阵列的输出端连接所述数据重排单元的输入端,所述数据 重排单元的输出端连接所述第二脉动阵列的输入端: 所述第一脉动阵列,用于:将接收的初始数据与所述第一脉动阵列中存储的变换 参数进行矩阵乘运算,得到中间数据; 数据重排单元,用于:对所述第一脉动阵列输出的所述中间数据进行数据重排处 理,得到重排数据; 所述第二脉动阵列,用于:将所述数据重排单元输出的重排数据与所述第二脉动 阵列中存储的所述变换参数进行矩阵乘运算,得到变换结果。 在一些例子中,所述数据重排单元包括:数据重排电路。 在一些例子中,所述数据重排单元,用于将来自所述第一脉动阵列的各个输出列 中的多个中间数据,传输至所述第二脉动阵列的同一输入行;其中,所述多个中间数据在各 自所属的输出列中的输出排位相同。 在一些例子中,所述第一脉动阵列包括:至少一个第一处理单元和至少一个第二 处理单元;所述第一处理单元设置有旁路,所述旁路连接所述第一处理单元的输出端与所 述第二处理单元的输入端;所述第一处理单元,用于通过所述旁路将所述第一处理单元接 收到的第一输入数据传输至所述第二处理单元的输入端,其中,所述第一处理单元和所述 第二处理单元位于不同行。 在一些例子中,所述第一脉动阵列包括:至少一个第一处理单元和至少一个第二 处理单元;所述第一处理单元设置有旁路,所述旁路连接所述第一处理单元的输出端与所 述第二处理单元的输入端;所述第一处理单元,用于通过所述旁路将所述第一处理单元接 收到的第一输入数据传输至所述第二处理单元的输入端,其中,所述第一处理单元和所述 第二处理单元位于不同行。 4 CN 111582467 A 说 明 书 2/14 页 在一些例子中,所述第一处理单元,还用于:将所述第一输入数据输入到所述第一 处理单元相邻的第三处理单元,所述第三处理单元与所述第一处理单元位于同一行;和/ 或,将所述第一处理单元基于所述第一输入数据得到的第一处理数据传输至所述第一处理 单元相邻的第四处理单元,所述第四处理单元与所述第一处理单元位于同一列。 在一些例子中,所述第一处理单元位于所述第一处理单元所在行的第P列,所述第 二处理单元位于所述第二处理单元所在行的第1列;所述P的数值使得所述第一处理单元将 所述第一初始数据中的所述第一输入数据传输至所述第二处理单元的第二时钟周期与第 三时钟周期满足所述第一脉动阵列的输入时钟要求,其中,所述第一初始数据与第二初始 数据复用所述第一输入数据,所述第三时钟周期为所述第二初始数据中的第三输入数据进 入所述第一脉动阵列的时钟周期。 在一些例子中,所述至少一个处理模块包括第一处理模块和第二处理模块,且所 述加速器还包括:复用阵列;所述复用阵列,用于接收第三输入数据,并通过将所述第三输 入数据与存储的所述变换参数进行矩阵乘运算后得到变换结果;其中,所述第三输入数据 是基于所述第一处理模块的第一脉动阵列输出的中间数据中的至少一部分和所述第二处 理模块的第一脉动阵列输出的中间数据中的至少一部分得到的。 在一些例子中,所述复用阵列包括至少一个第一输入单元和至少一个第二输入单 元;所述至少一个第一输入单元,与所述第一处理模块中的第一数据重排单元的输出端连 接,用于接收所述第一数据重排单元输出的重排数据的一部分;所述至少一个第二输入单 元,与所述第二处理模块中的第二数据重排单元的输出端连接,用于接收所述第二数据重 排单元输出的重排数据的一部分。 在一些例子中,所述加速器,还包括:复用选择器和第三数据重排单元;所述复用 选择器,其输入端分别连接第一处理模块的第一脉动阵列的输出端、以及第二处理模块的 第一脉动阵列的输出端;其输出端连接所述第三数据重排单元的输入端;所述复用选择器 用于接收所述第一处理模块输出的中间数据中的至少一部分和所述第二处理模块输出的 中间数据中的至少一部分,并将接收到的数据输出至所述第三数据重排单元;所述第三数 据重排单元,用于将所述复用选择器输出的数据进行重排处理后输入至所述复用阵列。 第二方面,提供一种电子设备,包括本公开任一实施例的人工智能加速器。 本公开实施例提供的人工智能加速器和电子设备,通过设置分别执行不同数据处 理阶段的第一脉动阵列和第二脉动阵列,并将这两个阵列按照数据处理的阶段顺序依次连 接起来,使得这两个脉动阵列能够流水化执行数据的处理,避免了数据阻塞,从而提高了对 各个初始数据的处理效率。 附图说明 为了更清楚地说明本公开一个或多个实施例或相关技术中的技术方案,下面将对 实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附 图仅仅是本公开一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1a示出了本公开至少一个实施例提供的第一方向的小矩阵拆分示意图; 图1b示出了本公开至少一个实施例提供的第二方向的小矩阵拆分示意图; 5 CN 111582467 A 说 明 书 3/14 页 图2示出了本公开至少一个实施例提供的一种加速器结构示意图; 图3示出了本公开至少一个实施例提供的一种数据重排的原理示意图; 图4示出了本公开至少一个实施例提供的一种旁路设置示意图; 图5示出了本公开至少一个实施例提供的一种两个相邻矩阵的示意图; 图6a至图6f示出了本公开至少一个实施例提供的一种数据输入阵列的输入过程 示意图; 图7示出了本公开至少一个实施例提供的另一种旁路设置示意图; 图8示出了本公开至少一个实施例提供的横向数据复用示意图; 图9示出了本公开至少一个实施例提供的一种复用阵列的设置示意图; 图10是图9的扩展结构示意图; 图11示出了本公开至少一个实施例提供的另一种复用阵列的设置示意图; 图12示出了本公开至少一个实施例提供的一种数据处理方法的示意图。
分享到:
收藏