CN115496192A - 具有网格融合的混合精度神经网络加速器区块 - Google Patents
具有网格融合的混合精度神经网络加速器区块 Download PDFInfo
- Publication number
- CN115496192A CN115496192A CN202210653239.3A CN202210653239A CN115496192A CN 115496192 A CN115496192 A CN 115496192A CN 202210653239 A CN202210653239 A CN 202210653239A CN 115496192 A CN115496192 A CN 115496192A
- Authority
- CN
- China
- Prior art keywords
- multiplier
- significant
- multiplicand
- significant nibble
- sum
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 36
- 230000004927 fusion Effects 0.000 title description 12
- 241001442055 Vipera berus Species 0.000 claims abstract description 72
- 238000004364 calculation method Methods 0.000 abstract description 6
- 239000013598 vector Substances 0.000 description 24
- 238000009825 accumulation Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000001537 neural effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
公开了一种神经网络加速器,包括乘法单元、加法器树单元和累加器单元。乘法单元和加法器树单元被配置为执行网格乘法操作。累加器单元耦接到加法器树的输出,以从由乘法单元和加法器树单元执行的网格乘法运算形成点积值。乘法单元包括执行基于网格乘法的运算并输出乘积值的n个乘法器单元。每个乘法器单元包括多个乘法器。每个乘法器单元接收第一和第二被乘数,每个被乘数包括最高有效半字节(MSN)和最低有效半字节(LSN)。每个乘法器单元中的乘法器接收被乘数的MSN和LSN的不同组合。乘法单元和加法器可以提供混合精度点积计算。
Description
相关申请的交叉引用
本申请要求于2021年6月17日提交的第63/212,104号美国临时申请和于2021年8月31日提交的第17/463,544号美国非临时专利申请的优先权利益,其公开内容通过引用整体并入本文。
技术领域
本文公开的主题涉及神经处理单元(neural processing unit,NPU)。更具体地说,本文公开的主题涉及一种利用网格乘法(lattice multiplication)来形成点积值的神经网络加速器。
背景技术
NPU用于加速深度学习算法(诸如卷积神经网络(convolution neural network,CNN))的计算。NPU可以包括点积计算单元,其中乘法阵列的输出被输入到加法器树,然后被输入到累加器,以执行点积操作。可以使用不同的量化技术来量化深度学习算法的权重和/或激活。量化技术可以导致不同的量化精度,诸如8位精度或4位精度。混合精度NPU支持加速具有不同精度(例如,每权重的位数)的不同深度学习算法。混合精度NPU通常使用低精度乘法单元来构建。在混合精度NPU中可以使用时间或空间融合来支持更高精度的计算。在空间融合中,乘法单元(即,处理元件(processing element,PE))被分成多个集合或区块。高精度数据可以被分成低精度分量(例如,半字节),并根据分量位置(例如,最高有效半字节(most significant nibble,MSN)、最低有效半字节(least significant nibble,LSN))被分配给每个乘法器集合。每个集合使用低精度乘法器执行高精度结果的部分计算。每个集合的结果可以被组合(融合)在一起以生成更高精度的计算。
发明内容
示例实施例提供了一种神经网络加速器,其可以包括乘法单元、加法器树单元和累加器单元。乘法单元和加法器树单元可以被配置为执行网格乘法运算。累加器单元可以耦接到加法器树的输出,并且可以从由乘法单元和加法器树单元执行的网格乘法运算形成点积值。在一个实施例中,乘法单元可以包括n个乘法器单元,该n个乘法器单元执行基于网格乘法的运算并输出乘积值。在另一实施例中,每个乘法器单元可以是N×N乘法器单元,并且每个乘法器单元可以包括四个N/2×N/2乘法器。在一个实施例中,n和N可以是8,并且每个乘法器单元可以接收第一被乘数和第二被乘数,其中第一被乘数可以包括最高有效半字节和最低有效半字节,并且第二被乘数可以包括最高有效半字节和最低有效半字节。每个乘法器单元可以包括接收第一被乘数的最低有效半字节和第二被乘数的最低有效半字节的第一乘法器,接收第一被乘数的最低有效半字节和第二被乘数的最高有效半字节的第二乘法器,接收第一被乘数的最高有效半字节和第二被乘数的最低有效半字节的第三乘法器,以及接收第一被乘数的最高有效半字节和第二被乘数的最高有效半字节的第四乘法器。在一个实施例中,第一被乘数的最高有效半字节等于0,并且第二被乘数的最高有效半字节可以大于0。在另一实施例中,第一被乘数的最高有效半字节可以大于0,并且第二被乘数的最高有效半字节等于0。在又一实施例中,每个乘法器单元的第一乘法器可以输出第一乘积值的最低有效半字节L0和最高有效半字节M0,每个乘法器单元的第二乘法器可以输出第二乘积值的最低有效半字节L1和最高有效半字节M1,每个乘法器单元的第三乘法器可以输出第三乘积值的最低有效半字节L2和最高有效半字节M2,并且每个乘法器单元的第四乘法器可以输出第四乘积值的最低有效半字节L3和最高有效半字节M3。在又一实施例中,加法器树可以通过将由n个乘法器单元输出的第一乘积值的所有最低有效半字节相加来形成第一和S0,通过将由n个乘法器单元输出的第二乘积值的所有最低有效半字节、第三乘积值的所有最低有效半字节和第一乘积值的所有最高有效半字节相加来形成第二和S1,通过将由n个乘法器单元输出的第四乘积值的所有最低有效半字节、第二乘积值的所有最高有效半字节和第三乘积值的所有最高有效半字节相加来形成第三和S2,以及通过将由n个乘法器单元输出的所有最高有效半字节相加来形成第四和S3。在一个实施例中,第二和S1还可以包括来自第一和S0的进位值,第三和S2还可以包括来自第二和S1的进位值,并且第四和S3还可以包括来自第三和S2的进位值。
示例实施例提供了一种神经网络加速器,其可以包括乘法单元、加法器树和累加器单元。乘法单元可以包括n个乘法器单元,该n个乘法器单元执行基于网格乘法的运算并输出乘积值。加法器树可以耦接到乘法器单元以对从乘法器单元输出的乘积值求和,并且可以输出求和的乘积值。累加器单元可以通过累加求和的乘积值来形成点积值。在一个实施例中,每个乘法器单元可以是N×N乘法器单元,并且每个乘法器单元可以包括四个N/2×N/2乘法器。在另一实施例中,n和N可以等于8,并且每个乘法器单元可以接收第一被乘数和第二被乘数,其中第一被乘数可以包括最高有效半字节和最低有效半字节,并且第二被乘数可以包括最高有效半字节和最低有效半字节。每个乘法器单元可以包括可以接收第一被乘数的最低有效半字节和第二被乘数的最低有效半字节的第一乘法器、可以接收第一被乘数的最低有效半字节和第二被乘数的最高有效半字节的第二乘法器、可以接收第一被乘数的最高有效半字节和第二被乘数的最低有效半字节的第三乘法器、以及可以接收第一被乘数的最高有效半字节和第二被乘数的最高有效半字节的第四乘法器。在另一实施例中,第一被乘数的最高有效半字节可以等于0,并且第二被乘数的最高有效半字节可以大于0。在又一实施例中,第一被乘数的最高有效半字节可以大于0,并且第二被乘数的最高有效半字节可以等于0。在一个实施例中,每个乘法器单元的第一乘法器可以输出第一乘积值的最低有效半字节L0和最高有效半字节M0,每个乘法器单元的第二乘法器可以输出第二乘积值的最低有效半字节L1和最高有效半字节M1,每个乘法器单元的第三乘法器可以输出第三乘积值的最低有效半字节L2和最高有效半字节M2,并且每个乘法器单元的第四乘法器可以输出第四乘积值的最低有效半字节L3和最高有效半字节M3。在又一实施例中,加法器树可以通过将由n个乘法器单元输出的第一乘积值的所有最低有效半字节相加来形成第一和S0,通过将由n个乘法器单元输出的第二乘积值的所有最低有效半字节、第三乘积值的所有最低有效半字节和第一乘积值的所有最高有效半字节相加来形成第二和S1,通过将由n个乘法器单元输出的第四乘积值的所有最低有效半字节、第二乘积值的所有最高有效半字节和第三乘积值的所有最高有效半字节相加来形成第三和S2,以及通过将由n个乘法器单元输出的所有最高有效半字节相加来形成第四和S3。在又一实施例中,第二和S1还可以包括来自第一和S0的进位值,第三和S2还可以包括来自第二和S1的进位值,并且第四和S3还可以包括来自第三和S2的进位值。
示例实施例提供了一种混合精度神经网络加速器,其可以包括乘法单元、加法器树和累加器单元。乘法单元可以包括n个乘法器单元,该n个乘法器单元执行基于网格乘法的运算并且可以输出乘积值,其中每个乘法器单元可以接收第一被乘数和第二被乘数。第一被乘数可以包括最高有效半字节和最低有效半字节,并且第二被乘数可以包括最高有效半字节和最低有效半字节。每个乘法器单元可以包括接收第一被乘数的最低有效半字节和第二被乘数的最低有效半字节的第一乘法器,可以接收第一被乘数的最低有效半字节和第二被乘数的最高有效半字节的第二乘法器,可以接收第一被乘数的最高有效半字节和第二被乘数的最低有效半字节的第三乘法器,以及可以接收第一被乘数的最高有效半字节和第二被乘数的最高有效半字节的第四乘法器。加法器树可以耦接到乘法器单元,并且可以被配置为对从乘法器单元输出的乘积值求和,并且输出求和的乘积值。累加器单元可以被配置为通过累加经求和的乘积值来形成点积值。在一个实施例中,每个乘法器单元的第一乘法器可以输出第一乘积值的最低有效半字节L0和最高有效半字节M0,每个乘法器单元的第二乘法器可以输出第二乘积值的最低有效半字节L1和最高有效半字节M1,每个乘法器单元的第三乘法器可以输出第三乘积值的最低有效半字节L2和最高有效半字节M2,并且每个乘法器单元的第四乘法器可以输出第四乘积值的最低有效半字节L3和最高有效半字节M3。加法器树可以通过将由n个乘法器单元输出的第一乘积值的所有最低有效半字节相加来形成第一和S0,通过将由n个乘法器单元输出的第二乘积值的所有最低有效半字节、第三乘积值的所有最低有效半字节和第一乘积值的所有最高有效半字节相加来形成第二和S1,通过将由n个乘法器单元输出的第四乘积值的所有最低有效半字节、第二乘积值的所有最高有效半字节和第三乘积值的所有最高有效半字节相加来形成第三和S2,以及通过将由n个乘法器单元输出的所有最高有效半字节相加来形成第四和S3。第二和S1还可以包括来自第一和S0的进位值,第三和S2还可以包括来自第二和S1的进位值,并且第四和S3还可以包括来自第三和S2的进位值。在一个实施例中,n和N可以等于8。
附图说明
在以下部分中,将参考附图中示出的示例性实施例来描述本文公开的主题的方面,在附图中:
图1描绘了根据本文公开的主题的具有网格融合的混合精度神经网络加速器区块(tile)的示例实施例的框图;
图2A描绘了根据本文公开的主题的可在n乘法单元101中使用以执行基于网格的乘法运算的示例8位×8位乘法器单元;
图2B描绘了根据本文公开的主题的8位值A和W的网格乘法运算;
图3A描绘了根据本文公开的主题的为两个四元素向量A和W生成乘积值和点积值的网格乘法,其中每个元素具有8位;
图3B描绘了根据本文公开的主题的可以用于为向量A和W生成图3A的网格乘法中描绘的乘积值的示例8位×8位乘法器单元;
图4示出了根据本文公开的主题的加法器树单元的示例实施例;
图5A描绘了根据本文公开的主题的为两个四元素向量A和W生成点积的网格乘法,其中向量A具有8位元素,并且向量W具有4位元素;
图5B描绘了根据本文公开的主题的为两个四元素向量A和W生成点积的图3A的网格乘法,其中每个向量具有8位元素;
图5C示出了根据本文公开的主题,对于(8×4)输入精度和(4×8)输入精度,点积求和如何改变;
图6描绘了根据本文公开的主题,对于4×8的输入精度,偶数索引和奇数索引求和可以如何被组合以形成8×8输入精度;
图7描绘了根据本文公开的主题的对于d≤4的累加单元2(偶数)的示例实施例的框图;
图8描绘了根据本文公开的主题的融合单元的示例实施例的框图;并且
图9描绘了包括神经处理单元的电子设备,其中该神经处理单元包括根据本文公开的主题的神经网络加速器。
具体实施方式
在以下详细描述中,阐述了许多具体细节,以便提供对本公开的透彻理解。然而,本领域技术人员将理解,所公开的方面可以在没有这些具体细节的情况下实践。在其他情况下,没有详细描述公知的方法、过程、组件和电路,以免模糊本文公开的主题。
在整个说明书中,对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可以被包括在本文公开的至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”或“根据一个实施例”(或具有类似含义的其他短语)在本说明书各处的出现不一定都指同一实施例。此外,在一个或多个实施例中,特定的特征、结构或特性可以以任何合适的方式组合。在这点上,如本文所使用的,词语“示例性”意味着“用作示例、实例或说明”。本文描述为“示例性”的任何实施例都不应被解释为比其他实施例必然更优选或更有利。此外,在一个或多个实施例中,特定的特征、结构或特性可以以任何合适的方式组合。此外,根据本文讨论的上下文,单数术语可以包括对应的复数形式,而复数术语可以包括对应的单数形式。类似地,带连字符的术语(例如,“二维的(two-dimensional)”、“预定的(pre-determined)”、“像素特定的(pixel-specific)”等)有时可以与对应的不带连字符的版本(例如,“二维的(two dimensional)”、“预定的(predetermined)”、“像素特定的(pixel specific)”等)互换使用,并且大写条目(例如,“计数器时钟(Counter Clock)”、“行选择(Row Select)”、“像素输出(PIXOUT)”等)可以与对应的非大写版本(例如,“计数器时钟(counter clock)”、“行选择(row select)”、“像素输出(pixout)”等)互换使用。这种偶尔的可互换使用不应被视为彼此不一致。
此外,根据本文讨论的上下文,单数术语可以包括对应的复数形式,而复数术语可以包括对应的单数形式。还要注意的是,本文示出和讨论的各种附图(包括组件图)仅用于说明的目的,并未按比例绘制。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。此外,如果认为合适,在附图中重复使用附图标记来表示对应和/或类似的元件。
本文使用的术语仅用于描述一些示例实施例的目的,并不旨在限制所要求保护的主题。如本文所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文清楚地另有指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
应当理解,当元件或层被称为在另一元件或层上、“连接到”或“耦接到”另一元件或层时,它可以直接在另一元件或层上、连接到或耦接到另一元件或层,或者可以存在中间元件或层。相反,当元件被称为“直接在另一元件或层上”、“直接连接到”或“直接耦接到”另一元件或层时,不存在中间元件或层。相同的数字始终指代相同的元件。如本文所使用的,术语“和/或”包括一个或多个相关列出项目的任何和所有组合。
如本文所使用的,术语“第一”、“第二”等用作它们后面的名词的标签,并且不暗示任何类型的排序(例如,空间、时间、逻辑等),除非明确地如此定义。此外,可以跨两个或更多个附图使用相同的附图标记来指代具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这种用法仅仅是为了简化说明和便于讨论;这并不意味着这些组件或单元的构造或架构细节跨所有实施例都是相同的,或者这些共同引用的部分/模块是实施本文公开的一些示例实施例的唯一方式。
除非另有定义,否则本文使用的所有术语(包括技术和科学术语)具有与本主题所属领域的普通技术人员通常理解的含义相同的含义。还应当理解,术语,诸如在常用词典中定义的那些术语,应当被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且除非在本文中明确定义,否则不应当以理想化或过于正式的意义来解释。
如本文所使用的,术语“模块”指的是被配置为提供本文结合模块描述的功能的软件、固件和/或硬件的任何组合。例如,软件可以体现为软件包、代码和/或指令集或指令,并且在本文描述的任何实施方式中使用的术语“硬件”可以包括例如单独的或任意组合的封装件、硬连线电路系统、可编程电路系统、状态机电路系统和/或存储由可编程电路系统执行的指令的固件。这些模块可以共同地或单独地体现为形成更大系统(例如但不限于集成电路(IC)、片上系统(SoC)、封装件等)的一部分的电路系统。
本文公开的主题提供了点积单元的融合机制。乘法器的输出被分成半字节(4位)以执行逐半字节(nibble-wise)求和。求和结果被融合(组合)以获得最终的精度输出。本文还公开了优化的混合精度架构,其基于点积计算单元来加速深度学习应用的计算。混合精度特征可以通过低精度乘法器输出的逐半字节求和来获得,然后求和结果可以在加法器树之后融合。混合精度点积单元的时延(即,速度)可以通过首先执行输出逐半字节求和,然后融合求和结果以获得最终输出来改善。
本文公开的主题不依赖于与传统乘法一起使用的(移位-相加)比较,而是利用网格乘法技术来最小化神经网络加速器的关键路径并优化神经网络加速器的电路速度。此外,混合精度点积支持不同的区块尺寸,例如INT8XINT4、INT8XINT8。
图1描绘了根据本文公开的主题的具有网格融合的混合精度神经网络加速器区块100的示例实施例的框图。神经网络加速器100可以用于计算点积。神经网络加速器100可以包括如图1所示布置和连接的n乘法单元101、加法树单元102、交换单元103、累加单元104a和104b以及融合单元105。图1中描绘的不同功能块可以体现为模块和/或电路,这些模块和/或电路可以是被配置为提供本文结合特定功能块描述的功能的软件、固件和/或硬件的任意组合。
n乘法单元101可以包括n个8位×8位乘法器单元,该n个8位×8位乘法器单元被配置为基于网格乘法来生成乘积值。加法器树单元102可以被配置为减少由n乘法单元101生成的乘积值。乘法单元101和加法器树单元102一起基于网格乘法技术进行操作。交换单元103可以用于基于输入到乘法单元101的被乘数的输入精度来交换加法器树输出。累加单元104a和104b可以被配置为累加已经从加法器树102输出的减少的乘积值。融合单元电路105可以被配置为融合或组合较低精度的值以形成较高精度的值。
图2A描绘了可在n乘法单元101中使用以执行基于网格的乘法运算的示例8位×8位乘法器单元201。乘法器单元201可以包括四个4位×4位乘法器202。可以通过考虑可以输入到乘法器单元201的两个无符号8位输入值A和W来说明乘法器单元201的操作。A和W的8位各形成两个十六进制数字{Ma,La}和{Mw,Lw},其中每个十六进制数字为半字节。Ma是A的最高有效半字节(MSN),并且La是A的最低有效半字节(LSN)。类似地,Mw是W的MSN,并且Lw是W的LSN。
图2B描述了8位值A和W的网格乘法运算210。位于具有相同灰度的对角线上的乘法器202输出的乘积值被求和以完成网格乘法运算。被乘数和乘积在图2A和图2B中都有标注。A和W的网格乘法210的和(sum)与进位(carry)是:
(C3,S3)=M3+C2, (1)
(C2,S2)=L3+M1+M2+C1, (2)
(C1,S1)=L1+L2+M0,和 (3)
(C0,S0)=L0。 (4)
A和W的网格乘法210的最终结果R为R={C3,S3,S2,S1,S0}。
乘法单元101可以用于使用网格乘法方法生成混合精度点积。例如,考虑两个向量A和W,每个向量有四个向量元素,其中每个元素具有8位。向量A、向量W以及向量A和B的点积可以定义如下。
S=A⊙B=∑iai×wi, (7)
其中,i是向量A和W的元素的索引。
图3A描绘了为两个四元素向量A和W生成乘积值和点积值的网格乘法300,其中每个元素具有8位。沿对应对角线的乘积值被求和。为了生成点积值,对具有参考指示符L0的乘积值求和;对具有参考指示符L1、L2和M0的乘积值求和;对具有参考指示符L3、M1和M2的乘积值求和;并且对具有参考指示符M3的乘积值求和。
图3B描绘了可以用于为向量A和W生成在网格乘法300中描绘的乘积值的示例8位×8位乘法器单元310。乘法器单元310可以包括四个4位×4位乘法器311。乘法器单元310可以用于向量A和W的每一对对应索引的元素。图3A和图3B都标注了被乘数和乘积。
为了获得向量A和W的点积和,沿对应对角线的乘积值被求和如下:
其中,C0是和S0的进位位(carry bit),C1是和S1的进位位,C2是和S2的进位位,并且C3是和S3的进位位。
最终的点积和是S={C3,S3,S2,S1,S0}。
表1列出了图3A中的基于不同菱形的求和的最终和S中的位(bit)位置。在表1中,d=log2(n),其中n是点积中的元素的数量。对于图3A和图3B的示例,n=4。
表1
图4示出了根据本文公开的主题的加法器树单元102的示例实施例。乘法单元101和加法器树单元102可以如本文所述被配置为提供网格乘法运算。加法器树单元102可以包括加法器树4010-4017,该加法器树4010-4017减少由乘法器311生成的乘积值,以产生用于点积计算的网格乘法的最终和。加法器树的输入上的上标0至n-1表示来自n个乘法器单元310的对应输出。
乘法器单元101可以用于提供混合精度点积计算。考虑一种示例情况,其中四元素向量A的每个元素的输入精度是8位,四元素向量W的每个元素的输入精度是4位。在这种情况下,Mw实际上是LSN。针对偶数索引i的最终和输出为:
针对奇数索引i的最终点积输出为:
图5A描绘了为两个四元素向量A和W生成点积的网格乘法500,其中向量A具有8位元素,并且向量W具有4位元素。定义偶数索引元素和奇数索引元素的点积和的等式在图5A下面示出。为了与网格乘法500进行比较,图5B描绘了生成两个四元素向量A和W的点积的网格乘法300(图3A),其中每个向量具有8位元素。网格乘法的求和的改变随着两个输入向量的精度在8位×4位(图5A)和8位×8位(图5B)之间改变而改变。
图5C示出了对于(8×4)输入精度500和对于(4×8)输入精度500′,点积求和如何改变。求和通过L1和L2交换并且M1和M2交换来改变。输入交换单元103(图1)根据输入精度交换L1和L2以及交换M1和M2。
图6描绘了对于8×4的输入精度,偶数索引和奇数索引求和可以如何被组合以形成8×8的输入精度。当输入精度为4×8时,偶数和奇数索引求和几乎相同,除了L1和L2以及M1和M2可能会根据输入精度而进行交换。朝向图6的顶部,描绘了针对(8×4)输入精度的网格乘法500和针对(8×8)的网格乘法300。朝向图6的底部,指示了针对(8×4)和(8×8)两个精度的求和方程。为了将(4×8)和(8×4)的求和变成(8×8)的求和,可以使用两个加法器601和602。加法器601将(C1,S1)0和(C0,S0)1求和进行相加,以形成(C1,S1)求和。加法器602将(C3,S3)0和(C1,S1)1求和进行相加,以形成(C2,S2)求和。图6中描绘的功能连同一些附加的控制逻辑(未示出)可以是累加单元104a(和/或104b)(图1)的一部分,以提供混合精度能力。
图7描绘了根据本文公开的主题的对于d≤4的累加单元2(偶数)104b的示例实施例的框图。累加单元1(奇数)104a与累加单元2(偶数)104b相同,除了示出为从加法器树L0、L2、M0和M2接收的输出分别是从加法器树L1、L3、M1和M3接收的。
累加单元2(偶数)104b可以包括4位加法器701-707和4位寄存器文件(registerfile)708和709。寄存器文件710是4+d+c位寄存器文件。寄存器文件708-710形成累加单元2(偶数)104b的输出。加法器701接收来自L0加法器树的4位输出和来自寄存器文件708的4位输出。加法器701向寄存器文件708输出4位和,并向加法器704输出一个时间进位位。
加法器702接收从L0加法器树输出的d个空间进位位,其中d=log2(n)并且n是点积中元素的数量。加法器702还接收来自M0加法器树的4位输出,并向加法器703输出4位和,向加法器705输出进位位。
加法器703接收来自L2加法器树的4位输出和来自加法器702的4位输出,并向加法器704输出4位和。加法器704接收来自寄存器文件709的4位输入,并向寄存器文件709输出4位和,向加法器707输出一个进位。
加法器705接收来自L2加法器树的d位输出和来自加法器树M0的4位。加法器705向加法器706输出d+1位。加法器706接收从加法器树M2输出的4+d位,并向加法器707输出4位和。加法器707接收来自寄存器文件710的4+d+c位输出,其中c是最大支持的时间迭代,例如,c=log2(1024x7x7)。加法器707向寄存器文件710输出(4+d+c)位和。
图8描绘了根据本文公开的主题的融合单元105的示例实施例的框图。融合单元105可以包括8×4结果1寄存器801、8×4结果2寄存器802、加法器803、移位器804和8×8结果寄存器805。
寄存器801接收来自累加器单元1(奇数)104a的输出,并且寄存器802接收来自累加器单元2(偶数)104b的输出。为了形成8×8的结果,来自累加器单元1(奇数)104a的输出被输入到加法器803。来自累加器单元2(偶数)104b的输出被移位器804左移两(2)位,然后输入到加法器803。加法器803的输出被输入到寄存器805。
图9描绘了包括神经处理单元的电子设备900,其中该神经处理单元包括根据本文公开的主题的神经网络加速器。电子设备900可以包括控制器(或CPU)910、输入/输出设备920(诸如但不限于小键盘、键盘、显示器、触摸屏显示器、相机和/或图像传感器)、存储器930、接口940、GPU 950、成像处理单元960和神经处理单元970,它们通过总线980彼此耦接。控制器910可以包括例如至少一个微处理器、至少一个数字信号处理器、至少一个微控制器等。存储器930可以被配置为存储将由控制器910使用的命令代码或用户数据。电子设备900和电子设备900的各种系统组件可以由一个或多个模块形成。
在一个实施例中,神经处理单元970可以被配置为包括根据本文公开的主题的神经网络加速器。接口940可以被配置为包括被配置为使用RF信号向无线通信网络发送数据或者从无线通信网络接收数据的无线接口。无线接口940可以包括例如天线。电子系统900还可以用于通信系统的通信接口协议,例如但不限于码分多址(CDMA)、全球移动通信系统(GSM)、北美数字通信(NADC)、扩展时分多址(E-TDMA)、宽带CDMA(WCDMA)、CDMA2000、Wi-Fi、市政Wi-Fi(Muni Wi-Fi)、蓝牙、数字增强型无绳电信(DECT)、无线通用串行总线(无线USB)、具有无缝切换的快速低时延接入正交频分复用(FlashOFDM)、IEEE 802.20、通用分组无线电业务(GPRS)、iBurst、无线宽带(WiBro)、WiMAX、WiMAX-Advanced、通用移动电信服务-时分双工(UMTS-TDD)、高速分组接入(HSPA)、演进数据优化(EVDO)、长期演进-高级(LTE-Advanced)、多通道多点分发服务(MMDS)、第五代无线(5G)、第六代无线(6G)等等。
本说明书中描述的主题和操作的实施例可以在数字电子电路系统中实施,或者以计算机软件、固件或硬件实施,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即计算机程序指令的一个或多个模块,其被编码在计算机存储介质上,用于由数据处理装置执行或控制数据处理装置的操作。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息,用于传输到合适的接收器装置,以由数据处理装置执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备或其组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的物理组件或介质(例如,多个CD、盘或其他存储设备)中。此外,本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
虽然本说明书可以包含许多具体的实施方式细节,但是这些实施方式细节不应被解释为对任何要求保护的主题的范围的限制,而是应当被解释为对特定实施例所特有的特征的描述。本说明书中在分开的实施例的上下文中描述的特定特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开地或以任何合适的子组合来实施。此外,尽管特征可能在上面被描述为在特定组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中被删除,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中以特定的顺序描述了操作,但是这不应被理解为要求这些操作以所示的特定顺序或连续顺序执行,或者要求所有示出的操作都被执行,以获得期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
因此,本文已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中阐述的动作可以以不同的顺序来执行,并且仍然实现期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在特定实施方式中,多任务和并行处理可能是有利的。
如本领域技术人员将认识到的,本文描述的创新概念可以在广泛的应用范围内修改和变化。因此,所要求保护的主题的范围不应限于以上讨论的任何具体示例性教导,而是由所附权利要求来定义。
Claims (20)
1.一种神经网络加速器,包括:
乘法单元和加法器树单元,被配置为执行网格乘法操作;和
累加器单元,耦接到所述加法器树的输出,以从由所述乘法单元和所述加法器树单元执行的网格乘法运算形成点积值。
2.根据权利要求1所述的神经网络加速器,其中,所述乘法单元包括n个乘法器单元,所述n个乘法器单元执行基于网格乘法的运算并输出乘积值。
3.根据权利要求2所述的神经网络加速器,其中,每个乘法器单元包括N×N乘法器单元,并且每个乘法器单元包括四个N/2×N/2乘法器。
4.根据权利要求3所述的神经网络加速器,其中,n和N包括8,并且每个乘法器单元接收第一被乘数和第二被乘数,所述第一被乘数包括最高有效半字节和最低有效半字节,并且所述第二被乘数包括最高有效半字节和最低有效半字节,并且
其中,每个乘法器单元包括接收所述第一被乘数的最低有效半字节和所述第二被乘数的最低有效半字节的第一乘法器,接收所述第一被乘数的最低有效半字节和所述第二被乘数的最高有效半字节的第二乘法器,接收所述第一被乘数的最高有效半字节和所述第二被乘数的最低有效半字节的第三乘法器,以及接收所述第一被乘数的最高有效半字节和所述第二被乘数的最高有效半字节的第四乘法器。
5.根据权利要求4所述的神经网络加速器,其中,所述第一被乘数的最高有效半字节包括0,并且所述第二被乘数的最高有效半字节大于0。
6.根据权利要求4所述的神经网络加速器,其中,所述第一被乘数的最高有效半字节大于0,并且所述第二被乘数的最高有效半字节包括0。
7.根据权利要求4所述的神经网络加速器,其中,每个乘法器单元的第一乘法器输出第一乘积值的最低有效半字节L0和最高有效半字节M0,每个乘法器单元的第二乘法器输出第二乘积值的最低有效半字节L1和最高有效半字节M1,每个乘法器单元的第三乘法器输出第三乘积值的最低有效半字节L2和最高有效半字节M2,并且每个乘法器单元的第四乘法器输出第四乘积值的最低有效半字节L3和最高有效半字节M3。
8.根据权利要求7所述的神经网络加速器,其中,所述加法器树通过将由所述n个乘法器单元输出的第一乘积值的所有最低有效半字节相加来形成第一和S0,通过将由所述n个乘法器单元输出的第二乘积值的所有最低有效半字节、第三乘积值的所有最低有效半字节和第一乘积值的所有最高有效半字节相加来形成第二和S1,通过将由所述n个乘法器单元输出的第四乘积值的所有最低有效半字节、第二乘积值的所有最高有效半字节和第三乘积值的所有最高有效半字节相加来形成第三和S2,以及通过将由所述n个乘法器单元输出的所有最高有效半字节相加来形成第四和S3。
9.根据权利要求8所述的神经网络加速器,其中,所述第二和S1还包括来自所述第一和S0的进位值,所述第三和S2还包括来自所述第二和S1的进位值,并且所述第四和S3还包括来自所述第三和S2的进位值。
10.一种神经网络加速器,包括:
乘法单元,包括执行基于网格乘法的运算并输出乘积值的n个乘法器单元;
加法器树,其耦接到所述乘法器单元,并且被配置为对从所述乘法器单元输出的乘积值求和,并且输出求和的乘积值;和
累加器单元,被配置为通过累加所述求和的乘积值来形成点积值。
11.根据权利要求10所述的神经网络加速器,其中,每个乘法器单元包括N×N乘法器单元,并且每个乘法器单元包括四个N/2×N/2乘法器。
12.根据权利要求11所述的神经网络加速器,其中,n和N包括8,并且每个乘法器单元接收第一被乘数和第二被乘数,所述第一被乘数包括最高有效半字节和最低有效半字节,并且所述第二被乘数包括最高有效半字节和最低有效半字节,并且
其中,每个乘法器单元包括接收所述第一被乘数的最低有效半字节和所述第二被乘数的最低有效半字节的第一乘法器,接收所述第一被乘数的最低有效半字节和所述第二被乘数的最高有效半字节的第二乘法器,接收所述第一被乘数的最高有效半字节和所述第二被乘数的最低有效半字节的第三乘法器,以及接收所述第一被乘数的最高有效半字节和所述第二被乘数的最高有效半字节的第四乘法器。
13.根据权利要求12所述的神经网络加速器,其中,所述第一被乘数的最高有效半字节包括0,并且所述第二被乘数的最高有效半字节大于0。
14.根据权利要求12所述的神经网络加速器,其中,所述第一被乘数的最高有效半字节大于0,并且所述第二被乘数的最高有效半字节包括0。
15.根据权利要求12所述的神经网络加速器,其中,每个乘法器单元的第一乘法器输出第一乘积值的最低有效半字节L0和最高有效半字节M0,每个乘法器单元的第二乘法器输出第二乘积值的最低有效半字节L1和最高有效半字节M1,每个乘法器单元的第三乘法器输出第三乘积值的最低有效半字节L2和最高有效半字节M2,并且每个乘法器单元的第四乘法器输出第四乘积值的最低有效半字节L3和最高有效半字节M3。
16.根据权利要求15所述的神经网络加速器,其中,所述加法器树通过将由所述n个乘法器单元输出的第一乘积值的所有最低有效半字节相加来形成第一和S0,通过将由所述n个乘法器单元输出的第二乘积值的所有最低有效半字节、第三乘积值的所有最低有效半字节和第一乘积值的所有最高有效半字节相加来形成第二和S1,通过将由所述n个乘法器单元输出的第四乘积值的所有最低有效半字节、第二乘积值的所有最高有效半字节和第三乘积值的所有最高有效半字节相加来形成第三和S2,以及通过将由所述n个乘法器单元输出的所有最高有效半字节相加来形成第四和S3。
17.根据权利要求16所述的神经网络加速器,其中,所述第二和S1还包括来自所述第一和S0的进位值,所述第三和S2还包括来自所述第二和S1的进位值,并且所述第四和S3还包括来自所述第三和S2的进位值。
18.一种混合精度神经网络加速器,包括:
乘法单元,包括执行基于网格乘法的运算并输出乘积值的n个乘法器单元,每个乘法器单元接收第一被乘数和第二被乘数,所述第一被乘数包括最高有效半字节和最低有效半字节,并且所述第二被乘数包括最高有效半字节和最低有效半字节,每个乘法器单元包括接收所述第一被乘数的最低有效半字节和所述第二被乘数的最低有效半字节的第一乘法器,接收所述第一被乘数的最低有效半字节和所述第二被乘数的最高有效半字节的第二乘法器,接收所述第一被乘数的最高有效半字节和所述第二被乘数的最低有效半字节的第三乘法器,以及接收所述第一被乘数的最高有效半字节和所述第二被乘数的最高有效半字节的第四乘法器;
加法器树,耦接到所述乘法器单元,并且被配置为对从所述乘法器单元输出的乘积值求和,并且输出求和的乘积值;和
累加器单元,被配置为通过累加所述求和的乘积值来形成点积值。
19.根据权利要求18所述的混合精度神经网络加速器,其中,每个乘法器单元的第一乘法器输出第一乘积值的最低有效半字节L0和最高有效半字节M0,每个乘法器单元的第二乘法器输出第二乘积值的最低有效半字节L1和最高有效半字节M1,每个乘法器单元的第三乘法器输出第三乘积值的最低有效半字节L2和最高有效半字节M2,并且每个乘法器单元的第四乘法器输出第四乘积值的最低有效半字节L3和最高有效半字节M3,
其中,所述加法器树通过将由所述n个乘法器单元输出的第一乘积值的所有最低有效半字节相加来形成第一和S0,通过将由所述n个乘法器单元输出的第二乘积值的所有最低有效半字节、第三乘积值的所有最低有效半字节和第一乘积值的所有最高有效半字节相加来形成第二和S1,通过将由所述n个乘法器单元输出的第四乘积值的所有最低有效半字节、第二乘积值的所有最高有效半字节和第三乘积值的所有最高有效半字节相加来形成第三和S2,以及通过将由所述n个乘法器单元输出的所有最高有效半字节相加来形成第四和S3,并且
其中,所述第二和S1还包括来自所述第一和S0的进位值,所述第三和S2还包括来自所述第二和S1的进位值,并且所述第四和S3还包括来自所述第三和S2的进位值。
20.根据权利要求19所述的混合精度神经网络加速器,其中,n和N包括8。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163212104P | 2021-06-17 | 2021-06-17 | |
US63/212,104 | 2021-06-17 | ||
US17/463,544 US20220405559A1 (en) | 2021-06-17 | 2021-08-31 | Mixed-precision neural network accelerator tile with lattice fusion |
US17/463,544 | 2021-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115496192A true CN115496192A (zh) | 2022-12-20 |
Family
ID=81307075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210653239.3A Pending CN115496192A (zh) | 2021-06-17 | 2022-06-09 | 具有网格融合的混合精度神经网络加速器区块 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220405559A1 (zh) |
EP (1) | EP4105838A1 (zh) |
KR (1) | KR20220168975A (zh) |
CN (1) | CN115496192A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116774966B (zh) * | 2023-08-22 | 2023-12-08 | 深圳比特微电子科技有限公司 | 乘法器、乘累加电路、运算电路、处理器和计算装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200034699A1 (en) * | 2018-07-24 | 2020-01-30 | SK Hynix Inc. | Accelerating appratus of neural network and operating method thereof |
US11880760B2 (en) * | 2019-05-01 | 2024-01-23 | Samsung Electronics Co., Ltd. | Mixed-precision NPU tile with depth-wise convolution |
-
2021
- 2021-08-31 US US17/463,544 patent/US20220405559A1/en active Pending
-
2022
- 2022-04-08 EP EP22167293.4A patent/EP4105838A1/en active Pending
- 2022-06-03 KR KR1020220068211A patent/KR20220168975A/ko unknown
- 2022-06-09 CN CN202210653239.3A patent/CN115496192A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4105838A1 (en) | 2022-12-21 |
KR20220168975A (ko) | 2022-12-26 |
US20220405559A1 (en) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20170135752A (ko) | 효율적인 스파스 병렬 위노그래드 기반 컨볼루션 체계 | |
JP3940542B2 (ja) | データプロセッサ及びデータ処理システム | |
EP3893105B1 (en) | Supporting floating point 16 (fp16) in dot product architecture | |
KR102581403B1 (ko) | 공유 하드웨어 로직 유닛 및 그것의 다이 면적을 줄이는 방법 | |
CN115496192A (zh) | 具有网格融合的混合精度神经网络加速器区块 | |
CN113535119A (zh) | 近似地计算数学函数的方法和数字处理装置 | |
US20140067893A1 (en) | Squaring Circuit | |
US20160041947A1 (en) | Implementing a square root operation in a computer system | |
US20230153586A1 (en) | Accelerate neural networks with compression at different levels | |
CN115511065A (zh) | 神经处理单元核心及配置神经处理单元核心的方法 | |
RU2477513C1 (ru) | Ячейка однородной вычислительной среды, однородная вычислительная среда и устройство для конвейерных арифметических вычислений по заданному модулю | |
EP4343631B1 (en) | Weight-sparse npu with fine-grained structured sparsity | |
EP4160487A1 (en) | Neural network accelerator with a configurable pipeline | |
US20240160483A1 (en) | Dnns acceleration with block-wise n:m structured weight sparsity | |
EP4361794A1 (en) | Processing element and method of operating the same | |
CN116774966B (zh) | 乘法器、乘累加电路、运算电路、处理器和计算装置 | |
CN117744723A (zh) | 神经处理单元 | |
US20210294873A1 (en) | LOW OVERHEAD IMPLEMENTATION OF WINOGRAD FOR CNN WITH 3x3, 1x3 AND 3x1 FILTERS ON WEIGHT STATION DOT-PRODUCT BASED CNN ACCELERATORS | |
US20240095519A1 (en) | Extreme sparse deep learning edge inference accelerator | |
CN115469828A (zh) | 可重配置神经处理单元的sram共享 | |
CN118052256A (zh) | 利用分块n:m结构化权重稀疏性的dnn加速 | |
Xu et al. | Low power design for FIR filter | |
EP4343632A1 (en) | Hybrid-sparse npu with fine-grained structured sparsity | |
KR100907547B1 (ko) | 리드-솔로몬 복호기의 에스-디씨엠이 알고리즘 연산방법 및그 연산회로 | |
CN117077734A (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 |