CN117744723A - 神经处理单元 - Google Patents
神经处理单元 Download PDFInfo
- Publication number
- CN117744723A CN117744723A CN202310967526.6A CN202310967526A CN117744723A CN 117744723 A CN117744723 A CN 117744723A CN 202310967526 A CN202310967526 A CN 202310967526A CN 117744723 A CN117744723 A CN 117744723A
- Authority
- CN
- China
- Prior art keywords
- activation
- weight
- registers
- fine
- multiplexer
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 47
- 210000005036 nerve Anatomy 0.000 title claims description 6
- 230000004913 activation Effects 0.000 claims abstract description 357
- 239000000872 buffer Substances 0.000 claims abstract description 72
- 230000001537 neural effect Effects 0.000 claims abstract description 28
- 230000003213 activating effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 abstract description 3
- 241001442055 Vipera berus Species 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000000873 masking effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
提供神经处理单元。所述神经处理单元可被重新配置为处理从N:M=1:4、2:4、2:8和4:8细粒度结构化权重稀疏性布置选择的细粒度结构化权重稀疏性布置。权重缓冲器存储权重值,并且权重复用器阵列基于选择的细粒度结构化权重稀疏性布置来输出存储在权重缓冲器中的一个或多个权重值作为第一操作数值。激活缓冲器存储激活值,并且激活复用器阵列基于选择的细粒度结构化权重稀疏性布置输出存储在激活缓冲器中的一个或多个激活值作为第二操作数值,其中,每个相应的第二操作数值和相应的第一操作数值形成操作数值对。乘法器阵列输出每个操作数值对的乘积值。
Description
本申请要求于2022年9月21日提交的第63/408,827号美国临时专利申请、于2022年9月21日提交的第63/408,828号美国临时专利申请和于2022年11月3日提交的第17/980,544号美国专利申请的优先权权益,所述美国专利申请的公开通过引用全部包含于此。
技术领域
在此公开的主题涉及神经网络处理装置。更具体地,在此公开的主题涉及可被重新配置为处理从N:M=1:4、2:4、2:8和4:8细粒度结构化权重稀疏性布置选择的细粒度结构化稀疏性权重布置的神经处理单元。
背景技术
深度神经网络(DNN)的处理可由神经处理单元(NPU)加速。也就是说,与DNN中的通用矩阵乘法(GEMM)运算相关联的操作数的稀疏性可用于对由NPU执行的操作进行加速。与随机稀疏性相比,细粒度结构化稀疏性(fine-grained structured sparsity)(尤其是N:M稀疏性(M个权重值中的N个非零元素))可有助于维持DNN准确度并节省硬件开销。然而,虽然存在额外的细粒度结构化稀疏性配置(诸如,N:M={1:4,4:8,2:8}),但是现有技术仅支持一种N:M配置(即,N:M=2:4)。
发明内容
示例实施例提供一种神经处理单元,所述神经处理单元可包括权重缓冲器、权重复用器、激活缓冲器、激活复用器和乘法器阵列。权重缓冲器可被配置为以细粒度结构化稀疏性权重布置来存储权重值,细粒度结构化稀疏性权重布置从可包括1:4细粒度结构化稀疏性权重布置、2:4细粒度结构化稀疏性权重布置、4:8细粒度结构化稀疏性权重布置和2:8细粒度结构化稀疏性权重布置中的至少两种布置的细粒度结构化稀疏性权重布置的组被选择。权重复用器阵列可被配置为基于选择的细粒度结构化稀疏性权重布置来输出存储在权重缓冲器中的一个或多个权重值作为第一操作数值。激活缓冲器可被配置为存储激活值。激活复用器阵列可包括到激活复用器阵列的输入,激活复用器阵列可结合到激活缓冲器,并且激活复用器阵列可被配置为输出存储在激活缓冲器中的一个或多个激活值作为第二操作数值,其中,每个相应的第二操作数值和相应的第一操作数值形成操作数值对。乘法器阵列可被配置为输出每个操作数值对的乘积值。在一个实施例中,激活缓冲器可包括用于存储8个激活值的8个激活寄存器,权重复用器阵列可包括第一权重复用器,第一权重复用器被配置为基于选择的细粒度结构化稀疏性权重布置来选择权重寄存器并且输出存储在选择的权重寄存器中的权重值作为第一操作数值,激活复用器阵列可包括第一激活复用器,第一激活复用器可包括七个输入,其中,第一激活复用器的每个相应的输入可连接到第一组激活寄存器内的相应的激活寄存器,第一激活复用器可被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一组激活寄存器中的激活寄存器并且输出存储在选择的激活寄存器中的激活值作为第二操作数值,其中,第二操作数值与第一操作数值对应并且形成第一操作数值对,并且乘法器阵列可包括第一第一乘法器单元,第一第一乘法器单元被配置为输出第一操作数值对的乘积值。在另一实施例中,权重值可以以1:4细粒度结构化稀疏性权重布置或以2:8细粒度结构化稀疏性权重布置被存储在权重缓冲器中,并且第一组激活寄存器可包括7个激活寄存器。在又一实施例中,权重值可以以2:4细粒度结构化稀疏性权重布置被存储在权重缓冲器中,并且第一组激活寄存器可包括4个激活寄存器。在又一实施例中,权重值可以以4:8细粒度结构化稀疏性权重布置被存储在权重缓冲器中,并且第一组激活寄存器可包括6个激活寄存器。在一个实施例中,权重值可以以2:8细粒度结构化稀疏性配置来布置,并且激活寄存器可包括两行的四个激活寄存器,其中,两个输出复用器可被配置为从每行选择一个激活寄存器。在另一实施例中,权重值可以以2:4细粒度结构化稀疏性配置来布置,并且激活寄存器可包括两行的两个激活寄存器,其中,两个输出复用器被配置为从每行选择一个激活寄存器。
示例实施例提供一种神经处理单元,所述神经处理单元可包括第一权重缓冲器、第一权重复用器、第一激活缓冲器、第一激活复用器和第一乘法器单元。第一权重缓冲器可包括第一权重寄存器的阵列,其中,每个第一权重寄存器可被配置为以细粒度结构化稀疏性权重布置来存储权重值,细粒度结构化稀疏性权重布置从可包括1:4细粒度结构化稀疏性权重布置、2:4细粒度结构化稀疏性权重布置、4:8细粒度结构化稀疏性权重布置和2:8细粒度结构化稀疏性权重布置中的至少两种布置的细粒度结构化稀疏性权重布置的组被选择。第一权重复用器可被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一权重寄存器,并且输出存储在选择的第一权重寄存器中的权重值作为第一操作数值。第一激活缓冲器可以是第一预定数量的第一激活寄存器,其中,每个第一激活寄存器可被配置为存储激活值。第一激活复用器可包括第二预定数量的第一激活复用器输入,其中,第一激活复用器的每个相应的输入可连接到第一组第一激活寄存器内的相应的第一激活寄存器,并且其中,第一激活复用器可被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一激活寄存器,并且输出存储在选择的第一激活寄存器中的激活值作为第二操作数值,作为第二操作数值被输出的激活值与作为第一操作数值被输出的权重值对应。第一乘法器单元可被配置为输出第一操作数值与第二操作数值的第一乘积值。在一个实施例中,第一激活寄存器的第一预定数量可以是8,并且激活输入的第二预定数量可以是7。在另一实施例中,权重值可以以1:4细粒度结构化稀疏性配置来布置。在又一实施例中,权重值可以以2:4细粒度结构化稀疏性配置来布置。在又一实施例中,权重值可以以4:8细粒度结构化稀疏性配置来布置。在一个实施例中,权重值可以以2:8细粒度结构化稀疏性配置来布置。在另一实施例中,所述神经处理单元还可包括第二权重复用器、第二激活复用器和第二乘法器单元,其中,第二权重复用器可被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一权重寄存器,并且输出存储在选择的第一权重寄存器中的权重值作为第三操作数值,第二激活复用器可包括第二预定数量的第二激活复用器输入,其中,第二激活复用器的每个相应的输入可连接到与第一组第一激活寄存器不同的第二组激活寄存器内的相应的第一激活寄存器,第二激活复用器可被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一激活寄存器,并且输出存储在选择的第一权重寄存器中的激活值作为第四操作数值,并且作为第四操作数值被输出的激活值与作为第三操作数值被输出的权重值对应,并且第二乘法器单元可被配置为输出第三操作数值与第四操作数值的第二乘积值。在又一实施例中,所述神经处理单元还可包括第二权重缓冲器、第三权重复用器、第二激活缓冲器、第三激活复用器、第三乘法器单元、第四权重复用器、第四激活复用器和第四乘法器单元,其中,第二权重缓冲器可被配置为基于选择的细粒度结构化稀疏性权重布置来存储细粒度结构化稀疏性权重的权重值,第三权重复用器可被配置为基于选择的细粒度结构化稀疏性权重布置来选择第二权重寄存器,并且输出存储在选择的第二权重寄存器中的权重值作为第五操作数值,第二激活缓冲器可包括第一预定数量的第二激活寄存器,其中,每个第二激活寄存器可被配置为存储激活值,并且第三激活复用器包括第二预定数量的第三激活复用器输入,第三激活复用器的每个相应的输入连接到第一组第二激活寄存器内的相应的第二激活寄存器,第三激活复用器被配置为基于选择的细粒度结构化稀疏性权重布置来选择第二激活寄存器并且输出存储在选择的第二激活寄存器中的激活值作为第六操作数值,作为第六操作数值被输出的激活值与作为第五操作数值被输出的权重值对应,第三乘法器单元可被配置为输出第五操作数值与第六操作数值的第三乘积值,第四权重复用器可被配置为基于选择的细粒度结构化稀疏性权重布置来选择第二权重寄存器并且输出存储在选择的第二权重寄存器中的权重值作为第七操作数值,第四激活复用器可包括第二预定数量的第四激活复用器输入,其中,第四激活复用器的每个相应的输入可连接到与第三组激活寄存器不同的第四组第二激活寄存器内的相应的第二激活寄存器,并且其中,第四激活复用器可被配置为基于选择的细粒度结构化稀疏性权重布置来选择第二激活寄存器并且输出存储在选择的第二激活寄存器中的激活值作为第八操作数值,并且第四乘法器单元可被配置为输出第七操作数值与第八操作数值的第四乘积值。在一个实施例中,第一预定数量的第一激活寄存器可以是8个第一激活寄存器,第二预定数量的第一激活复用器输入可以是7个第一激活复用器输入,第二预定数量的第二激活复用器输入可以是7个第二激活复用器输入,第一预定数量的第二激活寄存器可以是8个第二激活寄存器,第二预定数量的第三激活复用器输入可以是7个第三激活复用器输入,并且第二预定数量的第四激活复用器输入可以是7个第四激活复用器输入。在另一实施例中,权重值可以以1:4细粒度结构化稀疏性配置来布置,第一组第一激活寄存器可包括四个第一激活寄存器,第二组第一激活寄存器可包括四个第一激活寄存器并且与第一组第一激活寄存器不同,第三组第二激活寄存器可包括四个第二激活寄存器,并且第四组第二激活寄存器可包括四个第二激活寄存器并且与第三组第二激活寄存器不同。在又一实施例中,权重值可以以2:8细粒度结构化稀疏性配置来布置,第一组第一激活寄存器可包括七个第一激活寄存器,第二组第一激活寄存器可包括七个第一激活寄存器并且与第一组第一激活寄存器不同,第三组第二激活寄存器可包括七个第二激活寄存器,并且第四组第二激活寄存器可包括七个第二激活寄存器并且与第三组第二激活寄存器不同。在又一实施例中,权重值可以以2:4细粒度结构化稀疏性配置来布置,激活值可被存储在第一激活缓冲器的四个第一激活寄存器中并且可被存储在第二激活缓冲器的四个第二激活寄存器中,第一组第一激活寄存器可包括存储激活值的四个第一激活寄存器,第二组第一激活寄存器可包括与第一组第二激活寄存器相同的四个第一激活寄存器,第三组第二激活寄存器可包括存储激活值的四个第二激活寄存器,并且第四组第二激活寄存器可包括与第三组激活寄存器相同的四个第二激活寄存器。在一个实施例中,权重值可以以4:8细粒度结构化稀疏性配置来布置,激活值可被存储在第一激活缓冲器的六个第一激活寄存器中和第二激活缓冲器的六个第二激活寄存器中,第一组第一激活寄存器可包括存储激活值的六个第一激活寄存器,第二组第一激活寄存器可包括与第一组第二激活寄存器相同的六个激活寄存器,第三组第二激活寄存器可包括存储激活值的六个第二激活寄存器,并且第四组第二激活寄存器可包括与第三组第二激活寄存器相同的六个第二激活寄存器。在又一实施例中,权重值可以以2:8细粒度结构化稀疏性配置来布置,并且第一激活寄存器可包括两行的四个激活寄存器,其中,两个输出复用器可被配置为从每行选择一个激活寄存器。在又一实施例中,权重值可以以2:4细粒度结构化稀疏性配置来布置,并且第一激活寄存器可包括两行的两个激活寄存器,其中,两个输出复用器可被配置为从每行选择一个激活寄存器。
附图说明
在下面的部分中,将参照附图中示出的示例性实施例来描述在此公开的主题的方面,其中:
图1A描绘通常在神经网络中被执行的示例点积运算;
图1B描绘由单个乘法和累加(MAC)单元执行的示例点积运算;
图1C描绘多组操作数中的一组是稀疏的示例点积运算;
图2描绘一组密集的权重值被形成为一组N:M细粒度结构化稀疏权重值的示例;
图3A描绘用于1:4细粒度结构化权重稀疏性布置的跨通道C0的四种可能的稀疏掩码情况或模式;
图3B描绘根据在此公开的主题的用于基于用于1:4细粒度结构化权重稀疏性布置的权重稀疏掩码情况从激活缓冲器选择适当的激活值的路由逻辑的示例配置;
图4A描绘用于2:4细粒度结构化权重稀疏性布置的跨通道C0的六种可能的稀疏掩码情况或模式;
图4B描绘根据在此公开的主题的用于基于用于例如2:4细粒度结构化权重稀疏性布置的权重零位掩码从激活缓冲器选择适当的激活值的路由逻辑的示例配置;
图5A描绘用于2:8细粒度结构化权重稀疏性布置的跨通道C0的可能的28种稀疏掩码情况或模式中的13种;
图5B描绘根据在此公开的主题的用于基于例如用于2:8细粒度结构化权重稀疏性布置的权重零位掩码从激活缓冲器选择适当的激活值的路由逻辑的示例配置;
图6A描绘用于4:8细粒度结构化权重稀疏性布置的跨通道C0的可能的70种稀疏掩码情况或模式中的两种;
图6B描绘根据在此公开的主题的用于基于用于4:8细粒度结构化权重稀疏性布置的权重零位掩码情况从激活缓冲器选择适当的激活值的路由逻辑的示例配置;
图7描绘根据在此公开的主题的可重新配置用于1:4、2:4、2:8和4:8的细粒度结构化稀疏性布置的神经处理单元的示例实施例;
图8A和图8B分别描绘根据在此公开的主题的可如何使用于2:8和2:4仅权重细粒度结构化稀疏性NPU架构的激活缓冲器更面积效率;
图9A和图9B分别示出根据在此公开的主题的可如何使2:8和2:4仅权重细粒度结构化稀疏性NPU架构更面积效率;以及
图10描绘根据在此公开的主题的可包括被配置用于一个或多个N:M细粒度结构化稀疏性布置的至少一个NPU的电子装置1000。
具体实施方式
在下面的具体实施方式中,阐述了许多具体细节,以便提供对公开的彻底理解。然而,本领域的技术人员将理解,可在没有这些具体细节的情况下实践公开的方面。在其他情况下,没有详细描述公知的方法、过程、组件和电路,以免模糊在此公开的主题。
贯穿本说明书对“一个实施例”或者“实施例”的引用表示结合实施例描述的特定特征、结构或特性可被包括在在此公开的至少一个实施例中。因此,在贯穿本说明书的各个地方中出现的短语“在一个实施例中”或“在实施例中”或“根据一个实施例”(或者具有相似含义的其他短语)可不必全部表示相同的实施例。此外,在一个或多个实施例中,特定特征、结构或特性可以以任何合适的方式来组合。在这方面,如在此使用的,词语“示例性”表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例将不被解释为必然优选或优于其他实施例。另外,在一个或多个实施例中,特定特征、结构或特性可以以任何合适的方式来组合。此外,根据在此讨论的上下文,单数术语可包括对应的复数形式,并且复数术语可包括对应的单数形式。相似地,带有连字符的术语(例如,“二-维”、“预-确定”、“特定-像素”等)可与对应的非带有连字符的版本(例如,“二维”、“预确定”、“特定像素”等)偶尔可互换地使用,并且大写的条目(例如,“Counter Clock”、“Row Select”、“PIXOUT”等)可与对应的非大写的版本(例如,“counter clock”、“row select”、“pixout”等)可互换地使用。这样的偶尔可互换的使用不应被认为彼此不一致。
此外,根据在此讨论的上下文,单数术语可包括对应的复数形式,并且复数术语可包括对应的单数形式。还应注意,在此示出和讨论的各种附图(包括组件图)仅为了说明的目的,并且不按比例绘制。例如,为了清楚,一些元件的大小可相对于其他元件被夸大。此外,如果认为合适,则在附图之中已经重复附图标记以指示对应的和/或相似的元件。
在此使用的术语仅为了描述一些示例实施例的目的,而不意在限制要求保护的主题。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定存在陈述的特征、整体、步骤、操作、元件、组件和/或它们的组,但不排除存在或增加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。如在此使用的,术语“第一”、“第二”等用作它们之后的名词的标签,并且除非这样明确地定义,否则不表明任何类型的顺序(例如,空间、时间、逻辑等)。此外,可在两个或更多个附图之间使用相同的附图标记以表示具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这样的用法仅为了简化说明和易于讨论,它并不表明这样的组件或单元的构造或结构细节在所有实施例之间都是相同的,或者这样共同引用的部件/模块是实现在此公开的示例实施例中的一些的唯一方式。
将理解,当元件或层被称为“在”另一元件或层“上”、“连接到”或者“结合到”另一元件或层时,它可直接在另一元件或层上、直接连接到或者直接结合到另一元件或层,或者可存在中间元件或层。相反,当元件或层被称为“直接在”另一元件或层“上”、“直接连接到”或者“直接结合到”另一元件或层时,不存在中间元件或层。相同的标号始终表示相同的元件。如在此使用的,术语“和/或”包括相关所列项中的一个或多个的任何组合和全部组合。
如在此使用的,术语“第一”、“第二”等用作它们之后的名词的标签,并且除非这样明确地定义,否则不表明任何类型的顺序(例如,空间、时间、逻辑等)。此外,可在两个或更多个附图之间使用相同的附图标记以表示具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这样的用法仅为了简化说明和易于讨论,它并不表明这样的组件或单元的构造或结构细节在所有实施例之间都是相同的,或者这样共同引用的部件/模块是实现在此公开的示例实施例中的一些的唯一方式。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本主题所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此清楚地如此定义,否则术语(诸如,通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不以理想化或过于形式化的含义进行解释。
如在此使用的,术语“模块”表示被配置为提供在此结合模块描述的功能的软件、固件和/或硬件的任何组合。例如,软件可被实现为软件包、代码和/或指令集或者指令,并且如在此描述的任何实施方式中使用的术语“硬件”可单个地或者以任何组合包括例如装配、硬连线电路系统、可编程电路系统、状态机电路系统和/或存储由可编程电路系统执行的指令的固件。模块可共同地或单独地被实现为形成较大系统(例如,但不限于集成电路(IC)、片上系统(SoC)、装配等)的部分的电路系统。
在此公开的主题提供针对N:M=1:4、4:8和2:8细粒度结构化稀疏性支持N:M细粒度结构化稀疏性的NPU中的有效硬件逻辑架构。另外,在此公开的主题提供支持N:M={1:4,2:4,2:8,4:8}细粒度结构化稀疏性的可重新配置的稀疏逻辑架构。也就是说,单个稀疏NPU逻辑架构可被重新配置为有效地支持四种不同的N:M稀疏性模式。例如,针对N:M=2:8或针对N:M=1:4,在此公开的NPU架构提供4倍的加速。此外,在在此公开的N:M稀疏逻辑架构中,激活缓冲器大小和复用器复杂度的大小可以以每个乘法器单元的解复用器和额外的加法器树为代价而被降低,但是总功率降低和面积效率可提高大于3.5倍。
虽然常规的N:M稀疏性在可约维度(用于卷积运算的输入通道,或者GEMM运算中的权重矩阵的列向量)中对M个权重进行聚类,但是在此公开的主题还可对来自可约维度和不可约维度(用于卷积运算的输出通道或输出像素,或者GEMM运算中的权重矩阵的行向量)二者的M个权重进行聚类。
图1A描绘通常在神经网络中被执行的示例点积运算100。在103,第一组密集的操作数101(其可被认为是激活值)与第二组密集的操作数102(其可被认为是权重值)的点积被形成。输入维度C0在点积运算之后被降低。图1B描绘由单个乘法和累加(MAC)单元110执行的示例点积运算100'。第一组密集的操作数101'和第二组密集的操作数102'顺序地被输入到乘法器(X)111以形成一系列乘积值,该一系列乘积值由累加器112加在一起。如前所述,操作数101'可被认为是激活值,并且操作数102'可被认为是权重值。图1C描绘多组操作数中的一组是稀疏的示例点积运算100”。点积运算被描绘为由单个MAC单元110对第一组密集的操作数101”和一组稀疏的操作数102”执行。针对图1C中描绘的示例,仅一个操作数102”具有非零值,而其他操作数102”是零值。同样,操作数101”可被认为是激活值,并且操作数102”可被认为是权重值。激活复用器(AMUX)113可用于选择适当的操作数101”以与非零值操作数102”对应。控制器(未示出)可控制复用器基于例如与操作数102”相关联的元数据或权重零位掩码(zero-bit mask)来选择适当的激活值。
训练后的神经网络的权重值是固定的已知值,而激活值取决于神经网络的输入并且因此变化。训练后的神经网络的权重值可以是密集的,或者可选地,可被剪枝(purn)并且然后被压缩以形成密集的权重值。权重值可以以N:M细粒度结构化稀疏布置来布置。在一个实施例中,权重值可以以选择的N:M细粒度结构化稀疏布置被存储在权重缓冲器(例如,权重缓冲器的权重寄存器)中。在一个实施例中,权重复用器阵列可基于选择的N:M细粒度结构化稀疏布置来输出存储在权重缓冲器中的一个或多个权重值作为操作数102(例如,权重复用器阵列中的权重复用器可基于选择的N:M细粒度结构化稀疏布置来选择相应的权重寄存器,并且可输出存储在选择的权重寄存器中的权重值作为操作数102)。
图2描绘一组密集的权重值被形成为一组N:M细粒度结构化稀疏权重值的示例。在201,密集的权重值W在示例矩阵中被描绘,其中,R是输出通道的数量并且C是神经网络的线性层中的通道的数量。相对值被描绘为亮矩阵元素(块)和暗矩阵元素(块),其中,相对较低值元素被描绘为较浅的灰色,并且相对较高值元素被描绘为较深的灰色。在202,在剪枝之前,权重值W被分组为4×4组203。在204,用于两个权重组的稀疏子网掩码被指示。在剪枝之后,在205,剪枝后的权重以N:M细粒度结构化稀疏布置被部署,在N:M细粒度结构化稀疏布置中,在每组M个连续的权重中,至多N个权重具有非零值。在205指示的表示:由于仅C个通道中的M个权重中的N个元素被保留,因此权重张量的通道大小从C收缩到/>
图3A描绘用于1:4细粒度结构化权重稀疏性布置的跨通道C0的四种可能的稀疏掩码情况或模式。如由灰色阴影块所指示的,图3A中指示的稀疏掩码情况1至4可被认为描绘非零权重值可位于其中的四寄存器权重缓冲器或四位置权重缓冲器的四个不同的寄存器位置。图3B描绘根据在此公开的主题的用于基于用于1:4细粒度结构化权重稀疏性布置的权重稀疏掩码或权重元数据从激活缓冲器(ABUF)选择适当的激活值的路由逻辑的示例配置。
到4至1激活复用器(AMUX)的相应的输入各自连接到四寄存器ABUF的相应的ABUF寄存器(REG)。AMUX的输出被输入到乘法器MULT。AMUX可由控制单元(未示出)控制,以基于例如权重零位掩码或权重元数据来选择特定的ABUF寄存器。图3B中描绘的路由逻辑不被配置为“借用”来自未来周期的激活值(即,先行“借用”),而是被配置为“借用”来自邻近的通道的激活值(即,后备“借用”)。Cw指示激活值可被路由的最大通道范围(后备距离)。也就是说,如果激活值处于原始位置(0),则该激活值可被路由到的最大(最远)后备位置将是位置3。针对图3B中描绘的路由逻辑,Cw为3。如果双向路由被允许,则等于3的Cw将被指示为±1.5。也就是说,激活值可平均地从左中间位置(-1.5)被路由到右中间位置(+1.5)。1+Cw指示AMUX的用于允许将激活值从其原始位置路由到Cw后备位置的输入扇入。
图3B中描绘的用于N:M=1:4的结构化稀疏性的路由逻辑还能够以(Tw,Cw,Kw)=(3,0,0)的随机(不规则)稀疏性模式进行操作,其中,Tw是时间中的先行,Cw是输入通道中的后备,并且Kw是输出通道中的后备,并且w下标指示权重。通过提供4倍加速,在N:M=1:4的结构化稀疏性下进行操作比在(3,0,0)的随机稀疏性模式下进行操作更有效,而因为加速基于非零值分布模式,所以(3,0,0)的随机稀疏性模式的理想加速并不总是可行的。
图4A描绘用于2:4细粒度结构化权重稀疏性布置的跨通道C0的六种可能的稀疏掩码情况或模式。如由灰色阴影块所指示的,图4A中指示的稀疏掩码情况1至6可被认为描绘非零权重值可位于其中的四寄存器权重缓冲器的六个不同的寄存器位置。图4B描绘根据在此公开的主题的用于基于用于例如2:4细粒度结构化权重稀疏性布置的权重零位掩码或权重元数据从激活缓冲器(ABUF)选择适当的激活值的路由逻辑的示例配置。
在图4B中描绘的路由逻辑的示例配置中,AMUX阵列是两个复用器(MUX)的阵列,其中,每个复用器是3至1复用器。如所示出的,到AMUX阵列的复用器的相应的输入连接到四寄存器ABUF的寄存器(REG)位置。更具体地,到最左边的复用器的三个输入连接到最左边的三个ABUF寄存器。在一个实施例中,ABUF阵列可包括各自具有寄存器宽度2的两个激活缓冲器。到最右边的复用器的三个输入连接到最右边的三个ABUF寄存器。每个相应的复用器的输出被输入到乘法器MULT阵列中的相应的乘法器。MULT阵列的每个乘法器由包含X的块指示。AMUX阵列的复用器可各自由控制单元(未示出)控制,控制单元基于例如权重零位掩码或权重元数据来选择特定的ABUF寄存器。图4B中描绘的路由逻辑的示例配置未被配置为“借用”来自未来周期的激活值,而是被配置为“借用”来自邻近的通道的激活值。
针对图4B的路由逻辑的最大通道范围Cw为2,或者针对双向路由为±1。图4B的路由逻辑还能够以(Tw,Cw,Kw)=(1,1,0)的随机稀疏性模式进行操作。
图5A描绘用于2:8细粒度结构化权重稀疏性布置的跨通道C0的可能的28种稀疏掩码情况或模式中的13种。如由灰色阴影块所指示的,图5A中指示的示例13种稀疏掩码情况可被认为描绘非零权重值可位于其中的八寄存器权重缓冲器的不同寄存器位置。两个不同的灰色阴影描绘两个不同的非零权重值。图5B描绘根据在此公开的主题的用于基于例如用于2:8细粒度结构化权重稀疏性布置的权重零位掩码或权重元数据从激活缓冲器(ABUF)选择适当的激活值的路由逻辑的示例配置。
在图5B中描绘的路由逻辑的示例配置中,AMUX阵列是两个复用器(MUX)的阵列,其中,每个复用器是7至1复用器。如所示出的,到AMUX阵列的复用器的相应的输入连接到八寄存器ABUF的寄存器(REG)位置。也就是说,到最左边的复用器的七个输入连接到最左边的七个ABUF寄存器。到最右边的复用器的七个输入连接到最右边的七个ABUF寄存器。在一个实施例中,ABUF阵列可包括各自具有寄存器宽度4的两个激活缓冲器。每个相应的复用器的输出被输入到乘法器MULT阵列中的相应的乘法器。MULT阵列中的乘法器由包含X的块指示。AMUX阵列的复用器可各自由控制单元(未示出)控制,控制单元基于例如权重零位掩码或权重元数据来选择特定的ABUF寄存器。图5B中描绘的路由逻辑的示例配置未被配置为“借用”来自未来周期的激活值,而是被配置为“借用”来自邻近的通道的激活值。
针对图5B的路由逻辑的最大通道范围Cw为6,或者针对双向路由为±3。图5B的路由逻辑还能够以(Tw,Cw,Kw)=(3,1,0)的随机稀疏性模式进行操作。
图6A描绘用于4:8细粒度结构化权重稀疏性布置的跨通道C0的可能的70种稀疏掩码情况或模式中的两种。如由四个不同的灰色阴影块所指示的,图6A中指示的两种稀疏掩码情况描绘当全部非零权重值在左边时的情况以及当全部非零权重值在右边时的情况。图6B描绘根据在此公开的主题的用于基于用于4:8细粒度结构化权重稀疏性布置的权重零位掩码或权重元数据从激活缓冲器(ABUF)选择适当的激活值的路由逻辑的示例配置。
在图6B中描绘的路由逻辑的示例配置中,AMUX阵列是四个复用器(MUX)的阵列,其中,每个复用器是5至1复用器。如所示出的,到AMUX阵列的复用器的相应的输入连接到八寄存器ABUF的寄存器(REG)位置。例如,到最左边的复用器的五个输入连接到最左边的五个ABUF寄存器。类似地,到最右边的复用器的五个输入连接到最右边的五个ABUF寄存器。在一个实施例中,ABUF阵列可包括各自具有寄存器宽度2的四个激活缓冲器。每个相应的复用器的输出被输入到乘法器MULT阵列中的相应的乘法器。MULT阵列中的乘法器由包含X的块指示。AMUX阵列的复用器可各自由控制单元(未示出)控制,控制单元基于例如权重零位掩码或权重元数据来选择特定的ABUF寄存器。图6B中描绘的路由逻辑未被配置为“借用”来自未来周期的激活值,而是被配置为“借用”来自邻近的通道的激活值。
针对图6B的路由逻辑的最大通道范围Cw为4,或者针对双向路由为±2。图6B的路由逻辑还能够以(Tw,Cw,Kw)=(1,2,0)的随机稀疏性模式进行操作。
图7描绘根据在此公开的主题的可重新配置用于1:4、2:4、2:8和4:8的细粒度结构化稀疏性布置的神经处理单元(NPU)700的示例实施例。NPU 700可包括配置在MULT阵列的四个乘法器。MULT阵列中的乘法器由包含X的块表示。NPU 700还可包括配置在AMUX阵列中的四个激活复用器。AMUX阵列中的复用器由梯形形状表示。激活缓冲器可被配置为四个四寄存器缓冲器并且布置在ABUF阵列中。AMUX阵列的每个复用器可以是7至1复用器。到AMUX阵列的复用器中的两个复用器的输入可以以与在此结合图5B描述的相同的方式连接到两个四寄存器缓冲器。AMUX阵列的复用器与ABUF阵列的寄存器之间的连接可如图7中所示。
通过在ABUF阵列的寄存器中选择性地放置激活值,NPU 700的架构可用于1:4、2:4、2:8和4:8的细粒度结构化权重稀疏性布置。参照图7,如在每个NPU 700配置的最左侧所指示的,相应的激活通道可被索引。通道索引基于NPU 700已经被配置用于的四种细粒度结构化稀疏性布置中的哪一种而改变。
当NPU 700被配置用于2:8细粒度结构化权重稀疏性时,ABUF阵列、AMUX阵列与MULT阵列之间的连接被描绘为N:M=2:8配置。十六个激活通道各自被输入到相应的ABUF阵列中的寄存器。AMUX阵列中的复用器由控制器(未示出)控制,以基于例如与2:8细粒度结构化权重稀疏性值相关联的权重零位掩码或权重元数据来选择适当的ABUF寄存器。
当NPU 700被配置用于1:4细粒度结构化权重稀疏性时,ABUF阵列、AMUX阵列与MULT阵列之间的连接被描绘为N:M=1:4配置。N:M=1:4配置与N:M=2:8配置相同。针对N:M=1:4配置,16个激活通道各自被输入到ABUF阵列中的相应的寄存器。AMUX阵列中的复用器由控制器(未示出)控制,以基于例如与1:4细粒度结构化权重稀疏性值相关联的权重零位掩码或权重元数据来选择适当的ABUF寄存器。
当NPU 700被配置用于2:4细粒度结构化权重稀疏性时,ABUF阵列、AMUX阵列与MULT阵列之间的连接被描绘为N:M=2:4配置。针对N:M=2:4配置,八个激活通道各自被输入到如所指示的ABUF阵列中的相应的寄存器。AMUX阵列中的复用器由控制器(未示出)控制,以基于例如与2:4细粒度结构化权重稀疏性值相关联的权重零位掩码或权重元数据来选择适当的ABUF寄存器。
当NPU 700被配置用于4:8细粒度结构化权重稀疏性时,ABUF阵列、AMUX阵列与MULT阵列之间的连接被描绘为N:M=4:8配置。针对N:M=4:8配置,八个激活通道各自被输入到如所指示的ABUF阵列中的相应的寄存器。更具体地,两个最顶部的乘法器可访问通道1至6。最顶部的乘法器可访问通道1至5,并且下一个乘法器可访问通道2至6,这与图6B中描绘的NPU配置对应。另外,两个最底部的乘法器可访问通道3至8,其中,从顶部开始的第三个乘法器可访问通道3至7,并且底部乘法器可访问通道4至8,这也与图6B中描绘的NPU配置对应。AMUX阵列中的复用器由控制器(未示出)控制,以基于例如与4:8细粒度结构化权重稀疏性值相关联的权重零位掩码或权重元数据来选择适当的ABUF寄存器。
表1阐述在此公开的四种不同的仅NPU权重(仅W(W-Only))结构化稀疏性核架构的硬件成本和加速益处。图3A和图3B中描绘的仅W1:4稀疏NPU逻辑设计可被配置为在1:4和2:4稀疏模式两者下进行操作,而图4A和图4B中描绘的仅W 2:4稀疏NPU逻辑设计可被配置为仅在2:4稀疏模式下进行操作。如图7中所描绘的,图5A和图5B中描绘的仅W 2:8稀疏NPU逻辑设计可被配置为在全部四种稀疏模式下进行操作,并且图6A和图6B中描绘的仅W 4:8稀疏NPU逻辑设计可被配置为在2:4和4:8稀疏模式下进行操作。仅W 2:8NPU逻辑设计为程序员提供选择四种(1:4、2:4、2:8或4:8)N:M细粒度结构化稀疏性模式中的任意一种的自由。表1还包括关于与在此公开的四种不同的NPU逻辑设计中的每种相关联的AMUX扇入、ABUF大小(宽度)和计算加速的信息。
表1还示出由在此公开的不同的NPU逻辑设计中的每种针对约80%稀疏性的随机权重稀疏性模式提供的近似计算加速。
表1
图8A和图8B分别描绘根据在此公开的主题的可如何使用于2:8和2:4仅权重细粒度结构化稀疏性NPU架构的ABUF更面积效率。用于2:8和2:4NPU架构二者的ABUF的大小可被减小,这允许相应的AMUX的复杂度也被减小。大小减小和复杂性减小可通过每个乘法器一个解复用器和一个附加加法器树的硬件成本来提供。
图8A的左侧描绘用于2:8细粒度结构化权重稀疏性布置的跨通道C0的可能的28种稀疏掩码情况或模式中的13种。用于2:8细粒度结构化权重稀疏性NPU的ABUF配置(诸如,图5B中所示)是具有寄存器深度尺寸1的8通道ABUF。ABUF的这种配置与作为具有深度1的8通道WBUF的权重缓冲器对应。如图8A的右侧所示,ABUF的大小可被重新配置为具有寄存器深度尺寸2的4通道ABUF,其中,一些示例8取2稀疏性可能被描绘。为了减小用于该NPU架构的ABUF的尺寸,WBUF还可被重新配置为具有寄存器深度尺寸2的4通道缓冲器。与大小减小的ABUF对应的AMUX变为代替图5B中描绘的7至1复用器中的每个的两个4至1复用器。两个大小减小的复用器的输出分别被输入到两个乘法器。每个乘法器的输出结合到1至2解复用器。每个1至2解复用器的相应的输出结合到加法器树,在加法器树中,第二加法器树导致ABUF和WBUF的增加尺寸。
图8B的左侧描绘用于2:4细粒度结构化权重稀疏性布置的跨通道C0的6种可能的稀疏掩码情况或模式。用于2:4细粒度结构化权重稀疏性NPU的ABUF配置(诸如,图4B中所示)是具有寄存器深度尺寸1的4通道ABUF。ABUF的这种配置与作为具有寄存器深度1的4通道ABUF的权重缓冲器对应。如图8B的右侧所示,ABUF的大小可被重新配置为具有深度尺寸2的2通道ABUF,其中,一些示例4取2稀疏性可能被描绘。为了减小用于该NPU架构的ABUF的尺寸,WBUF还可被重新配置为具有寄存器深度尺寸2的2通道缓冲器。与大小减小的ABUF对应的AMUX变为代替图5B中描绘的3至1复用器中的每个的两个2至1复用器。两个尺寸减小的复用器的输出分别被输入到两个乘法器。每个乘法器的输出结合到1至2解复用器。每个1至2解复用器的相应的输出结合到加法器树,在加法器树中,第二加法器树导致ABUF和WBUF的增加尺寸。
图9A和图9B分别示出根据在此公开的主题的可如何使2:8和2:4仅权重细粒度结构化稀疏性NPU架构更面积效率。图9A描绘示例密集权重数据路径布置,其中,WBUF包括用于四个权重输入通道的两个输出权重通道,并且ABUF包括用于四个激活输入通道的一个激活输出通道。每个权重输出通道被输入到相应的乘法器(由包含X的块指示)。一个激活输出通道被广播到两个乘法器中的每个。乘法器的相应的输出各自结合到单个加法器树。
图9B描绘示例稀疏权重数据路径布置,其中,WBUF包括用于四个权重输入通道的两个输出权重通道,并且ABUF包括用于四个激活输入通道的一个激活输出通道。每个权重输出通道被输入到相应的乘法器(由包含X的块指示)。一个激活输出通道通过两个4至1激活复用器结合到两个乘法器中的每个。每个激活复用器被控制以选择与被输入到乘法器的非零值权重对应的激活值。乘法器的相应的输出各自结合到1至2解复用器。解复用器的每个输出分别结合到第一加法器树和第二加法器树。
在此描述的ABUF大小的减小适用于在此公开的全部四种NPU仅权重(仅W)结构化稀疏性核架构。表2阐述在此公开的四种不同的NPU仅权重(仅W)结构化稀疏性核架构的硬件成本和加速益处。如紧接在不同的N:M稀疏性模式右侧的“→2D”列中所指示的,针对减小的ABUF大小(也就是说,针对已经从1深度尺寸被重新配置为2深度尺寸的ABUF),硬件成本和益处也被示出。
表2
/>
图10描绘根据在此公开的主题的可包括被配置用于一个或多个N:M细粒度结构化稀疏性布置的至少一个NPU的电子装置1000。电子装置1000和电子装置1000的各种系统组件可由一个或多个模块形成。电子装置1000可包括通过总线1090彼此结合的控制器(或CPU)1010、输入/输出(I/O)装置1020(诸如,但不限于,键区、键盘、显示器、触摸屏显示器、2D图像传感器、3D图像传感器)、存储器(例如,存储器装置)1030、接口1040、图形处理单元(GPU)1050、成像处理单元(例如,图像处理单元)1060、神经处理单元1070、飞行时间(TOF)处理单元1080。在一个实施例中,2D图像传感器和/或3D图像传感器可以是成像处理单元1060的一部分。在另一实施例中,3D图像传感器可以是TOF处理单元1080的一部分。控制器1010可包括例如至少一个微处理器、至少一个数字信号处理器、至少一个微控制器等。存储器1030可被配置为存储待由控制器1010使用的命令代码和/或存储用户数据。神经处理单元1070可包括被配置用于根据在此公开的主题的一个或多个N:M细粒度结构化稀疏性布置的至少一个NPU。
接口1040可被配置为包括无线接口,无线接口被配置为使用RF信号向例如无线通信网络发送数据或从例如无线通信网络接收数据。无线接口1040可包括例如天线。电子装置1000还可用于通信系统(诸如,但不限于,码分多址(CDMA)、全球移动通信系统(GSM)、北美数字通信(NADC)、扩展时分多址(E-TDMA)、宽带CDMA(WCDMA)、CDMA 2000、WiFi、城市WiFi(Muni WiFi)、蓝牙、数字增强无绳电信(DECT)、无线通用串行总线(无线USB)、具有无缝切换的快速低延迟接入正交频分复用(Flash-OFDM)、IEEE 802.20、通用分组无线电服务(GPRS)、iBurst、无线宽带(WiBro)、WiMAX、高级WiMAX、通用移动电信服务-时分双工(UMTS-TDD)、高速分组接入(HSPA)、演进数据优化(EVDO)、高级长期演进(LTE-Advanced)、多通道多点分发服务(MMDS)、第五代无线(5G)、第六代无线(6G)等)的通信接口协议中。
本说明书中描述的主题和操作的实施例可在数字电子电路系统中实施,或者在计算机软件、固件或硬件(包括本说明书中公开的结构和它们的结构等同物)中实施,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可被实施为编码在计算机存储介质上的一个或多个计算机程序(即,计算机程序指令的一个或多个模块),以由数据处理设备执行或控制数据处理设备的操作。可选地或附加地,程序指令可在人工生成的传播信号(例如,被生成为编码信息以传输到适合于由数据处理设备执行的接收器设备的机器生成的电信号、光信号或电磁信号)上被编码。计算机存储介质可以是计算机可读存储装置、计算机可读存储基底、随机或串行存取存储器阵列或装置或它们的组合,或者被包括在计算机可读存储装置、计算机可读存储基底、随机或串行存取存储器阵列或装置或它们的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的来源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储装置),或者被包括在一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储装置)中。另外,本说明书中描述的操作可被实施为由数据处理设备对存储在一个或多个计算机可读存储装置上或从其他来源接收的数据执行的操作。
虽然本说明书可包含许多具体的实施细节,但是实施细节不应被解释为对任何要求保护的主题的范围的限制,而是应被解释为对特定于特定实施例的特征的描述。在本说明书中在单独的实施例的上下文中描述的特定特征也可在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可单独地或以任何合适的子组合在多个实施例中实施。此外,尽管以上可将特征描述为以特定组合起作用甚至最初如此要求保护,但是在一些情况下可从组合删除来自于要求保护的组合的一个或多个特征,并且要求保护的组合可针对子组合或子组合的变化。
类似地,虽然在附图中以特定次序描绘操作,但是这不应被理解为要求以示出的特定次序或按连续的次序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,以上描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应理解,描述的程序组件和系统通常可一起被集成在单个软件产品中或封装到多个软件产品中。
因此,在此已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中阐述的动作可以以不同的次序执行,并且仍然实现期望的结果。另外,附图中描绘的处理不一定需要示出的特定次序或连续的次序,以实现期望的结果。在特定实施方式中,多任务和并行处理可能是有利的。
如本领域技术人员将认识到的,在此描述的创新构思可在宽范围的应用之上进行修改和变化。因此,要求保护的主题的范围不应限于以上讨论的任何特定示例性教导,而是由所附权利要求限定。
Claims (20)
1.一种神经处理单元,包括:
权重缓冲器,被配置为以细粒度结构化稀疏性权重布置来存储权重值,细粒度结构化稀疏性权重布置从包括1:4细粒度结构化稀疏性权重布置、2:4细粒度结构化稀疏性权重布置、4:8细粒度结构化稀疏性权重布置和2:8细粒度结构化稀疏性权重布置中的至少两种布置的细粒度结构化稀疏性权重布置的组被选择;
权重复用器阵列,被配置为基于选择的细粒度结构化稀疏性权重布置来输出存储在权重缓冲器中的一个或多个权重值作为第一操作数值;
激活缓冲器,被配置为存储激活值;
激活复用器阵列,包括输入,激活复用器阵列结合到激活缓冲器,激活复用器阵列被配置为输出存储在激活缓冲器中的一个或多个激活值作为第二操作数值,每个相应的第二操作数值和相应的第一操作数值形成操作数值对;以及
乘法器阵列,被配置为输出每个操作数值对的乘积值。
2.根据权利要求1所述的神经处理单元,其中,激活缓冲器包括:8个激活寄存器,用于存储8个激活值,
其中,权重复用器阵列包括:第一权重复用器,被配置为基于选择的细细粒度结构化稀疏性权重布置来选择权重寄存器,并且输出存储在选择的权重寄存器中的权重值作为第一操作数值;
其中,激活复用器阵列包括:第一激活复用器,包括七个输入,第一激活复用器的每个相应的输入连接到第一组激活寄存器内的相应的激活寄存器,第一激活复用器被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一组激活寄存器中的激活寄存器,并且输出存储在选择的激活寄存器中的激活值作为第二操作数值,第二操作数值与第一操作数值对应,并且第二操作数值和第一操作数值形成第一操作数值对;并且
其中,乘法器阵列包括:第一乘法器单元,被配置为输出第一操作数值对的乘积值。
3.根据权利要求2所述的神经处理单元,其中,权重值以1:4细粒度结构化稀疏性权重布置或以2:8细粒度结构化稀疏性权重布置被存储在权重缓冲器中,并且
其中,第一组激活寄存器包括7个激活寄存器。
4.根据权利要求2所述的神经处理单元,其中,权重值以2:4细粒度结构化稀疏性权重布置被存储在权重缓冲器中,并且
其中,第一组激活寄存器包括3个激活寄存器。
5.根据权利要求2所述的神经处理单元,其中,权重值以4:8细粒度结构化稀疏性权重布置被存储在权重缓冲器中,并且
其中,第一组激活寄存器包括5个激活寄存器。
6.根据权利要求1所述的神经处理单元,其中,权重值以2:8细粒度结构化稀疏性布置被存储,并且
其中,激活寄存器包括两行的四个激活寄存器,其中,两个输出复用器被配置为各自选择一个激活寄存器。
7.根据权利要求1所述的神经处理单元,其中,权重值以2:4细粒度结构化稀疏性布置被存储,并且
其中,激活寄存器包括两行的两个激活寄存器,其中,两个输出复用器被配置为各自选择一个激活寄存器。
8.一种神经处理单元,包括:
第一权重缓冲器,包括第一权重寄存器的阵列,每个第一权重寄存器被配置为以细粒度结构化稀疏性权重布置来存储权重值,细粒度结构化稀疏性权重布置从包括1:4细粒度结构化稀疏性权重布置、2:4细粒度结构化稀疏性权重布置、4:8细粒度结构化稀疏性权重布置和2:8细粒度结构化稀疏性权重布置中的至少两种布置的细粒度结构化稀疏性权重布置的组被选择;
第一权重复用器,被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一权重寄存器,并且输出存储在选择的第一权重寄存器中的权重值作为第一操作数值;
第一激活缓冲器,包括第一预定数量的第一激活寄存器,每个第一激活寄存器被配置为存储激活值;以及
第一激活复用器,包括第二预定数量的第一激活复用器输入,第一激活复用器的每个相应的输入连接到第一组第一激活寄存器内的相应的第一激活寄存器,第一激活复用器被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一激活寄存器,并且输出存储在选择的第一激活寄存器中的激活值作为第二操作数值,作为第二操作数值被输出的激活值与作为第一操作数值被输出的权重值对应;以及
第一乘法器单元,被配置为输出第一操作数值与第二操作数值的第一乘积值。
9.根据权利要求8所述的神经处理单元,其中,第一激活寄存器的第一预定数量包括8,并且第一激活复用器输入的第二预定数量包括7。
10.根据权利要求9所述的神经处理单元,其中,权重值以1:4细粒度结构化稀疏性布置被存储。
11.根据权利要求9所述的神经处理单元,其中,权重值以2:4细粒度结构化稀疏性布置被存储。
12.根据权利要求9所述的神经处理单元,其中,权重值以4:8细粒度结构化稀疏性布置被存储。
13.根据权利要求9所述的神经处理单元,其中,权重值以2:8细粒度结构化稀疏性布置被存储。
14.根据权利要求8所述的神经处理单元,还包括:
第二权重复用器,被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一权重寄存器,并且输出存储在选择的第一权重寄存器中的权重值作为第三操作数值;
第二激活复用器,包括第二预定数量的第二激活复用器输入,第二激活复用器的每个相应的输入连接到与第一组第一激活寄存器不同的第二组第一激活寄存器内的相应的第一激活寄存器,第二激活复用器被配置为基于选择的细粒度结构化稀疏性权重布置来选择第一激活寄存器,并且输出存储在选择的第一激活寄存器中的激活值作为第四操作数值,作为第四操作数值被输出的激活值与作为第三操作数值被输出的权重值对应;以及
第二乘法器单元,被配置为输出第三操作数值与第四操作数值的第二乘积值。
15.根据权利要求14所述的神经处理单元,还包括:
第二权重缓冲器,被配置为基于选择的细粒度结构化稀疏性权重布置来存储权重值;
第三权重复用器,被配置为基于选择的细粒度结构化稀疏性权重布置来选择第二权重寄存器,并且输出存储在选择的第二权重寄存器中的权重值作为第五操作数值;
第二激活缓冲器,包括第一预定数量的第二激活寄存器,每个第二激活寄存器被配置为存储激活值;
第三激活复用器,包括第二预定数量的第三激活复用器输入,第三激活复用器的每个相应的输入连接到第一组第二激活寄存器内的相应的第二激活寄存器,第三激活复用器被配置为基于选择的细粒度结构化稀疏性权重布置来选择第二激活寄存器,并且输出存储在选择的第二激活寄存器中的激活值作为第六操作数值,作为第六操作数值被输出的激活值与作为第五操作数值被输出的权重值对应;
第三乘法器单元,被配置为输出第五操作数值与第六操作数值的第三乘积值;
第四权重复用器,被配置为基于选择的细粒度结构化稀疏性权重布置来选择第二权重寄存器,并且输出存储在选择的第二权重寄存器中的权重值作为第七操作数值;
第四激活复用器,包括第二预定数量的第四激活复用器输入,第四激活复用器的每个相应的输入连接到与第一组第二激活寄存器不同的第二组第二激活寄存器内的相应的第二激活寄存器,第四激活复用器被配置为基于选择的细粒度结构化稀疏性权重布置来选择第二激活寄存器,并且输出存储在选择的第二激活寄存器中的激活值作为第八操作数值;以及
第四乘法器单元,被配置为输出第七操作数值与第八操作数值的第四乘积值。
16.根据权利要求15所述的神经处理单元,其中,第一预定数量的第一激活寄存器包括8个第一激活寄存器,
其中,第二预定数量的第一激活复用器输入包括7个第一激活复用器输入,
其中,第二预定数量的第二激活复用器输入包括7个第二激活复用器输入,
其中,第一预定数量的第二激活寄存器包括8个第二激活寄存器,
其中,第二预定数量的第三激活复用器输入包括7个第三激活复用器输入,并且
其中,第二预定数量的第四激活复用器输入包括7个第四激活复用器输入。
17.根据权利要求16所述的神经处理单元,其中,权重值以1:4细粒度结构化稀疏性布置被存储,
其中,第一组第一激活寄存器包括四个第一激活寄存器,并且第二组第一激活寄存器包括四个第一激活寄存器并且与第一组第一激活寄存器不同,并且
其中,第一组第二激活寄存器包括四个第二激活寄存器,并且第二组第二激活寄存器包括四个第二激活寄存器并且与第一组第二激活寄存器不同。
18.根据权利要求16所述的神经处理单元,其中,权重值以2:8细粒度结构化稀疏性布置被存储,
其中,第一组第一激活寄存器包括七个第一激活寄存器,并且第二组第一激活寄存器包括七个第一激活寄存器并且与第一组第一激活寄存器不同,并且,
其中,第一组第二激活寄存器包括七个第二激活寄存器,并且第二组第二激活寄存器包括七个第二激活寄存器并且与第一组第二激活寄存器不同。
19.根据权利要求16所述的神经处理单元,其中,权重值以2:4细粒度结构化稀疏性布置被存储,
其中,激活值被存储在第一激活缓冲器的四个第一激活寄存器中并且被存储在第二激活缓冲器的四个第二激活寄存器中,
其中,第一组第一激活寄存器包括存储激活值的三个第一激活寄存器,并且第二组第一激活寄存器包括与第一组第一激活寄存器不同的三个第一激活寄存器,并且
其中,第一组第二激活寄存器包括存储激活值的三个第二激活寄存器,并且第二组第二激活寄存器包括与第一组第二激活寄存器不同的三个第二激活寄存器。
20.根据权利要求16所述的神经处理单元,其中,权重值以4:8细粒度结构化稀疏性布置被存储,
其中,激活值被存储在第一激活缓冲器的六个第一激活寄存器中和第二激活缓冲器的六个第二激活寄存器中,
其中,第一组第一激活寄存器包括存储激活值的五个第一激活寄存器,并且第二组第一激活寄存器包括与第一组第一激活寄存器不同的五个激活寄存器,并且
其中,第一组第二激活寄存器包括存储激活值的五个第二激活寄存器,并且第二组第二激活寄存器包括与第一组第二激活寄存器不同的五个第二激活寄存器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/408,827 | 2022-09-21 | ||
US63/408,828 | 2022-09-21 | ||
US17/980,544 US20240119270A1 (en) | 2022-09-21 | 2022-11-03 | Weight-sparse npu with fine-grained structured sparsity |
US17/980,544 | 2022-11-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117744723A true CN117744723A (zh) | 2024-03-22 |
Family
ID=90255033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310967526.6A Pending CN117744723A (zh) | 2022-09-21 | 2023-08-02 | 神经处理单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117744723A (zh) |
-
2023
- 2023-08-02 CN CN202310967526.6A patent/CN117744723A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776694B2 (en) | Optimized neural network input stride method and apparatus | |
KR20170135752A (ko) | 효율적인 스파스 병렬 위노그래드 기반 컨볼루션 체계 | |
KR20160085335A (ko) | 벡터 데이터 메모리와 실행 유닛들 사이의 데이터 흐름 경로들에서 재정렬 회로를 이용하는 벡터 프로세싱 엔진, 및 관련된 방법 | |
KR20160085873A (ko) | 실행 유닛들과 벡터 데이터 메모리 사이에 병합 회로를 갖는 벡터 프로세싱 엔진, 및 관련된 방법 | |
KR20160085336A (ko) | 실행 유닛들과 벡터 데이터 메모리 사이의 데이터 흐름 경로들에서 역확산 회로를 이용하는 벡터 프로세싱 엔진, 및 관련된 방법 | |
CN110007896B (zh) | 具有时钟选通的用于执行矩阵乘法的硬件单元 | |
GB2604142A (en) | Implementation of softmax and exponential in hardware | |
CN113515261A (zh) | 乘法器单元及计算浮点值的点积的方法和装置 | |
CN117744723A (zh) | 神经处理单元 | |
EP4343631A1 (en) | Weight-sparse npu with fine-grained structured sparsity | |
KR20220168975A (ko) | 신경망 가속기 | |
EP4109346A1 (en) | Depthwise-convolution implementation on a neural processing core | |
EP4375878A1 (en) | Dnns acceleration with block-wise n:m structured weight sparsity | |
US20240095518A1 (en) | Structured sparse memory hierarchy for deep learning | |
CN117744724A (zh) | 神经处理单元 | |
CN118052256A (zh) | 利用分块n:m结构化权重稀疏性的dnn加速 | |
KR20220161485A (ko) | 다수의 누산기들을 구비한 시스톨릭 어레이 셀들 | |
EP4343632A1 (en) | Hybrid-sparse npu with fine-grained structured sparsity | |
US20230153586A1 (en) | Accelerate neural networks with compression at different levels | |
EP4160487A1 (en) | Neural network accelerator with a configurable pipeline | |
KR20220166730A (ko) | 신경 처리 장치의 코어 및 신경망 계층의 입력 특징 맵 값을 처리하는 방법 | |
US20220156569A1 (en) | Weight-sparse neural processing unit with multi-dimensional routing of non-zero values | |
GB2611521A (en) | Neural network accelerator with a configurable pipeline | |
KR20210117905A (ko) | 가중치 스테이션 내적 기반 CNN 가속기에 3x3, 1x3 및 3x1 필터가 있는 CNN을 위한 위노그라드의 낮은 오버헤드 구현 | |
GB2614327A (en) | Configurable pooling process unit for neural network accelerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |