CN113496270A - 使用具有负载平衡的空间融合的混合精度神经处理单元 - Google Patents
使用具有负载平衡的空间融合的混合精度神经处理单元 Download PDFInfo
- Publication number
- CN113496270A CN113496270A CN202110280201.1A CN202110280201A CN113496270A CN 113496270 A CN113496270 A CN 113496270A CN 202110280201 A CN202110280201 A CN 202110280201A CN 113496270 A CN113496270 A CN 113496270A
- Authority
- CN
- China
- Prior art keywords
- data
- load balancing
- weight
- subsection
- circuit
- 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
Images
Classifications
-
- 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
- G06F9/505—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 considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/04—Architecture, e.g. interconnection topology
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
公开一种使用具有负载平衡的空间融合的混合精度神经处理单元。一种设备可包括机器学习系统。所述机器学习系统可包括:精度确定电路,被配置为确定数据的精度级别,并且将所述数据划分成数据子部分。所述机器学习系统可在每个子部分的计算期间利用稀疏性。所述机器学习系统可包括:负载平衡电路,被配置为选择负载平衡技术,其中,负载平衡技术包括用至少第一数据/权重子部分组合和第二数据/权重子部分组合交替地加载计算电路。负载平衡电路可被配置为:至少部分地基于负载平衡技术用选择的数据子部分和选择的权重子部分加载计算电路。所述机器学习系统可包括:计算电路,被配置为至少部分地基于选择的数据子部分和权重子部分计算部分计算结果。
Description
本申请要求于2020年4月1日提交的题为“使用具有负载平衡的空间融合的混合精度NPU”的第63/003,883号临时专利申请的优先权。该较早提交的申请的主题通过引用合并在本申请中。
技术领域
本说明书涉及机器学习,并且更具体地涉及使用具有负载平衡的空间融合的混合精度神经处理单元(NPU)。
背景技术
人工神经网络(ANN)或连接系统通常是由构成动物大脑的生物神经网络模糊地启发的计算系统。这样的系统通过考虑示例来“学习”任务(即,逐渐提高关于任务的性能),而通常无需针对任务的编程。例如,在图像识别中,它们可通过分析已经被手动标记为“猫”或“没有猫”的示例图像并使用结果来学习识别包含猫的图像,以在其它图像中识别猫。它们在没有任何关于猫的先验知识(例如,它们具有毛皮、尾巴、胡须和似猫脸)的情况下这样做。相反,它们从它们处理的学习材料推演出它们自己的相关特性集。
神经网络通常基于被称为人工神经元的连接单元或节点的集合。人工神经元之间的每个连接(突触的简化版本)可将信号从一个神经元发送到另一神经元。接收信号的人工神经元可对信号进行处理,然后向与该人工神经元连接的人工神经元发送信号。在常见的神经网络实施方式中,人工神经元之间的连接处的信号是实数,并且每个人工神经元的输出通过其输入的和的非线性函数来计算。人工神经元和连接通常具有随着学习进行而调整的权重。权重使连接处的信号强度增大或减小。人工神经元可具有阈值,使得仅当聚合信号超过该阈值时才发送信号。通常,人工神经元被组织成层。不同的层可对其输入执行不同种类的变换。信号可能在多次遍历层之后从第一(输入)层行进到最后(输出)层。人工智能加速器或神经处理单元(NPU)通常是一类被设计为对人工智能应用(尤其是人工神经网络、机器视觉和机器学习)进行加速的专用硬件加速器或计算机系统。
发明内容
根据一个总体方面,一种设备可包括机器学习系统。所述机器学习系统可包括:精度确定电路,被配置为确定数据的精度级别,并且将所述数据划分成数据子部分。所述机器学习系统可包括:负载平衡电路,被配置为选择负载平衡技术,其中,负载平衡技术包括用至少第一数据/权重子部分组合和第二数据/权重子部分组合交替地加载计算电路。负载平衡电路可被配置为:至少部分地基于负载平衡技术用选择的数据子部分和选择的权重子部分加载计算电路。所述机器学习系统可包括:计算电路,被配置为至少部分地基于选择的数据子部分和权重子部分计算部分计算结果。
根据另一总体方面,一种设备可包括机器学习系统。所述机器学习系统可包括:融合电路,被配置为将第一部分计算结果与第二部分计算结果组合以形成组合计算结果。所述机器学习系统可包括:第一计算电路,被配置为计算第一部分计算结果。所述机器学习系统可包括:第二计算电路,被配置为计算第二部分计算结果。所述机器学习系统可包括:负载平衡电路,被配置为选择负载平衡技术,其中,负载平衡技术包括在预设模式下用慢速数据/权重子部分组合或较快数据/权重子部分组合加载第一计算电路,其中,术语“快”和“慢”指与数据/权重子部分组合相关联的计算。
根据另一总体方面,一种设备可被配置为提供神经网络。所述设备可包括:融合电路,被配置为将第一部分计算结果与第二部分计算结果组合以形成组合计算结果。所述设备可包括:第一计算电路,被配置为计算第一部分计算结果,其中,第一部分计算结果与数据的第一单元相关联且部分地基于所述第一单元的第一数据子部分。所述设备可包括:第二计算电路,被配置为至少部分地与第一部分计算结果的计算同时地计算与数据的第二单元的第二数据子部分相关联的第二部分计算结果。所述设备可包括:负载平衡电路,被配置为选择负载平衡技术,其中,负载平衡技术包括使数据/权重子部分组合在第一计算电路与第二计算电路之间轮转,以减少所述第一单元的部分计算结果与所述第二单元的部分计算结果之间的不同步。
在附图和以下描述中阐述了一个或更多个实施方式的细节。根据说明书和附图以及权利要求书,其它特征将是显而易见的。
如权利要求中更完整地阐述的,基本上如结合至少一个附图所示出和/或描述的,本公开涉及一种用于机器学习的系统和/或方法,并且更具体地涉及一种使用具有负载平衡的空间融合的混合精度神经处理单元(NPU)。
附图说明
图1是根据公开的主题的系统的示例实施例的框图。
图2是根据公开的主题的系统的示例实施例的框图。
图3是根据公开的主题的设备的示例实施例的框图。
图4是根据公开的主题的计算流程的示例实施例的框图。
图5是可包括根据公开的主题的原理形成的装置的信息处理系统的示意性框图。
各个附图中相同的参考符号表示相同的元件。
具体实施方式
在下文中将参照附图更全面地描述各种示例实施例,在附图中,示出了一些示例实施例。然而,本公开的主题可以以许多不同的形式被呈现,并且不应被解释为限于本文阐述的示例实施例。相反,提供这些示例实施例使得本公开将是彻底且完整的,并且将向本领域技术人员充分传达本公开的主题的范围。在附图中,为了清楚起见,可能夸大层和区域的尺寸和相对尺寸。
将理解,当元件或层被称为在另一元件或层“上”、“连接到”或“耦接到”另一元件或层时,它可直接在另一元件或层上、连接到或耦接到另一元件或层,或者可存在中间元件或层。相反,当元件或层被称为“直接在另一元件或层上”、“直接连接到”或“直接耦合到”另一元件或层时,不存在中间元件或层。相同的标号始终指相同的元件。如本文使用的,术语“和/或”包括相关联的列出项中的一个或更多个的任意和所有组合。
将理解,尽管本文可使用术语第一、第二、第三等来描述各种元件、组件、区域、层和/或部分,但这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分区分开。因此,在不脱离本公开的主题的教导的情况下,下面讨论的第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分。
为了便于描述,本文可使用诸如“下方”、“下面”、“下部”、“上方”、“上面”等的空间相对术语来描述如图中所示的一个元件或特征与另一元件(或多个元件)或特征(或多个特征)的关系。将理解,除了图中描绘的朝向之外,空间相对术语还旨在涵盖装置在使用或操作中的不同朝向。例如,如果图中的装置被翻转,则被描述为在其它元件或特征“下面”或“下方”的元件将被定向为在其它元件或特征“上方”。因此,示例性术语“下面”可涵盖上方和下面两种朝向。装置可以是其他方向的(旋转90度或处于其它朝向),并且本文使用的空间相对描述符被相应地解释。
此外,为了便于描述,本文可使用诸如“高”、“低”、“上拉”、“下拉”、“1”、“0”等的电气术语来描述相对于其它电压电平或相对于图中所示的另一元件(或多个元件)或特征(或多个特征)的电压电平或电流。将理解,除了图中描绘的电压或电流之外,电气相对术语还旨在涵盖装置在使用或操作中的不同参考电压。例如,如果图中的装置或信号被反向或使用其它参考电压、电流或电荷,则与新的参考电压或电流相比,被描述为“高”或“上拉”的元件将是“低”或被“下拉”。因此,示例性术语“高”可涵盖相对低或高的电压或电流两者。装置可另外基于不同的电气参照系,并且本文使用的电气相对描述符被相应地解释。
本文使用的术语仅用于描述特定示例实施例的目的,并不旨在限制本公开的主题。如本文使用的,除非上下文另有明确说明,否则单数形式旨在也包括复数形式。将进一步理解,术语“包括”当在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或更多个其它特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。
除非另有定义,否则本文使用的所有术语(包括技术和科学术语)具有与本公开的主题所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,诸如在常用词典中定义的那些术语的术语应被解释为具有与其在相关领域的上下文中的含义一致的含义,并且将不以理想化或过于正式的意义被解释,除非在本文中被明确地如此定义。
在下文中,将参照附图详细解释示例实施例。
图1是根据公开的主题的系统100的示例实施例的框图。在各种实施例中,系统100可包括神经处理单元(NPU),或者包括另一形式的计算装置,诸如,例如膝上型计算机、台式计算机、工作站、个人数字助理、智能电话、平板计算机和其它适当的计算机或其虚拟机或虚拟计算装置。在各种实施例中,系统100可包括卷积神经网络(CNN)或另一机器学习技术。理解的是,以上仅仅是公开的主题不限于的几个说明性示例。
在各种实施例中,不同的量化方案可作为深度学习技术的一部分被用于量化权重和/或激活函数(activation)。这些量化方案可利用或包括不同的量化精度,诸如例如8位或4位。在各种实施例中,混合精度NPU可支持执行具有不同精度级别(例如,每个权重的不同位数)的不同深度学习技术。
在这样的实施例中,可使用低精度乘法单元(例如,计算电路108)来构建混合精度系统。可在混合精度系统中采用时间或空间融合来支持更高精度计算。在涉及空间融合的各种实施例中,乘法单元(例如,计算电路108)可被划分成多个子部分或电路组,其被称为“分块(tile)”。
在一些实施例中,高精度或高位数据可被划分成低精度或低位分量(例如,8位字节分成4位半字节),并且根据分量位置(例如,最高有效半字节(MSN)、低或最低有效半字节(LSN))被分配给每个分块。在此上下文中,最高有效子部分将是高精度数据的较高位或较上位,并且低或最低有效子部分将是高精度数据的最低位或较低位。在各种实施例中,划分可在中途点处,但理解的是,以上仅仅是公开的主题不限于的一个说明性示例。每个分块可使用低精度乘法器或权重来执行低精度子部分的部分计算。然后,可通过融合和对准所有集合或分块的部分计算来计算最终的高精度结果。
在各种实施例中,NPU或系统可利用数据稀疏性以便获得性能改进。在该上下文中,“稀疏”意味着NPU可跳过无效计算,诸如乘以零。在这样的实施例中,接收具有高稀疏性(即,许多零)的输入数据的分块可跳过其许多计算,并且因此将比接收具有较少零的输入的分块更快地完成。另一方面,在该上下文中,“密集”与稀疏相反,其意味着NPU不跳过无效计算(例如,与零相乘),并且即使输入为零,分块也将执行乘法。在各种实施例中,数据稀疏性的百分比可在低/高精度子部分上不同。例如,由于MSN可能具有更稀疏的数据,因此MSN子部分可能比LSN子部分花费更少的时间来计算。这是除了由数据本身引起的稀疏性之外的。
在一些实施例中,这意味着处理具有不同计算时间(稀疏比)的数据子部分的计算分块的集合可能暂停,以便等待其它集合完成其计算。在这样的实施例中,该暂停可允许来自所有分块(组中的所有分块)的结果可被正确地融合到高精度数据中。在各种实施例中,系统100可采用不同的负载平衡技术,以便使由于数据分量的稀疏分布的差异而导致的暂停时间最小化或减少由于数据分量的稀疏分布的差异而导致的暂停时间。
在一个实施例中,系统100可包括或可访问数据集或特征图102。在各种实施例中,特征图102可包括将由系统100处理的数据。在一些实施例中,特征图102可包括已经通过先前卷积或其它操作或层(未示出)筛选或处理的原始数据。在各种实施例中,数据或特征图102可被划分成单元103。在各种实施例中,每个单元可包括像素或像素组。例如,在一个实施例中,特征图102可包括一系列视频帧。在各种实施例中,单元103可被标记或被分类成组(例如,偶数和奇数)以辅助处理。
在各种实施例中,系统100可包括精度确定电路或单元104。在所示实施例中,精度确定电路或单元104可被配置为确定数据(例如,单元103)的精度级别。例如,精度级别可以是多个级别中的一个级别,诸如高或低。在特定实施例中,高精度级别可包括每条或每单元数据8位,并且低精度级别可包括每条或每单元数据4位。理解的是,以上仅仅是公开的主题不限于的几个说明性示例。
在一些实施例中,精度确定电路或单元104可被配置为将数据(例如,单元103)划分成或分组成较小的子部分105。在各种实施例中,单元数据可被划分成较小精度子部分。在这样的实施例中,每个单元子部分可具有相同的单元形状,例如,如下所述,包括n个数字的向量的单元可被划分成子部分,其中,每个子部分包括n个数字的向量但具有较小的精度。在一个这样的实施例中,精度确定电路104可将8位字节的数据划分成两个4位半字节的数据,MSN和LSN。同样地,精度确定电路104或类似的精度电路(未示出)可获取权重数据或值,并将它们划分成较小的精度权重子部分190。理解的是,以上仅仅是公开的主题不限于的一个说明性示例。
在各种实施例中,系统100可包括负载平衡电路106。在这样的实施例中,负载平衡电路106可被配置为选择在将数据分配给计算电路108时采用的负载平衡技术116。在各种实施例中,负载平衡技术116可被配置为减少由于每个数据子部分或半字节105处理可能花费的时间量的差异而导致的计算电路108执行很少处理或不执行处理的暂停或时间段。下面更详细地讨论这些负载平衡技术116。
在所示实施例中,负载平衡电路106可被配置为将特定数据子部分105和权重子部分190加载或分配(并且另一电路可加载)到各种计算电路108或分块。在这样的实施例中,可至少部分地基于选择的负载平衡技术116来创建和分配这些数据/权重组合192。
在所示实施例中,系统100可包括一个或更多个计算电路108或分块。在这样的实施例中,分块108可被配置为根据分配的数据/权重组合192计算部分和194。
在所示实施例中,系统100可包括融合电路110。如上所述,融合电路110可被配置为将多个部分和194组合以形成组合和、融合和或完整和196。
在各种实施例中,可针对下一个单元103重复上述处理,直到数据集102已经被处理为止。在这样的实施例中,一系列完整和196可产生新的数据集(未示出)。然后,该新数据集可由系统100的另一层进一步处理,或者可以是系统100的最终结果。
图2是根据公开的主题的系统200的示例实施例的框图。在所示实施例中,如以上参照图1所述,系统200可采用计算电路108和融合电路110。理解的是,系统200仅仅是公开的主题不限于的一个说明性示例。
在所示实施例中,系统200可包括被分组在一起的四个分块或计算电路108。在各种实施例中,整个机器学习系统可包括相同配置或不同配置的更多组分块108。在一些实施例中,计算电路108可包括被配置为执行小精度计算或低精度计算的四个4位乘法器电路。
在所示实施例中,每个分块108可被分配或加载有特定的数据/权重组合192。在这样的实施例中,可为整个系统200分配组合192,使得在给定时间处理数据的整个单元。
例如,在一个实施例中,分块108-A可加载有包括数据LSN和权重LSN的数据/权重组合192-A或组合LL(最低-最低)。分块108-B可加载有包括权重LSN和数据MSN的数据/权重组合192-B或组合LM(最低-最高)。分块108-C可加载有包括权重MSN和数据LSN的数据/权重组合192-C或组合ML(最高-最低)。分块108-D可加载有包括数据MSN和权重MSN的数据/权重组合192-D或组合MM(最高-最高)。在这样的实施例中,四个数据/权重组合192可被称为LL、LM、ML和MM。
如上所述,分块108可产生四个部分和194-A、194-B、194-C及194-D。系统200可包括被配置为将这些部分和194组合或融合成针对该单元的完整和196的融合电路110。
如上所述,在一个实施例中,系统200流水线可要求:针对给定单元,所有数据/权重组合192在下一单元可开始处理之前被处理。在这样的实施例中,这可涉及在“慢”分块108完成计算时使一个或更多个分块108暂停。
在所示实施例中,系统200可被配置为适应数据集的稀疏性,并且允许来自较新单元(例如,图像的下一像素)的数据/权重组合在整个先前单元被计算之前开始处理。
图3是根据公开的主题的设备300的示例实施例的框图。在各种实施例中,设备300可包括诸如图1或2中所示的融合电路。在所示实施例中,示出了与四个计算电路相关联的融合电路110,但包括动态重新布置的其它级别的关联被考虑。理解的是,以上仅仅是公开的主题不限于的一个说明性示例。
在一个实施例中,如上所述,设备300可从计算单元接收多个(例如,四个)部分和194。在一些实施例中,部分计算结果194-D可包括MM计算结果(例如,和),并且可由下面的等式1表示。部分计算结果194-C可包括ML计算结果,并且可由下面的等式2表示。部分计算结果194-B可包括LM计算结果,并且可由下面的等式3表示。部分计算结果194-A可包括LL计算结果,并且可由下面的等式4表示。
等式1:部分计算结果MM=∑(WMSN×AMSN)
等式2:部分计算结果ML=∑(WMSN×ALSN)
等式3:部分计算结果LM=∑(WLSN×AMSN)
等式4:部分计算结果LL=∑(WLSN×ALSN)
其中,A是数据或激活函数,并且W是权重。
在所示实施例中,部分计算结果194的每个配对可进入部分融合电路302。在所示实施例中,部分计算结果194-D和194-C可被分配给部分融合电路302-Y,并且部分计算结果194-B及194-A可被分配给部分融合电路302-X。在各种实施例中,在一些像素(例如,偶数像素)中,输入可进入移位器,并且在另一情况(例如,奇数像素)下,输入可直接进入加法器。可采用交换块或多路复用器(未示出)来将输入路由到加法器和移位器。
每个部分融合电路302可包括位移位器312和求和器或加法器314。在所示实施例中,一个部分计算结果(例如,部分计算结果194-D和194-B)可在被与另一部分计算结果(例如,部分计算结果194-C和194-A)相加之前被移位。在各种实施例中,部分融合电路302和设备300通常可包括寄存器或存储器单元以存储计算结果194、392和196。这些寄存器中的一些寄存器由用于计算结果194、392和196的块示出。在一些实施例中,这些寄存器可有助于流水线操作。
在一个实施例中,部分计算结果194可以是16位值。移位器312可包括产生20位值的四位移位器。加法器314可输出21位中间计算结果392。理解的是,以上仅仅是公开的主题不限于的一个说明性示例。
在各种实施例中,部分计算结果194可被分组并被输入到部分融合电路302中,使得需要的移位操作(例如,经由移位器312)的数量小于或等于半字节或数据子部分的大小或宽度。例如,通过不将MM和LL部分计算结果194两者放置到相同的部分融合电路302中,仅需要等于半字节(4位)的大小的位移位,而不是等于全字节(8位)的位移位。
在所示实施例中,这些中间计算结果394可被输入到第三部分融合电路302中。输出计算结果196或完整计算结果196可由下面的等式5给出。
等式5:完整结果=[∑(WNSN×ALSN)+∑(WLSN×AMSN)<<N]+[∑(WMSN×ALSN)+Σ(WMSN×AMSN)<<N]<<N
其中,A是数据或激活函数,W是权重,并且“<<N”指示n位的移位(例如,4位移位)。
在一个实施例中,部分计算结果194可表示4位×4位值(4×4值)。中间计算结果392可表示4×8或8×4值。完整计算结果196可表示8×8值。理解的是,以上仅仅是公开的主题不限于的一个说明性示例。
图4是根据公开的主题的计算流程400、401和402的示例实施例的框图。在各种实施例中,机器学习系统或设备可被配置为在一种或更多种负载平衡技术之间进行选择。图4的计算流程400、401和402示出一些可能的示例。
在所示实施例中,机器学习系统包括四个分块或计算电路,但也考虑其它数量。在这样的实施例中,机器学习系统可以以流水线方式计算一系列单元的部分计算结果。
计算流程400示出传统的计算流程,在传统的计算流程中,每个数据/权重组合(例如,LL、ML、LM或MM)花费完全相同的时间量来处理。计算流程400示出不跳过零的密集架构的示例。在计算流程400中,分块1、2、3和4的作业或计算任务被示出为行。而流水线单元计算被示出为列,例如,单元1(C1)、单元2(C2)、单元3(C3)、单元4(C4)、单元5(C5)、单元6(C6)等,无论多少单元被处理。在所示实施例中,处理任务被示出为任务4011-4046。
计算流程401示出利用稀疏性(例如,跳过零)的计算流程,其中,每个数据/权重组合(例如,LL、ML、LM或MM)花费不同的时间量来处理。然而,系统仍然可以以锁步方式工作,使得来自新单元的新数据/权重组合可不被处理,直到来自当前单元的所有数据/权重组合完成处理为止。在所示实施例中,处理任务被示出为任务4111-4144。
例如,尽管分块2的任务4121(LM)比分块1的任务4111(LL)花费更少的时间来处理,但分块2可不向前移动并开始处理下一个子部分或单元的任务4122(LM)。相反,分块2必须等待或暂停499,直到最慢的任务(例如,任务4111)完成计算为止。这样,特定单元的所有部分计算结果可基本上同时被呈现给融合电路。对于非常快速完成的任务(例如,分块4的任务4141(MM)),延迟甚至更糟糕。
计算流程402示出系统的特定实施例,其中,在该特定实施例中,系统利用数据集的稀疏性来加速计算并减少暂停499时间。在这样的实施例中,单元可被划分成组(例如,偶数和奇数等),并且负载平衡电路可在组之间交替或轮转。在所示实施例中,一个单元组被着色为白色,并且另一单元组被着色为灰色。理解的是,以上仅仅是公开的主题不限于的一个说明性示例。
在这样的实施例中,当完成一个(第一)单元组的任务(例如,分块2的任务4221)时,即使与第一单元组相关联的另一任务仍在被处理(例如,分块3的任务4231),也可开始与另一(第二)单元组相关联的任务(例如,分块2的任务4222)。在这样的实施例中,由于缺少暂停499,因此可减少计算时间。例如,在计算流程402中,与单元3相关联的许多任务(例如,任务4223、4233和4243)可在类似的任务(例如,任务4123、4133和4143)甚至在计算流程401开始之前完成。
在各种实施例中,计算电路、融合电路或系统作为整体可包括一个或更多个寄存器或队列,以使在不同时间完成的部分计算结果保持并同步。在一个实施例中,寄存器或队列可以是图3中所示的寄存器的一部分。理解的是,以上仅仅是公开的主题不限于的一个说明性示例。在一些实施例中,系统中可包括多个融合电路,其中,每个融合电路与一个或更多个单元组(例如,偶数和奇数融合电路)相关联。
在各种实施例中,可引入暂停499以防止来自不同单元(例如,单元1和单元3)的部分计算结果同时入队到融合电路。在另一实施例中,可不引入暂停499。
理解的是,所示计算流程400、401和402不是按比例的,并且尽管为了便于说明,单元计算时间被示出为重复的,但每个单元可涉及其自己的计算时间和与规范的差异。
在一些实施例中,架构速度或处理速度受最慢的数据/权重组合限制(例如,计算流程401)。通常,这可以是LL最慢的数据/权重组合。在所示实施例中,机器学习系统可尝试随着时间的推移将最慢的数据/权重组合分配给不同的分块或计算电路,以对哪个分块是最慢的进行改变。在这样的实施例中,如在计算流程402中所示,单元任务的完成可相对接近地发生。这与计算流程401的无暂停版本在分块1总是最慢的并且越来越落后于其它分块的情况下将会是的样子进行比较。这样的延迟将最终阻碍融合电路将给定单元的部分计算结果组合的能力,因为一个部分计算结果将在相当长的时间段内不可用。在所示实施例中,采用负载平衡来分散分块之间的延迟或处理超时,并且因此更接近地对准(而不借助于暂停)给定单元的所有部分计算结果的可用性。在各种实施例中,这可被称为单元的部分计算结果的同步。
在各种实施例中,可从一种或更多种负载平衡技术中选择负载平衡电路。在所示实施例中,计算流程402利用静态切换负载平衡技术,在静态切换负载平衡技术中,每个分块被分配两个数据/权重组合中的一个数据/权重组合,并且负载平衡电路在两者之间交替。在所示实施例中,每个分块的两个数据/权重组合如下:
分块1:LL和MM
分块2:LM和ML
分块3:ML和LM
分块4:MM和LL
在各种实施例中,可采用轮循或轮转方案。在一个这样的实施例中,这可允许每个分块或计算电路处理每个数据/权重组合(例如,LL、MM等),并且通过均摊由长处理组合引起的延迟来更接近地对准部分计算结果。在一个这样的实施例中,每个分块的数据/权重组合可如下:
分块1:LL,然后MM,然后LM,然后ML,然后重复。
分块2:LM,然后ML,然后LL,然后MM,然后重复。
分块3:ML,然后LM,然后MM,然后LL,然后重复。
分块4:MM,然后LL,然后ML,然后LM,然后重复。
在这样的实施例中,注意到的是:如上所述,融合电路将不具有应用于同一部分融合电路的LL和MM组合,并且因此避免了过度的位移位。
理解的是,以上仅仅是公开的主题不限于的几个说明性示例。
在各种实施例中,如上所述,负载平衡可以是静态的,或者是动态的。在一些实施例中,可采用各种形式的动态负载平衡。在一些实施例中,负载平衡的形式可以是可配置的。在一些实施例中,可分析数据集,并且可自动选择负载平衡的形式。例如,第一负载平衡技术可用于静止图像,第二负载平衡技术可用于静止视频,并且第三负载平衡技术用于其它类型的数据(例如,预测数据分析)。理解的是,以上仅仅是公开的主题不限于的几个说明性示例。
在一个实施例中,空间技术可以是可配置的。在一个这样的实施例中,机器学习系统可以能够执行密集架构(例如,计算流程400),然后切换到稀疏感知技术(例如,计算流程402)。此外,负载平衡技术可单独配置或与特定方面结合配置。在一个这样的实施例中,机器学习系统可以以锁步方式执行,但采用负载平衡来减少暂停时间(例如,计算流程401)。理解的是,以上仅仅是公开的主题不限于的几个说明性示例。
图5是信息处理系统500的示意性框图,其中,信息处理系统500可包括根据公开的主题的原理形成的半导体装置。
参考图5,信息处理系统500可包括根据公开的主题的原理构造的一个或更多个装置。在另一实施例中,信息处理系统500可采用或执行根据公开的主题的原理的一种或更多种技术。
在各种实施例中,信息处理系统500可包括计算装置,诸如,例如膝上型计算机、台式计算机、工作站、服务器、刀片服务器、个人数字助理、智能电话、平板计算机和其它适当的计算机或其虚拟机或虚拟计算装置。在各种实施例中,信息处理系统500可由用户(未示出)使用。
根据公开的主题的信息处理系统500还可包括中央处理器(CPU)、逻辑电路或处理器510。在一些实施例中,处理器510可包括一个或更多个功能单元块(FUB)或组合逻辑块(CLB)515。在这样的实施例中,组合逻辑块可包括各种布尔逻辑运算(例如,NAND、NOR、NOT、XOR)、稳定逻辑器件(例如,触发器、锁存器)、其它逻辑器件或其组合。这些组合逻辑操作可以以简单或复杂的方式被配置为处理输入信号以实现期望的结果。理解的是,尽管描述了同步组合逻辑操作的几个说明性示例,但公开的主题不受如此限制,并且可包括异步操作或其混合。在一个实施例中,组合逻辑操作可包括多个互补金属氧化物半导体(CMOS)晶体管。在各种实施例中,这些CMOS晶体管可被布置成执行逻辑操作的栅极;但理解的是,可使用在公开的主题的范围内的其它技术。
根据公开的主题的信息处理系统500还可包括易失性存储器520(例如,随机存取存储器(RAM))。根据公开的主题的信息处理系统500还可包括非易失性存储器530(例如,硬盘驱动器、光学存储器、NAND或闪存)。在一些实施例中,易失性存储器520、非易失性存储器530或其组合或部分可被称为“存储介质”。在各种实施例中,易失性存储器520和/或非易失性存储器530可被配置为以半永久或基本上永久的形式存储数据。
在各种实施例中,信息处理系统500可包括一个或更多个网络接口540,其中,所述一个或更多个网络接口540被配置为允许信息处理系统500成为通信网络的一部分并经由通信网络进行通信。Wi-Fi协议的示例可包括但不限于电气和电子工程师协会(IEEE)802.11g、IEEE802.11n。蜂窝协议的示例可包括但不限于:IEEE802.16m(又名高级无线-MAN(城域网))、高级长期演进(LTE)、增强型数据速率GSM(全球移动通信系统)演进(EDGE)、演进型高速分组接入(HSPA+)。有线协议的示例可包括但不限于IEEE802.3(又名以太网)、光纤信道、电力线通信(例如,HomePlug、IEEE1901)。理解的是,以上仅仅是公开的主题不限于的几个说明性示例。
根据公开的主题的信息处理系统500还可包括用户接口单元550(例如,显示器适配器、触觉接口、人机接口装置)。在各种实施例中,该用户接口单元550可被配置为从用户接收输入和/或向用户提供输出。也可使用其它类型的装置来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
在各种实施例中,信息处理系统500可包括一个或更多个其它装置或硬件组件560(例如,显示器或监视器、键盘、鼠标、相机、指纹读取器、视频处理器)。理解的是,以上仅仅是公开的主题不限于的几个说明性示例。
根据公开的主题的信息处理系统500还可包括一个或更多个系统总线505。在这样的实施例中,系统总线505可被配置为通信地连接处理器510、易失性存储器520、非易失性存储器530、网络接口540、用户接口单元550和一个或更多个硬件组件560。由处理器510处理的数据或从非易失性存储器530外部输入的数据可被存储在非易失性存储器530或易失性存储器520中。
在各种实施例中,信息处理系统500可包括或运行一个或更多个软件组件570。在一些实施例中,软件组件570可包括操作系统(OS)和/或应用。在一些实施例中,OS可被配置为向应用提供一个或更多个服务,并且管理或充当应用与信息处理系统500的各种硬件组件(例如,处理器510、网络接口540)之间的中介。在这样的实施例中,信息处理系统500可包括一个或更多个本地应用,其中,本地应用可被本地(例如,在非易失性存储器530内)安装并且被配置为由处理器510直接执行并且直接与OS交互。在这样的实施例中,本地应用可包括预编译的机器可执行代码。在一些实施例中,本地应用可包括脚本解释器(例如,C shell(csh)、AppleScript、AutoHotkey)或虚拟执行机(VM)(例如,Java虚拟机、微软公共语言运行库),其中,脚本解释器或虚拟执行机被配置为将源代码或目标代码转换成随后由处理器510执行的可执行代码。
可使用各种封装技术来封装上述半导体装置。例如,可使用以下技术中的任意一种技术来封装根据公开的主题的原理构造的半导体装置:封装体叠层(POP)技术、球栅阵列(BGA)技术、芯片级封装(CSPs)技术、塑料引线芯片载体(PLCC)技术、塑料双列直插式封装(PDIP)技术、晶片封装中的裸片技术、晶片形式的裸片技术、板上芯片(COB)技术、陶瓷双列直插式封装(CERDIP)技术、塑料度量四方扁平封装(PMQFP)技术、塑料四方扁平封装(PQFP)技术、小外形封装(SOIC)技术、缩小小外形封装(SSOP)技术、薄小外形封装(TSOP)技术、薄四方扁平封装(TQFP)技术、系统级封装(SIP)技术、多芯片封装(MCP)技术、晶片级制造封装(WFP)技术、晶片级处理堆叠封装(WSP)技术或如本领域技术人员将已知的其它技术。
方法步骤可由运行计算机程序的一个或更多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。方法步骤还可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且设备可被实现为专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。
在各种实施例中,计算机可读介质可包括指令,其中,所述指令在被执行时使装置执行所述方法步骤的至少一部分。在一些实施例中,计算机可读介质可被包括在磁介质、光学介质、其它介质或其组合(例如,CD-ROM、硬盘驱动器、只读存储器、闪存驱动器)中。在这样的实施例中,计算机可读介质可以是被有形地且非暂时性地实现的制品。
尽管已经参照示例实施例描述了公开的主题的原理,但对于本领域技术人员将显而易见的是,在不脱离这些公开的构思的精神和范围的情况下,可对其进行各种改变和修改。因此,应理解,上述实施例不是限制性的,而仅是说明性的。因此,公开的构思的范围将由权利要求及其等同物的最广泛的允许解释来确定,并且不应受前面的描述的约束或限制。因此,将理解,所附权利要求旨在覆盖落入实施例的范围内的所有这样的修改和改变。
Claims (20)
1.一种设备,包括:
机器学习系统,包括:
精度确定电路,被配置为:
确定数据的精度级别,并且
将所述数据划分成数据子部分;
负载平衡电路,被配置为:
选择负载平衡技术,其中,负载平衡技术包括用至少第一数据/权重子部分组合和第二数据/权重子部分组合交替地加载计算电路,并且
至少部分地基于负载平衡技术,用选择的数据子部分和选择的权重子部分加载计算电路;以及
计算电路,被配置为:至少部分地基于选择的数据子部分和选择的权重子部分计算部分计算结果。
2.如权利要求1所述的设备,其中,所述机器学习系统还包括:融合电路,被配置为将第一部分计算结果与至少第二部分计算结果组合以形成组合计算结果。
3.如权利要求2所述的设备,其中,负载平衡电路被配置为选择执行以下操作的负载平衡技术:使融合电路将部分计算结果移位不大于数据子部分的宽度的宽度。
4.如权利要求1所述的设备,其中,负载平衡电路采用包括以下操作的负载平衡技术:
根据第一数据子部分和第一权重子部分创建第一数据/权重子部分组合;
根据第二数据子部分和第二权重子部分创建第二数据/权重子部分组合;
用第一数据/权重子部分组合和第二数据/权重子部分组合交替地加载计算电路。
5.如权利要求1所述的设备,其中,负载平衡电路采用包括以下操作的负载平衡技术:
根据数据子部分和权重子部分的组合排列,至少创建第一数据/权重子部分组合和第二数据/权重子部分组合;并且
以轮循方式用数据/权重子部分组合加载计算电路。
6.如权利要求1所述的设备,其中,第一数据/权重子部分组合和第二数据/权重子部分组合是从数据的不同单元中选择的。
7.如权利要求1所述的设备,其中,负载平衡技术包括静态负载平衡技术。
8.如权利要求1所述的设备,其中,负载平衡电路被配置为:选择减少计算电路暂停的时间量的负载平衡技术。
9.一种设备,包括:
机器学习系统,包括:
融合电路,被配置为将第一部分计算结果与第二部分计算结果组合以形成组合计算结果;
第一计算电路,被配置为计算第一部分计算结果;
第二计算电路,被配置为计算第二部分计算结果;以及
负载平衡电路,被配置为选择负载平衡技术,其中,负载平衡技术包括:在预设模式下用第一数据/权重子部分组合或第二数据/权重子部分组合加载第一计算电路。
10.如权利要求9所述的设备,其中,融合电路被配置为:将部分计算结果移位不大于数据子部分的宽度的宽度。
11.如权利要求9所述的设备,其中,负载平衡电路采用包括以下操作的负载平衡技术:在用第一数据/权重子部分组合加载第一计算电路与用第二数据/权重子部分组合加载第一计算电路之间交替。
12.如权利要求9所述的设备,其中,负载平衡电路采用包括以下操作的负载平衡技术:以轮循方式用第一数据/权重子部分组合、第二数据/权重子部分组合和至少第三数据/权重子部分组合加载第一计算电路。
13.如权利要求9所述的设备,其中,第一数据/权重子部分组合和第二数据/权重子部分组合是从数据的不同单元选择的。
14.如权利要求9所述的设备,其中,负载平衡技术包括静态负载平衡技术。
15.如权利要求9所述的设备,其中,负载平衡电路被配置为选择减少第一计算电路暂停的时间量的负载平衡技术。
16.如权利要求9所述的设备,其中,负载平衡电路还被配置为:
用第一数据/权重子部分组合加载第一计算电路;
用第二数据/权重子部分组合加载第二计算电路;并且
响应于第一计算电路产生第一部分计算结果并且不考虑第二计算电路未产生第二部分计算结果,用第三数据/权重子部分组合加载第一计算电路。
17.如权利要求16所述的设备,其中,第一计算电路被配置为:在无需等待第二计算电路产生第二部分计算结果的情况下,开始计算第三部分计算结果。
18.一种被配置为提供神经网络的设备,所述设备包括:
融合电路,被配置为将第一部分计算结果与第二部分计算结果组合以形成组合计算结果;
第一计算电路,被配置为计算第一部分计算结果,其中,第一部分计算结果与数据的第一单元相关联且部分地基于所述第一单元的第一数据子部分;
第二计算电路,被配置为至少部分地与第一部分计算结果的计算同时地计算与所述数据的第二单元的第二数据子部分相关联的第二部分计算结果;以及
负载平衡电路,被配置为选择负载平衡技术,其中,负载平衡技术包括使数据/权重子部分组合在第一计算电路与第二计算电路之间轮转,以减少所述第一单元的部分计算结果与所述第二单元的部分计算结果之间的不同步。
19.如权利要求18所述的设备,其中,融合电路被配置为:将部分计算结果移位不大于数据子部分的宽度的宽度。
20.如权利要求18所述的设备,其中,负载平衡技术包括:在用第一数据/权重子部分组合加载第一计算电路与用第二数据/权重子部分组合加载第一计算电路之间交替。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063003883P | 2020-04-01 | 2020-04-01 | |
US63/003,883 | 2020-04-01 | ||
US16/898,433 | 2020-06-10 | ||
US16/898,433 US12001929B2 (en) | 2020-04-01 | 2020-06-10 | Mixed-precision neural processing unit (NPU) using spatial fusion with load balancing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113496270A true CN113496270A (zh) | 2021-10-12 |
Family
ID=77921718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110280201.1A Pending CN113496270A (zh) | 2020-04-01 | 2021-03-16 | 使用具有负载平衡的空间融合的混合精度神经处理单元 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12001929B2 (zh) |
KR (1) | KR20210122665A (zh) |
CN (1) | CN113496270A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220036163A1 (en) * | 2020-07-29 | 2022-02-03 | Apple Inc. | Chained neural engine write-back architecture |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5471591A (en) * | 1990-06-29 | 1995-11-28 | Digital Equipment Corporation | Combined write-operand queue and read-after-write dependency scoreboard |
US5940311A (en) * | 1996-04-30 | 1999-08-17 | Texas Instruments Incorporated | Immediate floating-point operand reformatting in a microprocessor |
US5991863A (en) * | 1996-08-30 | 1999-11-23 | Texas Instruments Incorporated | Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor |
US6272257B1 (en) * | 1997-04-30 | 2001-08-07 | Canon Kabushiki Kaisha | Decoder of variable length codes |
US6549930B1 (en) * | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6601084B1 (en) | 1997-12-19 | 2003-07-29 | Avaya Technology Corp. | Dynamic load balancer for multiple network servers |
GB0019341D0 (en) * | 2000-08-08 | 2000-09-27 | Easics Nv | System-on-chip solutions |
US6826704B1 (en) * | 2001-03-08 | 2004-11-30 | Advanced Micro Devices, Inc. | Microprocessor employing a performance throttling mechanism for power management |
US20040034759A1 (en) * | 2002-08-16 | 2004-02-19 | Lexra, Inc. | Multi-threaded pipeline with context issue rules |
US7320013B2 (en) * | 2002-12-12 | 2008-01-15 | Adaptec, Inc. | Method and apparatus for aligning operands for a processor |
US7075541B2 (en) | 2003-08-18 | 2006-07-11 | Nvidia Corporation | Adaptive load balancing in a multi-processor graphics processing system |
US7079156B1 (en) * | 2004-05-14 | 2006-07-18 | Nvidia Corporation | Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline |
US7538773B1 (en) * | 2004-05-14 | 2009-05-26 | Nvidia Corporation | Method and system for implementing parameter clamping to a valid range in a raster stage of a graphics pipeline |
US8411105B1 (en) * | 2004-05-14 | 2013-04-02 | Nvidia Corporation | Method and system for computing pixel parameters |
US7190366B2 (en) * | 2004-05-14 | 2007-03-13 | Nvidia Corporation | Method and system for a general instruction raster stage that generates programmable pixel packets |
US8432394B1 (en) * | 2004-05-14 | 2013-04-30 | Nvidia Corporation | Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline |
US7649537B2 (en) | 2005-05-27 | 2010-01-19 | Ati Technologies, Inc. | Dynamic load balancing in multiple video processing unit (VPU) systems |
US20070260856A1 (en) * | 2006-05-05 | 2007-11-08 | Tran Thang M | Methods and apparatus to detect data dependencies in an instruction pipeline |
US20110227920A1 (en) * | 2010-03-19 | 2011-09-22 | James Adams | Method and System For a Shader Processor With Closely-Coupled Peripherals |
US20110276784A1 (en) * | 2010-05-10 | 2011-11-10 | Telefonaktiebolaget L M Ericsson (Publ) | Hierarchical multithreaded processing |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US9213523B2 (en) * | 2012-06-29 | 2015-12-15 | Intel Corporation | Double rounded combined floating-point multiply and add |
US8892619B2 (en) * | 2012-07-24 | 2014-11-18 | The Board Of Trustees Of The Leland Stanford Junior University | Floating-point multiply-add unit using cascade design |
US9146747B2 (en) * | 2013-08-08 | 2015-09-29 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing configurable computational imaging pipeline |
US9489707B2 (en) * | 2013-09-27 | 2016-11-08 | Intel Corporation | Sampler load balancing |
US9665372B2 (en) * | 2014-05-12 | 2017-05-30 | International Business Machines Corporation | Parallel slice processor with dynamic instruction stream mapping |
US10204301B2 (en) * | 2015-03-18 | 2019-02-12 | International Business Machines Corporation | Implementing a neural network algorithm on a neurosynaptic substrate based on criteria related to the neurosynaptic substrate |
US10210135B2 (en) * | 2015-12-31 | 2019-02-19 | Cavium, Llc | Methods and apparatus for providing a programmable mixed-radix DFT/IDFT processor using vector engines |
JP6890615B2 (ja) * | 2016-05-26 | 2021-06-18 | タータン エーアイ リミテッド | ディープニューラルネットワークについての加速器 |
US10936941B2 (en) * | 2016-08-12 | 2021-03-02 | Xilinx, Inc. | Efficient data access control device for neural network hardware acceleration system |
US10282296B2 (en) * | 2016-12-12 | 2019-05-07 | Intel Corporation | Zeroing a cache line |
US10043232B1 (en) * | 2017-04-09 | 2018-08-07 | Intel Corporation | Compute cluster preemption within a general-purpose graphics processing unit |
US11449574B2 (en) * | 2017-04-14 | 2022-09-20 | Cerebras Systems Inc. | Floating-point unit stochastic rounding for accelerated deep learning |
US10338919B2 (en) * | 2017-05-08 | 2019-07-02 | Nvidia Corporation | Generalized acceleration of matrix multiply accumulate operations |
DE102018110607A1 (de) * | 2017-05-08 | 2018-11-08 | Nvidia Corporation | Verallgemeinerte Beschleunigung von Matrix-Multiplikations-und-Akkumulations-Operationen |
US10235135B2 (en) * | 2017-07-17 | 2019-03-19 | International Business Machines Corporation | Normalization of a product on a datapath |
US10475150B2 (en) * | 2017-09-29 | 2019-11-12 | Intel Corporation | GPU minimum latency dispatch for short-duration tasks |
US11651223B2 (en) * | 2017-10-27 | 2023-05-16 | Baidu Usa Llc | Systems and methods for block-sparse recurrent neural networks |
US20190303263A1 (en) * | 2018-03-30 | 2019-10-03 | Kermin E. Fleming, JR. | Apparatus, methods, and systems for integrated performance monitoring in a configurable spatial accelerator |
US11150899B2 (en) * | 2018-04-09 | 2021-10-19 | Advanced Micro Devices, Inc. | Selecting a precision level for executing a workload in an electronic device |
US20190332420A1 (en) * | 2018-04-27 | 2019-10-31 | Advanced Micro Devices, Inc. | Feedback guided split workgroup dispatch for gpus |
US10963787B2 (en) * | 2018-05-31 | 2021-03-30 | Neuralmagic Inc. | Systems and methods for generation of sparse code for convolutional neural networks |
US11216732B2 (en) * | 2018-05-31 | 2022-01-04 | Neuralmagic Inc. | Systems and methods for generation of sparse code for convolutional neural networks |
WO2020021395A1 (en) * | 2018-07-25 | 2020-01-30 | Cerebras Systems Inc. | Numerical representation for neural networks |
US11385863B2 (en) * | 2018-08-01 | 2022-07-12 | Hewlett Packard Enterprise Development Lp | Adjustable precision for multi-stage compute processes |
WO2020044238A1 (en) * | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Processor element redundancy for accelerated deep learning |
US10846131B1 (en) * | 2018-09-26 | 2020-11-24 | Apple Inc. | Distributing compute work using distributed parser circuitry |
US10593094B1 (en) * | 2018-09-26 | 2020-03-17 | Apple Inc. | Distributed compute work parser circuitry using communications fabric |
US10838725B2 (en) * | 2018-09-26 | 2020-11-17 | Apple Inc. | Low latency fetch circuitry for compute kernels |
US20190253357A1 (en) * | 2018-10-15 | 2019-08-15 | Intel Corporation | Load balancing based on packet processing loads |
KR20200072307A (ko) * | 2018-12-12 | 2020-06-22 | 삼성전자주식회사 | 뉴럴 네트워크에서의 부하 균형을 위한 장치 및 방법 |
US10761822B1 (en) * | 2018-12-12 | 2020-09-01 | Amazon Technologies, Inc. | Synchronization of computation engines with non-blocking instructions |
US20200226473A1 (en) * | 2019-01-15 | 2020-07-16 | BigStream Solutions, Inc. | Systems, apparatus, methods, and architectures for heterogeneous precision acceleration of quantized neural networks |
-
2020
- 2020-06-10 US US16/898,433 patent/US12001929B2/en active Active
-
2021
- 2021-01-15 KR KR1020210005923A patent/KR20210122665A/ko active Search and Examination
- 2021-03-16 CN CN202110280201.1A patent/CN113496270A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20210122665A (ko) | 2021-10-12 |
US12001929B2 (en) | 2024-06-04 |
US20210312325A1 (en) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111149090B (zh) | 多线程脉动阵列 | |
CN114868108A (zh) | 组合多个整数和浮点数据类型的脉动阵列部件 | |
CN111417965A (zh) | 软件限定的量子计算机 | |
US20210295168A1 (en) | Gradient compression for distributed training | |
CN112988655A (zh) | 用于将权重加载到张量处理块中的系统和方法 | |
CN108564168A (zh) | 一种对支持多精度卷积神经网络处理器的设计方法 | |
CN114503125A (zh) | 结构化剪枝方法、系统和计算机可读介质 | |
US11948352B2 (en) | Speculative training using partial gradients update | |
US20190228051A1 (en) | Circuitry for high-bandwidth, low-latency machine learning | |
EP4071619A1 (en) | Address generation method, related device and storage medium | |
US11676021B1 (en) | Multi-model training pipeline in distributed systems | |
US11755683B2 (en) | Flexible accelerator for sparse tensors (FAST) in machine learning | |
US20210357732A1 (en) | Neural network accelerator hardware-specific division of inference into groups of layers | |
CN111324777A (zh) | 用于分片创建的装置和系统 | |
US11494326B1 (en) | Programmable computations in direct memory access engine | |
CN112988656A (zh) | 用于将权重加载到张量处理块中的系统和方法 | |
CN114514536A (zh) | 分布式系统中的神经网络训练 | |
KR102238600B1 (ko) | 스케쥴러 컴퓨팅 장치, 그것을 포함하는 분산 컴퓨팅 시스템의 데이터 노드 및 그것의 방법 | |
Liu et al. | HiKonv: High throughput quantized convolution with novel bit-wise management and computation | |
CN113496270A (zh) | 使用具有负载平衡的空间融合的混合精度神经处理单元 | |
US11163530B2 (en) | Programmable-logic-directed multiplier mapping | |
CN118012628A (zh) | 一种数据处理方法、装置和存储介质 | |
CN117786412A (zh) | 大型语言模型的弹性训练方法、集群系统、产品及介质 | |
EP4155901A1 (en) | Systems and methods for sparsity operations in a specialized processing block | |
US20150081932A1 (en) | Scheduling, in-memory coding, data wire matching, and wire placement for wire power reduction |
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 |