CN110476174B - 包括装置间连接性的神经网络处理器 - Google Patents

包括装置间连接性的神经网络处理器 Download PDF

Info

Publication number
CN110476174B
CN110476174B CN201880022145.8A CN201880022145A CN110476174B CN 110476174 B CN110476174 B CN 110476174B CN 201880022145 A CN201880022145 A CN 201880022145A CN 110476174 B CN110476174 B CN 110476174B
Authority
CN
China
Prior art keywords
processor
ann
memory
input
computing
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.)
Active
Application number
CN201880022145.8A
Other languages
English (en)
Other versions
CN110476174A (zh
Inventor
A·鲍姆
O·达农
H·泽特林
D·丘博塔里
R·菲格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hailo Technologies Ltd
Original Assignee
Hailo Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hailo Technologies Ltd filed Critical Hailo Technologies Ltd
Publication of CN110476174A publication Critical patent/CN110476174A/zh
Application granted granted Critical
Publication of CN110476174B publication Critical patent/CN110476174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Geometry (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Advance Control (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)

Abstract

一种新颖且有用的神经网络(NN)处理核,包括装置间互联性并适用于实现人工神经网络(ANN)。芯片到芯片接口以无缝的方式跨多个装置传播给定ANN模型。所述NN处理器由以分层架构组织的独立计算单元构成。同质性使得能够更简单地管理和控制聚合在多个层级中的类似的计算单元。计算单元被设计成具有尽可能最小的开销,其中另外的特征和能力聚合在层次结构中的更高级别。片上存储器为特定层次结构处的基本操作固有地需要的内容提供存储,并以最佳比率与计算资源耦接。精益控制提供正好足够的信令来管理仅特定层级处需要的操作。提供动态资源指派敏捷性,其可根据装置的资源可用性和容量按照需要进行调整。

Description

包括装置间连接性的神经网络处理器
技术领域
本文所公开的主题涉及神经网络领域,并且更特别地涉及神经网络(NN)处理引擎,所述神经网络处理引擎包括装置间连接性并且适于实现人工神经网络(ANN)。
背景技术
人工神经网络(ANN)是受构成动物大脑的生物神经网络启发的计算系统。这些系统通过考虑实例来学习(即逐步改进性能)以完成任务,而通常不需要通过提取那些任务中的关键特征并从大量的实例中进行概括来进行特定于任务的编程。例如,在图像识别中,它们可能学习通过分析已经被手动标记为“猫”或“非猫”的示例性图像并且使用分析结果来标识其他图像中的猫来标识包含猫的图像。它们已经发现在传统计算机算法中应用程序中的大多数用途难以使用基于规则的编程来表达。
ANN是基于一组称为人工神经元(类似于生物大脑中的神经元)的连接单元。神经元之间的每个连接或突触可将信号传递给另一个神经元。接收或突触后神经元连接到另一个或若干神经元,并且可处理信号并且然后通过突触(也称为轴突)向连接到它的下游神经元发信号。神经元可具有状态,总体上由实数表示,通常在0与1之间。神经元和突触还可具有随学习进行而变化的权重,这可增加或减小它发送到下游的信号的强度。此外,它们可具有阈值,使得只有聚合信号低于或高于所述级别时才发送下游信号。
通常,神经元按层组织。不同的层可对它们的输入执行不同类型的转换。信号可能在多次遍历层之后从第一(即,输入)层行进到最后(即,输出)层。
神经网络方法的初始目标是以同人类大脑相同的方式解决问题。随着时间的推移,关注集中于匹配具体的心智能力,这导致偏离生物学,诸如反向传播,或反向传递信息并且调整网络以反映该信息。
人工神经网络的部件包括:(1)具有激活阈值的神经元;(2)用于传递神经元的输出的连接和权重;(3)用于计算来自前代神经元输出的对神经元的输入的传播函数;以及(4)学习规则,其是一种算法,所述算法修改神经网络参数以便给定输入产生期望结果,这通常相当于修改权重和阈值。
鉴于要解决的具体任务和一类函数F,学习需要使用一组观察来找到在某种最佳意义上解决任务的函数。成本函数C被限定成使得:对于最佳解决方案,没有其他解决方案具有比最佳解决方案的成本小的成本。
成本函数C是特定解决方案距待解决的问题的最佳解决方案的距离的量度。学习算法搜索解决方案空间以找到具有最小可能成本的函数。
可使用反向传播来训练神经网络,所述反向传播是计算相对于ANN中的权重的损失函数的梯度的方法。反向传播的权重更新可通过熟知的随机梯度下降技术来完成。应注意,成本函数的选择取决于诸如学习类型(例如,监督、无监督、强化)和激活函数的因素。
有三种主要的学习范式,并且每种学习范式对应于一个特定的学习任务:监督学习、无监督学习和强化学习。监督学习使用一组实例对,并且目标是在与实例匹配的允许的一类函数中查找函数。常用的成本是均方误差,它尝试使所有实例对上的网络输出与目标值之间的平均平方误差最小化。使用称为多层感知器(MLP)的一类神经网络的梯度下降来使此成本最小化产生了用于训练神经网络的反向传播算法。监督学习的实例包括图像识别,即分类和回归,即函数逼近。
在无监督学习中,给出一些数据并使成本函数最小化,这可以是数据和网络输出的任何函数。成本函数取决于任务(即模型域)和任何先验假设(即模型的隐含特性、其参数和观察到的变量)。落入无监督学习范式的任务通常是估计问题;应用程序包括集群、统计分布的估计、压缩和过滤。
在强化学习中,通常不提供数据,而是由代理与环境的交互生成数据。在每个时间点处,代理执行动作,并且环境根据一些通常未知的动态生成观察和瞬时成本。目的是发现用于选择使长期成本(例如预期的累积成本)的一些量度最小化的动作的策略。环境的动态和每个策略的长期成本通常是未知但可估算的。
现今,神经网络的一个常见应用是分析视频流,即机器视觉。实例包括:工业工厂,其中机器视觉在制造商品的组装线上使用;自主车辆,其中机器视觉用于检测车辆路径中和车辆周围的对象等。
人工神经网络(ANN)具有固有结构,所述结构极大地依赖于归因于所谓的‘网络模型’的一组参数。这些参数通常被称为网络的“权重”,因为它们倾向于在其沿网络传播时作为其他中间值的缩放系数操作。用于确定权重值的过程称为训练,如上所述。当训练完成时,网络就会进入稳定状态,并且现在可与新的(即未知的)数据一起用于提取信息。这个阶段被称为“推断”阶段。
在推断期间,可观察所得的参数集(即权重),并操纵它们产生更好的性能(即表示)。用于裁剪并量化权重的方法是已知的。然而,这些方法仅在进入推断阶段之前应用于训练模型上。这种方法确实产生更好的执行性能。然而,它没有充分探索和利用修改权重的可能性。另外,只有在训练之后,当ANN的权重已经收敛到令人满意的级别时,现有的解决方案才应用权重的量化。
发明内容
本发明是一种神经网络(NN)处理引擎,其适于实现人工神经网络(ANN)并包括装置间连接性。芯片到芯片接口以无缝的方式跨多个装置传播给定ANN模型。NN处理引擎或处理器(也称为神经计算机或神经芯片)的粒度性质使得能够容易地标识神经网络的基础并且以非常高效的方式实现宽泛范围的神经网络模型。NN处理器在选择(1)过度概括关于计算方面的架构与(2)聚合专用的计算能力单元中的计算之间的平衡时提供了一定的灵活性。本发明提供了一种特定于神经网络的改进的平衡,并尝试以适当的容量满足所需的容量。因此,所得的架构更为高效并且提供了明显更高的计算单元密度以及低得多的每单元功率消耗。
本发明的NN处理器的架构的若干关键特征包括以下:(1)计2单元是独立的并且被配置为充分利用来实现其目标任务;(2)分层架构提供同质性和自类似性,从而能够更简单地管理和控制聚合在层次结构中的多个级别中的类似的计算单元;(3)计算单元被设计成具有尽可能最小的开销,其中另外的特征和能力被放置在层次结构中的较高级别处(即聚合);(4)片上存储器为特定层次结构处的基本操作固有地需要的内容提供存储,以最佳比率与计算资源耦接;(5)精益控制提供正好足够的控制来管理仅特定层级处需要的操作;以及(6)动态资源指派灵活性可根据可用性和容量按照需要进行调整。
本发明的实施方案的这种、另外的和/或其他的方面和/或优点在下面的详细描述中进行阐述;可能从详细描述进行推断;和/或可通过实践本发明的实施方案学习。
因此,根据本发明提供了一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器集成电路(IC)装置,其包括:多个计算电路,每个计算电路包括计算元件、相关联的专用存储器元件和相关的控制逻辑;其中所述多个计算电路聚合在多个级别中以形成层次结构;其中所述层次结构中的更高级别通常更为复杂并且包括比更低级别更少数量的实例化;多个装置到装置接口电路,所述多个装置到装置接口电路操作来实现多个NN处理器装置之间的通信并将多个NN处理器装置互连。
根据本发明还提供了一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器系统,其包括:多个互连的NN处理器集成电路(IC)装置,每个NN处理器装置包括:多个计算电路,每个计算电路包括计算元件、相关联的专用存储器元件和相关的控制逻辑;其中所述多个计算电路聚合在多个级别中以形成层次结构;其中所述层次结构中的更高级别通常更为复杂并且包括比更低级别更少数量的实例化;多个装置到装置接口电路,所述多个装置到装置接口电路操作来实现多个NN处理器装置之间的通信并将多个NN处理器装置互连;并且其中所述ANN跨所述多个互连的NN处理器装置的实现方式是基本上无缝的,从而导致等同于在单个NN处理器装置上实现的所述ANN的行为。
根据本发明进一步提供了一种由神经网络(NN)集成电路(IC)装置实现的方法,所述装置包括用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的NN处理器电路,所述方法包括:提供多个计算电路,每个计算电路包括计算元件、相关联的专用存储器元件和控制逻辑;将所述多个计算电路聚合到多个级别中以形成层次结构;其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化;以及通过装置到装置接口电路将多个NN装置互连,从而实现它们之间的通信。
根据本发明还提供了一种由神经网络(NN)集成电路(IC)装置实现的方法,所述装置包括用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的NN处理器电路,所述方法包括:提供多个计算电路,每个计算电路包括计算元件、相关联的专用存储器元件和控制逻辑;将所述多个计算电路聚合到多个级别中以形成层次结构;其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化;提供多个装置到装置接口电路,所述多个装置到装置接口电路操作来实现多个NN装置之间的通信并将多个NN装置互连。通过装置到装置接口电路将多个NN装置互连,从而实现它们之间的通信并形成NN系统;并且其中所述ANN跨所述多个互连的NN装置的实现方式是基本上无缝的,从而导致等同于在单个NN装置上实现的所述ANN的行为。
附图说明
在以下示例性实施方案中并参考附图进一步详细解释本发明,其中相同或类似的元件可以部分地由相同或类似的附图标号指示,并且各种示例性实施方案的特征是可组合的。本文仅以举例的方式参考附图描述本发明,在附图中:
图1是展示适于实现本发明的一个或多个部分的示例性计算机处理系统的框图;
图2是展示第一示例性人工神经网络的图;
图3是展示神经网络处理系统的示例性多层抽象的图;
图4是展示包括一个或多个NN处理核的示例性基于SoC的NN处理系统的高级框图;
图5是更详细地展示示例性NN处理核的高级框图;
图6是更详细地展示第一示例性低级处理元件(PE)的框图;
图7A是更详细地展示第二示例性低级处理元件(PE)的框图;
图7B是更详细地展示PE的四重乘法器(quad multiplier)的框图;
图8是更详细地展示第一示例性子集群的高级框图;
图9是更详细地展示第二示例性子集群的高级框图;
图10是更详细地展示第一示例性集群的高级框图;
图11是更详细地展示第二示例性集群的高级框图;
图12是更详细地展示集群间交叉连接器的高级框图;
图13是展示第一示例性存储器加窗方案的图;
图14是展示第二示例性存储器加窗方案的图;
图15是展示计算元件与存储器元件之间的第一示例性存储器可访问性的图,所述可访问性包括窗口大小和计算机访问可配置性;
图16是展示计算元件与存储器元件之间的第二示例性存储器可访问性的图;
图17是展示示例性基于分散/聚集的资源加窗技术的图;
图18是展示示例性存储器争用解决方案的框图;
图19是更详细地展示第一示例性层控制器的高级框图;
图20是更详细地展示L3存储器和子集群的层控制器接口的高级框图;
图21是更详细地展示第二示例性层控制器的高级框图;
图22是展示示例性NN处理器编译器/SDK的高级框图;
图23是展示NN处理器的灵活处理粒度和相关存储器对延迟的折衷的图;
图24是展示本发明的第一示例性多NN处理器SoC系统的图;
图25是展示本发明的第二示例性多NN处理器SoC系统的图;
图26是展示本发明的第一示例性多NN处理器SoC系统的图;
图27是展示本发明的第一示例性多NN处理器SoC系统的图;
图28是展示用于图2的第一示例性人工神经网络的示例性映射策略的图;
图29是展示第二示例性人工神经网络的图;
图30是展示图29的ANN的示例性多NN处理器SoC系统的图;
图31是展示第三示例性人工神经网络的图;
图32是展示图31的ANN的第一示例性多NN处理器SoC系统的图;并且
图33是展示图31的ANN的第二示例性多NN处理器SoC系统的图。
具体实施方式
在以下详细描述中,阐述了许多具体细节以便提供对本发明的充分理解。然而,本领域技术人员应当理解,可在没有这些具体细节的情况下实践本发明。在其他情况下,并未对熟知的方法、程序以及部件进行详细描述,以免使本发明模糊。
在已经公开的那些益处和改进中,本发明的其他目的和优点将通过以下结合附图的描述变得显而易见。本文公开了本发明的详细实施方案;然而,应当理解,所公开的实施方案仅仅是可以各种形式来体现的本发明的展示。另外,结合本发明的各种实施方案给出的实例中的每一个意图是说明性的而非限制性的。
在本说明书的结论部分特别指出并清楚地要求保护视为本发明的主题。然而,关于组织和操作方法连同其目标、特征和优点,通过在阅读附图时参考以下详细描述可最好地理解本发明。
附图构成本说明书的一部分,并且包括本发明的说明性实施方案,并且展示其各种目标和特征。此外,附图不一定按比例绘制,一些特征可被放大以示出特定部件的细节。另外,附图中所示的任何测量、规格等都意图是说明性的而非限制性的。因此,本文公开的具体结构细节和功能细节不应当被解释为是限制性的,而是仅仅作为教导本领域技术人员以不同方式采用本发明的代表性基础。另外,在认为适当的情况下,可以在这些附图中重复附图标号以指示对应的或类似的要素。
因为本发明的示出的实施方案可在大多数情况下使用本领域技术人员已知的电子部件和电路来实现,所以为了理解和了解本发明的基本概念并且为了不混淆或转移本发明的教义,将不会以比所认为必要更大的任何程度解释细节。
说明书中对方法的任何引用都应以必要的变更适用于能够执行方法的系统。说明书中对系统的任何引用都应以必要的变更适用于可由系统执行的方法。
在整个说明书和权利要求中,除非上下文清楚地另有指明,否则以下术语采用与本文明确相关联的含义。本文使用的短语“在一个实施方案中”、“在一个示例性实施方案中”和“在一些实施方案中”不一定指代一个或多个相同的实施方案,尽管它可能指代。此外,本文使用的短语“在另一个实施方案中”、“在一个替代性实施方案中”和“在一些其他实施方案中”不一定指代不同的实施方案,尽管它可能指代。因此,如下文所述,在不脱离本发明的范围或精神的情况下,本发明的各种实施方案可容易地组合。
另外,除非上下文清楚地另有指明,否则如本文所用的术语“或”是包含性的“或”运算符,并且等于术语“和/或”。术语“基于”不是排他性的,并且允许基于未描述的另外的因素,除非上下文清楚地另有指明。另外,在整个说明书中,“一个(a)”、“一个(an)”和“所述”的含义包括复数引用。“在……中”的含义包括“在……中”和“在……上”。
如本领域技术人员应当理解的,本发明可体现为系统、方法、计算机程序产品或其任何组合。因此,本发明可采取完全硬件实施方案、完全软件实施方案(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施方案的形式,所述实施方案在本文中一般都可称为“电路”、“模块”或“系统”。另外,本发明的实施方案可采取体现在任何有形的表达介质中的计算机程序产品的形式,所述任何有形的表达介质具有体现在介质中的计算机可用程序代码。
可在由计算机执行的计算机可执行指令(诸如程序模块)的一般上下文中描述本发明。一般来说,程序模块包括执行特定任务或实现特定抽象数据类型的例行程序、程序、对象、部件、数据结构等。可在分布式计算环境中实践本发明,在所述环境中由通过通信网络链接的远程处理装置来执行任务。在分布式计算环境中,程序模块可定位在包括存储器存储装置的本地和远程计算机存储介质两者中。
可利用一个或多个计算机可用介质或一个或多个计算机可读介质的任何组合。计算机可用或计算机可读介质可以是例如但不局限于电子、磁性、光学、电磁、红外或半导体系统、设备、装置或传播介质。计算机可读介质的更具体实例(不完全列表)将包括以下各项:具有一个或多个导线的电连接件、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存存储器)、光学纤维、便携式光盘只读存储器(CDROM)、光学存储装置、诸如支持互联网或内联网的传输介质或磁性存储装置。应注意,计算机可用或计算机可读介质甚至可以是纸或其上印有程序的另一种合适介质,因为程序可通过例如对纸或其他介质进行光学扫描来以电子方式捕获,随后进行编译、解释或在必要时以合适的方式另外处理,并随后存储在计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是可包含或存储程序以供指令执行系统、设备或装置使用或与其结合使用的任何介质。
用于进行本发明的操作的计算机程序代码可用一种或多种编程语言的任何组合来编写,所述编程语言包括面向对象的编程语言(诸如Java、Smalltalk、C++、C#等)、常规程序性编程语言(诸如“C”编程语言)、以及函数式编程语言(诸如Prolog和Lisp)、机器代码、汇编程序或任何其他合适的编程语言。程序代码可完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立的软件包执行,部分地在用户的计算机上且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可通过使用任何类型的网络协议的任何类型的网络(包括例如局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可(例如,通过使用互联网服务提供商的互联网)连接到外部计算机。
下文参考根据本发明的实施方案的方法、设备(系统)和计算机程序产品的流程图图解和/或框图来描述本发明。应当理解,流程图图解和/或框图中的每个方框以及流程图图解和/或框图中的方框的组合可由计算机程序指令实现或支持。这些计算机程序指令可提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生一种机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令创建用于实现流程图和/或框图的一个或多个方框中所指定的功能/动作的手段。
这些计算机程序指令还可存储在可引导计算机或其他可编程数据处理设备以特定方式起作用的计算机可读介质中,使得存储在计算机可读介质中的指令产生一种制品,所述制品包括实现流程图和/或框图的一个或多个方框中所指定的功能/动作的指令手段。
计算机程序指令还可加载到计算机或其他可编程数据处理设备上以致使在计算机或其他可编程设备上执行一系列操作步骤来产生计算机实现的过程,使得在计算机或其他可编程设备上执行的指令提供用于实现流程图和/或框图的一个或多个方框中所指定的功能/动作的过程。
本发明可与许多通用或专用计算系统环境或配置一起操作。可适合与本发明一起使用的熟知的计算系统、环境和/或配置的实例包括但不限于个人计算机、服务器计算机、云计算、手持式或膝上型装置、多处理器系统、基于微处理器、微控制器或微型计算机的系统、机顶盒、可编程消费电子产品、ASIC或FPGA核、DSP核、网络PC、小型计算机、大型计算机、包括任何上述系统或装置的分布式计算环境等。
此外,本发明可在包括视频和静态相机、传感器等的系统中操作,诸如存在于在自动化工厂、自主车辆中、存在于诸如平板电脑和智能电话的移动装置、安装在电网中的智能电表和用于机器人网络的控制系统中。通常,可使用可托管代理的任何计算装置来实现本发明。
在图1中示出展示适于实现本发明的一个或多个部分的示例性计算机处理系统的框图。用于实现本发明的示例性计算机处理系统(通常标记为10)包括通用计算装置11。计算装置11包括中央处理单元(CPU)12、主机/PIC/高速缓存桥接器20和主存储器24。
CPU 12包括一个或多个通用CPU核14和可选的一个或多个专用核16(例如,DSP核、浮点、GPU和神经网络优化核)。一个或多个通用核执行通用操作码,而专用核执行特定于其目的的功能。CPU12通过CPU本地总线18耦接到主机/PCI/高速缓存桥接器或芯片组20。第二级高速缓存存储器(未示出)可耦接到芯片组中的高速缓存控制器。对于一些处理器,外部高速缓存可包括第一级高速缓存。桥接器或芯片组20通过存储器总线20耦接到主存储器24。主存储器包括动态随机存取存储器(DRAM)或扩展数据输出(EDO)存储器、或其他类型的存储器(诸如ROM、静态RAM、闪存和非易失性静态随机存取存储器(NVSRAM)、磁泡存储器等)。
计算装置11还包括通过系统总线26(例如,PCI)耦接到CPU的各种系统部件。主机/PCI/高速缓存桥接器或芯片组20交接到系统总线26,诸如外围部件互连(PCI)总线。系统总线26可包括使用多种总线架构中的任一种的若干类型的熟知的总线结构中的任一种。示例性架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和也称为夹层总线的外围部件互连(PCI)。
连接到系统总线的各种部件包括但不限于:非易失性存储器(例如,基于硬盘的数据存储设备)28、连接到显示器32的视频/图形适配器30、连接到一个或多个输入装置(诸如鼠标34、平板电脑35、传声器36、键盘38和调制解调器40)的用户输入接口(I/F)控制器31、网络接口控制器42、连接到一个或多个外部外围设备(诸如打印机54和扬声器56)的外围接口控制器52。网络接口控制器42通过可包括互联网云、局域网(LAN)、广域网(WAN)、存储区域网(SAN)等的网络44耦接到一个或多个装置(诸如数据存储设备46、运行一个或多个远程应用程序50的远程计算机48)。小型计算机系统接口(SCSI)适配器(未示出)也可耦接到系统总线。SCSI适配器可耦接到各种SCSI装置,诸如CD-ROM驱动器、磁带驱动器等。
非易失性存储器28可包括各种可移动/不可移动、易失性/非易失性计算机存储介质,诸如从不可移动的非易失性磁介质读取或写入不可移动的非易失性磁介质的硬盘驱动器、从可移动的非易失性磁盘读取或写入可移动的非易失性磁盘的磁盘驱动器、从可移动的非易失性光盘(诸如CD ROM或其他光学介质)读取或写入可移动的非易失性光盘的光盘驱动器。可用于本示例性操作环境中的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于盒式磁带、闪存卡、多功能数码光盘、数字录像带、固态RAM和固态ROM等。
用户可通过连接到用户输入接口31的输入装置将命令和信息输入到计算机中。输入装置的实例包括键盘和指向装置、鼠标、轨迹球或触控板。其他输入装置可包括传声器、操纵杆、游戏手柄、卫星天线、扫描仪等。
计算机11可通过连接到一个或多个远程计算机(诸如远程计算机48)在网络环境中操作。远程计算机可包括个人计算机(PC)、服务器、路由器、网络PC、对等装置或其他公共网络节点,并且通常包括上述元件中的许多或全部。此类联网环境在办公室、企业范围计算机网络、内联网和互联网中是常见的。
当用于LAN网络环境中时,计算机11通过网络接口42连接到LAN 44。当用于WAN网络环境中时,计算机11包括调制解调器40或用于通过WAN(诸如互联网)建立通信的其他装置。可位于内部或外部的调制解调器40通过用户输入接口31或其它适当机构连接到系统总线26。
计算系统环境(通常标记为10)是合适的计算环境的一个实例,并且不意图暗示对本发明的使用或功能性的范围的任何限制。计算环境也不应被解释为具有与示例性操作环境中所展示的部件中的任何一个或所述部件的组合相关的任何独立性或要求。
在一个实施方案中,适于实现本发明的系统和方法的软件还可驻留在云中。云计算提供不需要最终用户知道递送服务的系统的物理位置和配置的计算、软件、数据访问和存储服务。云计算涵盖任何基于订阅或按次计费的服务,并且通常涉及提供动态可扩展且经常虚拟化的资源。云计算提供商通过互联网递送应用程序,所述应用程序可通过网页浏览器访问,而商业软件和数据存储在远程位置处的服务器上。
在另一个实施方案中,适于实现本发明的系统和方法的软件适于驻留在计算机可读介质上。计算机可读介质可以是可由计算机访问并且能够存储以供实现本发明的方法的计算机计算机程序稍后读取的任何可用介质。计算机可读介质包括易失性和非易失性介质、可移动和不可移动介质。以举例而非限制的方式,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的易失性和非易失性、可移动和不可移动的介质。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、数字通用光盘(DVD)或其他光盘存储设备、磁盒、磁带、磁盘存储设备或其他磁性存储装置、或可用于存储期望的信息并且可由计算机访问的任何其他介质。通信介质通常体现计算机可读指令、数据结构、程序模块或其他数据,诸如磁盘驱动单元内的磁盘。适于实现本发明的系统和方法的软件也可全部或部分地驻留在静态或动态主存储器中或者位于计算机系统的处理器内的固件中(即,在微控制器、微处理器或微型计算机内部存储器内)。
也可采用其他数字计算机系统配置来实现本发明的系统和方法,并且就特定系统配置能够实现本发明的系统和方法来说,它等同于图1的代表性的数字计算机系统并且在本发明的精神和范围内。
当它们被编程为根据来自实现本发明的系统和方法的程序软件的指令执行特定功能时,这种数字计算机系统实际上成为特定于本发明方法的专用计算机。为此所必需的技术是计算机系统领域的技术人员所熟知的。
应注意,实现本发明的系统和方法的计算机程序通常将分发给分发介质(诸如软盘、CDROM、DVD、闪存存储器、便携式硬盘驱动器等)上的用户。从那里,它们将通常被复制到硬盘或类似的中间存储介质。当要运行程序时,它们将从它们的分发介质或它们的中间存储介质加载到计算机的执行存储器中,从而将计算机配置成根据本发明的方法起作用。所有这些操作都是计算机系统领域的技术人员所熟知的。
附图中的流程图和框图展示根据本发明的各种实施方案的系统、方法和计算机程序产品的可能实现方式的架构、功能性和操作。就这一点而言,流程图或框图中的每个方框均可表示代码的模块、片段或部分,所述代码包括用于实现一个或多个指定的逻辑功能的一个或多个可执行指令。还应注意,在一些替代性实现方式中,方框中提到的功能可以不按附图中提到的顺序出现。例如,连续示出的两个方框实际上可以大致上同时执行,或者这些方框有时可以按相反的顺序执行,这取决于所涉及的功能性。还应注意,框图和/或流程图图解中的每个方框以及框图和/或流程图图解中的方框的组合可由执行指定功能或动作的基于专用硬件的系统或者由专用硬件和计算机指令的组合来实现。
神经网络(NN)处理核
在非常高的级别上,ANN本质上是具有大量参数的函数,其在输入空间至输出空间之间进行映射。因此,ANN可被视为一系列计算。然而,ANN具有特定的内部结构和一组特性。考虑到这种独特的结构,神经网络(NN)处理器包括进行相同或类似数学运算的多个基本计算单元,所述多个基本计算单元在组合在一起时构成神经网络。
本文使用以下一组符号来唯一地描述网络:
ANN∝{X<S>,Y<T>,M<W>} (1)
其中:
X<S>表示输入数据集,其特征在于特定结构S;
Y<T>表示输出数据集,其具有由T指示的格式;
M<W>表示ANN模型,鉴于一组参数或权重(W),所述ANN模型是将输入映射到输出的函数;
在图2中示出展示示例性人工神经网络的图。示例性ANN(通常标记为350)包括四个网络层352,其包括网络层1至网络层4。每个网络层包括多个神经元354。输入X1至X14是对网络层1的输入。将权重358应用到网络层中的每个神经元的输入。生成一个网络层的输出,所述输出形成对下一个网络层的输入,直到生成最后输出359(输出1至输出3)。
在一个实施方案中,本发明的架构包括多层架构(即不指代ANN层),所述多层架构以其全部容量满足人工神经网络的计算需要。术语多层指的是类似于用于联网的熟知的ISO OSI层模型的方法,其以不同抽象级别描述了整体解决方案。
在图3中示出展示神经网络处理系统的示例性多层抽象的图。神经网络处理的等效模型(通常标记为410)包括六个层,其包括:层1(物理层412),其包括组成各种单元的物理原语;层2(单元层414),其包括成为神经网络基础的基本计算单元;层3(互连层416),其包括提供网络连接性的互连结构;层4(管理层418),其提供网络级别流控制、监测和诊断;层5(接口层420),其提供应用层接口并映射到架构原语;以及层6(应用层422),其包括基于神经网络的应用。
在图4中示出展示包括一个或多个NN处理核的示例性片上系统(SoC)NN处理系统的高级框图。SoC NN处理系统(通常标记为100)包括通过一个或多个合适的芯片到芯片接口可选地耦接到一个或多个另外的内部或外部NN处理器104的至少一个NN处理器集成电路(或核)102、适于将NN处理器耦接到各种片上系统元件108、微控制器单元(MCU)子系统118和一个或多个接口126的总线结构106。
在一个实施方案中,SoC 108包括自举电路块110、调试电路块112、电源电路块114和时钟电路块116。MCU子系统118包括控制器电路块120、指令存储器122和数据存储器124。接口126包括引脚复用器139和一个或多个熟知的接口,所述一个或多个熟知的接口包括相机串行接口(CSI)128、显示器串行接口(DSI)、以太网132、通用串行总线(USB)134、内部集成电路(I2C)接口136、串行外围接口(SPI)137和控制器局域网(CAN)接口138。应注意,这些接口作为实例示出,因为可实现不同接口的任何组合。
在图5中示出更详细地展示示例性NN处理核的高级框图。NN处理引擎或核60包括若干分层计算单元。最低层级是带有其自己的专用内部层1或L1存储器78的处理元件(PE)76,其中实现单独神经元。N个多个PE 76连同专用层2或L2存储器74组成称为子集群70的下一个层级。M个多个子集群70连同专用层3或L3存储器72、多个激活函数电路80和多个层控制器(LC)电路82组成集群66。多个L个集群连同专用层4或L4存储器64在NN处理器核60中,所述NN处理器核60还包括NN管理器电路62和到片外层5或L5存储器98的存储器接口68。多个总线接口86(即芯片到芯片接口)将NN处理器耦接到其他片外NN处理器芯片以获得另外的网络容量。总线接口84(即芯片到芯片接口)将NN处理器耦接到包括CPU 90、指令存储器92和数据存储器94的常规基于规则的机器(RBM)协处理器88。在替代性实施方案中,RBM协处理器通过合适的接口(例如,GPU、I2C等)可选地耦接到NN装置60。
应注意,在示例性NN处理器实施方案中,PE包括P=16个神经元,子集群包括N=64个PE,集群包括M=64个子集群,并且NN核包括L=8个集群。应当理解,NN处理器可实现为具有任何期望数量的层级以及每个级别内的任何数量的计算单元,并且不限于本文所述的仅出于展示目的而提供的实例。此外,任何数量的激活函数80和层控制器82可在集群级别或任何其他级别实现,这取决于NN处理器的设计目标和特定实现方式。
在一个实施方案中,NN管理器62是同驱动网络结构的功能一起控制以下两个数据管道的专用处理器:一个并行管道和一个串行管道。此处理器进行专用操作,这些操作是神经网络的控制平面本身的专用操作。示例性操作包括但不限于推断、训练、负载权重和更新权重。负载平衡和资源分配由外部软件工具链处理,所述外部软件工具链包括解决这些任务的一组工具,所述一组工具包括编译器、映射器和分配器。
在一个实施方案中,NN处理器包括用于存储权重的共享存储器,并且专用存储器元件用于存储上下文,从而实现相对较高的数据处理带宽。此外,NN处理器包括彼此严格分离且向计算元件提供带外控制的数据平面和控制平面。此外,NN处理器包括聚合级别之间的可配置互连器,以用于产生动态且可编程数据管路。
在另一个实施方案中,NN处理器能够并行实现多个ANN,其中每个ANN具有一个或多个网络层。NN处理器适于同时处理与ANN相关联的一个或多个输入数据流。由于NN装置的架构类似于ANN的结构,因此可将多个ANN视为单个宽ANN。应注意,在部署多个ANN时,鉴于足够的资源,外部工具链中的映射器操作来映射可用资源,同时NN管理器管理事件触发器。在这种情况下,由于装置的庞大并行性,在ANN的“层”内分组的每组资源彼此独立。
此外,NN处理器的计算元件操作来在输入数据流的子集的任何期望粒度下起作用,从而对存储器元件使用与延迟进行折衷,如下文更详细地描述的。
本发明的NN处理器在其实现方式中使用若干设计原则,包括:(1)准时使用系统资源;(2)根据需要动态分配系统资源;(3)利用时域和空间域来优化利用率和效率;以及(4)平衡可用系统资源上的负载。
应注意,本发明非常适合于实现ANN。通常,ANN是在三个阶段中实现的:建模、训练和推断,所述全部三个阶段在某种程度上由本发明的NN处理器解决。
关于建模,NN处理器能够静态地和动态地改变模型表示,从而反映其灵活性。使用“处理器”符号而不是“加速器”,因为后者通常先验地适于执行预定义的一组操作。关于训练,NN处理器支持即时且互补的训练操作,所述训练操作允许实现训练程序。这包括:(1)通过网络来回运行(即反向传播);(2)动态应用丢弃;以及(3)对层性能和不良行为检测进行即时评估。在推断模式期间,ANN以最佳且高效的方式执行,并应用于新的输入。
本发明的NN处理器对组合在一起的若干特征进行组合,以提供极高的计算速率、小的芯片占用面积、低功率消耗、可扩展性、可编程性和灵活性来处理许多类型的神经网络。
第一特征包括由计算单元提供的计算结构(或计算能力),所述计算单元被组织成各种聚合级别或层级,诸如PE、子集群、集群、NN核,如在本文公开的示例性系统中所描述的。计算结构包括基本计算元件,所述基本计算元件被配置为满足ANN的计算需要的特殊性质。计算结构的若干特征包括:(1)精益电路架构,从而允许实现相对大量的物理实体;(2)一次进行大量的乘积累加运算,其中加法作为累加执行;(3)数字表示的灵活性,包括整数和浮点以及不同的位宽;(4)四重乘法器支持,从而允许更高分辨率计算;以及(5)N路ALU支持,以用于提供优化存储器带宽的能力,即不是每个周期执行单个运算(诸如y←y+w*x),可实现更为复杂的运算(诸如y←y+w1*x1+w2*x2),这反映了硅复杂性的增加与所需的存储器访问减少之间的折衷。
第二个特征是控制平面和控制结构与数据结构的严格分离,这实现了控制的聚合以及整个数据结构(即数据平面)的非常“精益”或“微小”的控制。控制平面与数据平面分离,并且它因此可在使用相对少的控制线(例如在一些情况下通过单个控制线)来控制大量计算单元的意义上进行聚合。例如,考虑到PE中的乘法电路,单个控制信号同时发起数千个PE中的乘法运算。另外,控制平面的可编程性与数据平面的可编程性分离。NN核的数据结构的大规模并行性与控制平面的精益结构匹配。
这与带内控制的典型现有技术方法形成对比,在所述方法中,控制信号是接近数据施加的,这需要通过多个计算元件复制控制信号。此外,带外控制与传统的基于微控制器的技术形成对比,因为它不是基于冯·诺依曼机器的技术。
控制和数据结构分离的另一个优点在于控制仍然是可编程的。控制结构的非刚性实现方式和计算单元(即PE、子集群、集群等)的一般性质允许NN核处理多种类型的ANN(诸如卷积NN(CNN)、循环NN(RNN)、深度NN(DNN)、MLP等)、以及在卷积模式中实现的上述项的更复杂的实现方式和每一者的精细组合和特性(例如,步长、填充等)。
第三个特征是存储器结构的构造,包括存储器加窗。除了存储器的定位和分层结构之外,还与大量计算单元同时提供的是对存储器的高带宽访问。这是通过将特定计算单元的访问缩小到存储器的仅一小部分来实现的。因此,不提供对整个存储器的完全随机访问。而是,提供对存储器的仅相对较小的窗口的访问。这允许跨数千个计算单元同时访问,因此表示带宽与随机可访问性之间的折衷。由于单个计算单元存储器访问模式由ANN构造并明确限定,并且不需要对整个存储器的完全随机访问,因此访问可“被加窗”到仅该特定计算单元所需的那些少数存储块。因此,实现了极高的存储器带宽,由此数千个计算单元可同时访问存储器,与此同时,折衷是仅对是计算单元“本地”的存储器进行访问。
在一个实施方案中,NN处理器的架构包括控制平面和数据平面(或控制结构和数据结构)。控制平面负责配置并控制NN处理器中的所有数据计算单元。它包括数据流机器或处理器,所述数据流机器或处理器在一个实施方案中包括为神经网络操作定制的微代码。在本文所述的示例性NN处理器中,控制平面管理集群实体66,所述集群实体66用作下一个聚合层(即子集群70)的聚合器。子集群继而包括最基本的单元,即处理元件(PE)76,所述处理元件76由乘积累加(MAC)电路和本地存储器构成。PE层级包含存在于典型神经网络中的一组神经元实体。
在NN处理器中实现ANN的一个重要方面在于所有计算元件的控制和互连。本发明利用ANN中非常大量的计算元件。装置控制结构的一个特征在于它相对非常精益,因为它在大量计算资源之间共享。在一个实施方案中,NN处理器的特征是(1)数据与控制之间的严格分离,其中控制信令是在带外执行的并且不包括任何数据驱动的存储器访问;(2)控制与附加的计算资源之间的动态映射;以及(3)控制结构的灵活性和可编程性(即在编译时)。此外,NN处理器包括层控制器,所述层控制器包括微代码机器,其允许完全访问计算元件、存储器等的控制信令。
应注意,数据驱动的存储器访问指示涉及观察流动通过数据管路的数据的访问。NN处理器不需要这样。应注意,数据驱动的存储器访问在基于规则的机器中很常见,因为规则的性质依赖于数据,并且因此控制必须与数据交织在一起。例如,考虑语句:if(x>some_value)then do A。这意味着需要观察每个输入‘x’。相比之下,考虑将许多输入与阈值进行比较的机器。在这种情况下,微代码仅需要触发应用大量比较器的操作。然而,这种方法不能在RBM中采用,因为它意味着必须硬连线的大量操作,这否定了对机器进行编程的可能性。
相比之下,NN处理器使用极其有限的一组操作来在数据上操作。处理流的性质不涉及数据的值。因此,可聚合控制并利用相对较少的控制信号来驱动海量计算元件。例如,在NN装置中,需要64控制信号的控制总线来控制数千个计算单元。
在一个实施方案中,NN处理器被实现成使得功能性在需要其的若干聚合点处提供,如下文更详细地描述的。此外,NN处理器被配置为在计算和存储器资源方面大体平衡以确保系统实现最大利用率。
在NN处理器的容量对于特定神经网络来说不充足的情况下,总线接口86提供互连另外的NN处理器96以扩展超过单个处理器的限制。
在一个实施方案中,RBM协处理器子系统88被配置为支持不由NN处理器支持的一个或多个原语。此外,协处理器用作交换从ANN提取并指派给RBM的任务。
NN处理器基本上操作为数据流机器,这意味着计算仅基于数据的可用性来执行。数据流在层与层(类似于ANN中的层)之间划分。层内部的计算单元同步起作用(当数据在层的输入处准备好时开始并且当它们需要新的数据和/或需要将结果传递到下一层时结束),这时层的状态机器与前一层和/或下一层的状态机器同步。
作为一个实例,带有两个密集层的MLP网络可被映射为(1)从核外部接收输入的一个层、(2)表示神经网络层的两个层、以及(3)将结果发送到核外部的一个层。
在一个实施方案中,输入层进行等待直到它接收到所有输入(例如,用于熟知的MNIST数据集的784输入),并且然后就其输入已准备好向层1发信号。然后,层1执行所有需要的乘积累加(MAC)运算、激活函数,并且最终向层2发信号,所述层2继而重复相同步骤。当层2完成时,它向输出层发信号以将结果发送到NN核外部。
在另一个实施方案中,考虑到相同的网络,NN核在层1中在较小部分的输入数据上开始MAC,从而减少了输入层与层1之间所需的缓冲,这是以层1中状态机器的复杂性以及发信号期间的可能的计算效率损失为代价的。
数据在NN核中的集群66内部通过共享的L3存储器72传递,而信令通过专用互连器282(图11)执行,下文将更详细地描述。在一个实施方案中,在集群之间使用AXI4-流协议,所述协议处理数据平面和控制平面两者。为了防止闲置,层与层之间的互连器提供了双缓冲机制,使得一层将其输出写入一个缓冲器,同时第二层从第二缓冲器读取先前的输出作为其输入。
在一个实施方案中,在神经网络中使用数据流架构以及相对有限的一组基本操作使得能够显著降低控制分布的要求。
首先,关于正在执行的计算的大部分信息在限定了网络模型时是静态已知的,并且可因此先验地通过窄带接口加载,从而减少计算期间所需的控制线的数量。结果是,实现层的‘内核’的代码在针对每个网络模型恒定的准静态配置与在整个计算中变化的动态指令之间划分。
其次,每个动态‘指令’实际上包括指示层中的所有计算元件在每个周期中做什么的多个指令。由于每个计算元件具有相对简单的功能性,因此基本指令本身相对简单。在带外提供重复(即循环)和跳转指令,以避免浪费周期。
第三,计算的静态顺序与存储器中的适当参数排列相结合使得能够顺序访问存储器。因此,只需要用于访问存储器的地址增量指令而不是完全寻址。
第四,由于微代码非常紧凑,它可驻留在片上SRAM而无需预取、分支预测等。
第五,虽然层包括许多处理元件(PE),但是只需要一个中央状态机器以及仅存储子状态的较小从状态机器来控制整个层的计算步骤,其中所述状态机器中的每一个控制多个PE。在一个实施方案中,全局使能位开始执行所有状态机器,并且全局同步复位信号将它们返回到初始状态。应注意,复位对配置存储器和数据存储器没有影响,因为控制平面确保不使用无效数据。
应注意,术语‘模型’用于描述准静态配置,所述准静态配置限定NN核中所有计算单元的动态行为。模型通常类似于ANN模型,但可能存在其他类型的模型,诸如为调试目的而加载的模型或用于将权重加载到存储器中的模型。
配置空间在类似存储器的接口中暴露,其中使用分层地址空间对模块进行寻址。权重加载通常在配置模型之前执行,并且通过配置控制信令来实现,所述控制信令将权重复制到相关存储块中并设定使能位。然后在禁用集群时加载推断模型,使控制复位,并且最终启用集群。
存储器层次结构
在一个实施方案中,NN处理器的存储器结构被设计来满足ANN的固有性质。因此,存储器以分层方式构造,以便满足各种存储器消费者的需要。这些消费者包括:(1)层间数据(即跨层输入/输出);(2)层内信息(即上下文或中间结果);以及(3)权重。各种存储器层(例如,本文公开的示例性实施方案中的五个)从较小的、高效的、较本地化的存储器变为较大、较低效的全局存储器。
在一个实施方案中,利用以下内容组织和构造存储器结构:(1)存储器的本地化,其中计算元件需要访问本地数据,所述本地数据允许任何给定计算元件对预定义且有限的存储器实体的可访问性;(2)结构化的组织,由此存储器内容在给定的一致物质中先验地组织;(3)有限的回忆性质(即读取一次),其中大部分数据本质上是易失的,并且一旦被处理则被完全消费而在有限的程度上需要进一步访问它或无需进一步访问它;(4)管路式操作,在该处一个计算元件的输出数据用作另一个计算元件的输入数据。
如上所述,每个层级包含其自己的本地存储器。PE包括L1存储器,子集群包括L2存储器,集群包括L3存储器,NN核包括L4存储器,并且L5存储器位于SoC外部。下面在表1中呈现了一个示例性存储器层次结构。
表1:存储器层次结构
Figure GDA0004129717940000261
其中N表示子集群中的处理元件的数量,M是集群中的子集群的数量,并且L是NN处理器装置中的集群的数量。应注意,为每个存储器级别L1至L5指示的大小仅用于展示的目的。应当理解,在不脱离本发明的范围的情况下,可实现各种存储器层的任何期望的存储器大小。
应注意,下存储器层(例如,PE中的L1)的尺寸被设定得较小,但所述存储器层具有较大的带宽。上存储器层(例如,NN核中的L4)的尺寸被设定得大得多,但所述存储器具有少得多的通信量。
根据本发明,尽可能多的存储器被保持成尽可能近地接近需要它的位置,同时利用ANN中的存储器使用的局部性质来避免提供整个存储器与计算元件之间的全网状访问。为了克服上述策略所施加的限制,向消费者分配存储器是以“渐进”的方式完成的,使得具有具体角色的每个存储器级别在它需要更多资源时由更高级别补充,其中更高级别存储器用于ANN中具有不同要求的多个层之间的‘资源负载平衡’。
应注意,在一个实施方案中,这种‘溢出’是准静态特征,因为资源需求在选择模型时就已经知晓,并且因此不需要复杂的仲裁。此特征允许在每层中静态分配显著较少量的存储器资源,因为它们是根据标称情况而不是最坏情况分配的。
此外,存储器的“逐渐”分配的特征还在于上面简要描述的滑动窗口机制,其用于L3存储器中并在下文中更详细地描述。
处理元件(PE)
在一个实施方案中,基本计算单元是处理元件(PE)。在图6中示出更详细地展示示例性低级处理元件(PE)的框图。PE(通常标记为140)包括由乘法触发器177控制的一个或多个乘法器142、由加法器触发器171控制的加法器144、包括多个寄存器152的L1存储器150、由目的地控制175控制的目的地复用器146、由源控制173控制的源复用器148、由输出混洗控制178控制的写入复用器154、以及由输入混洗控制179控制的读取复用器156。
来自输入存储器158的输入(x)数据161和来自权重存储器160的权重(w)163分别根据输入控制和权重控制提供给一个或多个乘法器142。
神经网络中神经元的最基本的数学运算由以下限定:
Figure GDA0004129717940000271
其中:
x(i)指示输入数据集,其被组织成1D向量;
w(i,j)指示表示对输出j的第i个输入贡献的权重;
σ表示激活函数,其通常是非线性标量函数;
基本计算单元是PE并且包括反映神经元的内在操作的乘法/累加实体。中间结果或成果存储在L1存储器150中,所述存储器150是PE本地的。在本文所述的实例中,L1存储器具有特定的深度和宽度,例如,神经元的数量P=16,所述神经元中的每一个是16位宽。应当理解,可使用具有任何期望的深度和宽度的L1存储器。L1存储器的深度P反映了PE可处理的同步‘神经元’或‘上下文’的数量。应注意,可通过将另外的神经元的中间结果存储在L2/L3存储器中来处理多于P个神经元(即上下文)。延迟受到影响,因为需要另外的时间来处理另外的神经元。提供P个神经元既通过将计算构造限制到绝对最小值来利用空间域,同时还通过存储多个上下文来利用时域。
处理内部上下文的能力提供了许多能力,诸如:(1)将多个逻辑神经元指派给单个物理神经元的能力(每个上下文存储一个神经元的输出);(2)存储相同输入的多个中间结果,从而导致同时操作以及不同版本的权重的假设测试(例如,反向传播结果、基于梯度的校正值等);(3)为了应用网络委员会的共同方法和多数票提取的目的,进行相同输入的多线程推断;(4)在资源可用时运行多个网络;以及(5)基于由NN管理器管理的整体网络容量进行的负载平衡。
在操作时,反映神经元功能性的上面的等式2在多个时间实例上传播并且如下文列表1中提供的那样实现。应注意,这仅是示例性实现方式,因为可通过将不同的微代码加载到层控制器(LC)642(图20)来使用其他序列。
列表1:神经元功能性
Figure GDA0004129717940000281
/>
Figure GDA0004129717940000291
参考图6,PE包括针对权重(w)和输入(x)单独控制的计数元件以及对加法器和乘法器的表示格式的单独控制。它还包括单独控制的入口/出口L1条目索引,其允许操纵计算的顺序。累加函数的中间结果本地存储在L1存储器寄存器152中。此外,初始化期间的预处理使得L1存储器能够预加载有默认值(例如,先前的中间结果、偏置值等)。PE还包括中间存储器聚合控制,即分配步长。此外,激活函数被聚合以最小化面积开销,并且不是在PE或子集群级别实现,而是在集群级别实现。PE还支持激活旁路以允许级联。
预合成可配置性允许:(1)N路乘积累加(即Y=Y+A1*B1+...+AN*BN);(2)表示格式跨度(例如,每个条目支持k0...kN位,其具有m位尾数和e位指数,其中k=m+e);以(3)选择本地存储深度P。
在操作时,PE内的数据流相当灵活。加法器144的输出151可使用目的地控制175通过目的地复用器146转向以(1)通过路径162到激活函数;(2)通过路径164到L2或L3存储器;或(3)通过路径166到源复用器148。源复用器148通过源控制173选择(1)来自加法器的输出;或(2)来自L2或L3存储器168的中间结果。写入复用器通过输出混洗选择178选择神经元寄存器152中的一个,以通过P个路径172中的一个写入源复用器的输出。写入L1存储器的数据通常包括由于在许多周期期间执行的乘积累加运算而生成的中间结果。
通过将神经元寄存器连接到读取复用器156并通过输入混洗控制选择179选择的P个路径174中的一个从L1存储器中读出数据。读取复用器的输出176形成对加法器144的两个输入中的一个。对加法器的另一个输入是乘法器142的输出。应注意,在实现多个乘法器142的情况下,预加法器(未示出)用于使乘法器的输出相加以生成单个和,所述单个和然后输入到加法器144。
在图7A中示出更详细地展示第二示例性低级处理元件(PE)的框图。如上所述,PE是NN处理器的最基本的计算元件。ANN的神经元在PE中实现,基本上在L1存储器中实现。处理元件(通常标记为450)包括输入数据表示电路452、乘法器电路454、表示转换/舍入电路456、累加器(即加法器)458、L1存储器460、否定电路472和复用器474。
在操作时,输入数据(X)468和权重(W)470是从L3存储器到输入数据表示电路452的输入。此电路操作来根据INT/Fp信号462(其也输入到乘法器)将输入数据和/或权重的表示从整数转换为浮点(FP)格式,并且反之亦然。所得的X 504和W 506被输入到乘法器454。应注意,图6和图7A所示的两个PE实施方案中的任一者可用在本发明的NN装置中。
在一个实施方案中,乘法器包括并行操作的若干乘法器。乘法器能够乘以整数和浮点数。输入数据和权重的有效位数也可不同,如分别由控制输入464、466设定的。乘法器486的乘积输出被输入到表示转换/舍入电路456。FP累加器和FP输入端分别控制输入508、510,就乘积是整数还是FP格式向电路456发信号。另外,电路456用于在输入到累加器之前执行乘积的舍入。
电路456的输出488输入到累加器(加法器)458。对累加器的第二输入496包括来自L2或L3存储器的上下文(即中间结果)490或本地L1存储器460的输出。复用器474根据SEL476在两者之间进行选择。输出494输入到否定电路472,其中,根据否定控制478,输出496在输入到累加器之前进行否定。
对累加器的另外的配置控制包括累加器移位信号(accumulator_shift)498、累加器启用(accum_en)500和FP累加器502。累加器的输出484被写入L1存储器。L1存储器还包括L1输出选择480和零跳过482。从L1存储器输出的中间结果(即上下文)通过路径493输入到累加器或者通过路径492写入L2或L3存储器。在一个实施方案中,累加(即中间)结果被顺序地写入L1存储器并从L1存储器读取,即不存在对L1存储器中的神经元寄存器的随机访问。应注意,除随机之外,可使用任何合适的预定义模式(例如,顺序(逐个)、跳过一个、跳过两个等)来访问L1存储器。这极大地简化了访问神经元寄存器所需的寻址。此外,如果没有足够的本地L1存储器可用于特定ANN,则提供进出L2和L3存储器层的通路。在这种情况下,中间结果存储在较高的存储器层中以适应特定的ANN。然而,折衷是在访问较高存储器层时的延迟增加。
在替代性实施方案中,通过组合四个低精度(例如,8位)乘法器来产生高(或双)精度(例如,16位)乘积,可执行较高精度的乘法(例如,16位)。图7B中示出更详细地展示PE的四重乘法器的框图。四重乘法器(通常标记为870)包括四个较低精度(例如,8位)乘法器872,即Q0、Q1、Q2和Q3。对四重乘法器的输入是:双倍精度输入X,其由两个低精度(例如,8位)值组成,即XL873和XH871;以及双倍精度权重W,其也包括两个低精度(例如,8位)值,即WL880和XH882。
在操作时,每个基本单元Qi接收低精度(例如,8位)W和X值并且基于此,四重乘法器电路生成结果Y←Y+W*X.。考虑到双倍精度X和W值,我们将权重、输入数据和输出的上部和下部分别表示为WH882、XH871、YH876和WL880、XL873、YL875。还生成三个进位C0 874、C1 878和C2 879。
将Y←Y+W*X扩展成
(YH<<16+YL)←(WH<<8+WL)*(XH<<8+XL) (3)
产生以下
YL←WL*XL+[(WL*XH+WH*XL)<<8]L+C0<<9 (4)
YH←WH*XH+[(WL*XH+WH*XL)<<8]H+C1<<9+C2<<9 (5)
应注意,每个输出YL和YH表示一个16位数以产生32位乘法乘积Y。应当理解,可使用另外的乘法器以及输入、权重和进位分量的合适组合获得具有更大精度的结果。
子集群
在图8中示出更详细地展示第一示例性子集群的高级框图。子集群(通常标记为180)包括N个多个PE 182(每个单独PE 182包括本地L1存储器184)、互连结构186、分成多个分配的存储块190的专用本地L2存储器188、配置和解码块192和控制/数据信号181。配置/解码电路192从外部控制总线194接收指令。每个子集群180还与输入/输出对准电路196和激活电路198通信,所述输入/输出对准电路196和激活电路198在本文呈现的示例性实施方案中位于集群层级中,如下文更详细地描述的。
在一个实施方案中,子集群的功能是聚合N个多个PE,例如,N=64。子集群中的所有PE都属于神经网络的同一层,这极大地简化了所需的控制逻辑。例如,除了先验的静态配置之外,不需要逐周期操作的控制。
此外,子集群封装下一级别存储器层次结构,即存储层间和中间结果的L2存储器层。在一个实施方案中,它还包括激活函数电路(即,由上面的等式2中的σ表示)。然而,为了效率,示例性NN核将激活函数移动到集群级别。激活函数无论其位置如何都接收神经元的输出,并且每N次乘积累加运算被触发一次。应注意,激活函数电路的数量和位置被选择成反映硬件的最佳利用率。
子集群的若干特征包括:(1)用于管理存储器访问的分布式控制方案;(2)L2存储器的权重和中间结果的动态分配;(3)用于无缝增大L1存储器的固有的中间结果混洗支持;(4)以层为中心的信息和诊断存储;(5)以层为中心的预处理;(6)以层为中心的后处理;以及(7)层内分割支持(例如,用于量化细分)。
在图9中示出更详细地展示第二示例性子集群的高级框图。虽然图8反映了子集群的主要是逻辑的视图,但图8反映了更为物理的视图。子集群(通常标记为200)包括专用本地L2存储器210、每个具有其自己的L1存储器214并且接收启用EN 211、PE控制信号213和PE配置信号215的N个多个PE 212、输入互连器206、输出互连器208、从子集群控制总线230接收指令并输出L2_cbus 236的子集群配置202、以及接收层控制232和组控制234并且输出地址ADDR238、启用EN 240和选择SEL 242的子集群解码器204。
在操作时,根据控制信号201,从集群级别的L3存储器向输入互连器206提供输入数据216和权重218。输入互连器将输入数据244和权重246馈送到PE 212。零跳过(zero_skip)信号217通知PE输入数据或权重具有零值,并且因此不需要乘法和加法运算。应注意,权重220也可来自本地L2存储器210,其接收地址ADDR 205、启用EN 207和控制L2_cbus209。
一旦PE中的神经元已经累加特定层所需的计算,则现在表示中间结果248的神经元的内容被读出并通过控制信号203输出到输出互连器208。然后,中间结果可通过路径226写入本地L2存储器,或者通过路径221、复用器222和路径228写入L3存储器。另外,中间结果224可从L2存储器读取,并且通过复用器222传输到L3存储器或者传输到输出互连器,然后所述输出互连器通过路径249将其转发到PE。
因此,每个子集群包括灵活且可编程的路径,所述路径用于将输入数据和权重馈送到PE中的神经元,以及使来自神经元的中间结果向和从L2或L3存储器转向。
在一个实施方案中,子集群专用于执行单个ANN层或其一部分。它的功能是从L3存储器接收外部输入,利用来自本地L2存储器或外部L3存储器的权重执行乘法和加法,将中间结果(也称为“上下文”)存储在PE L1存储器中(或在L1存储器不足时存储在本地L2存储器中),并且最后将结果发送到外部激活函数进行归一化和激活。
子集群解码器204用于将来自子集群配置202的静态输入与动态输入(公共层控制和定时组控制)相结合。它存储的状态包括保存以下寻址的计数器:(1)权重读取/写入地址;(2)上下文读取地址;(3)上下文写入地址;(4)激活源地址(PE输出到其以用于读取)。
输入互连器操作来(1)在外部权重(即L3存储器)或本地权重(即来自L2存储器)之间进行选择;(2)选择权重存储器的宽度,即所选权重的数量和存储器的深度,其中最大宽度允许所有PE从L2存储器或从L3外部存储器接收不同的权重;(3)从所选权重源中选择要传递给PE的权重(使用地址的MSB);选择输入总线的宽度;并且(4)从所选输入源选择要传递给PE的输入(使用地址的MSB)。
应注意,L2存储器210用于在同一块中存储权重和上下文。权重地址从零开始并向上计数,而上下文地址从存储器的末端开始。控制平面有责任防止溢出。
集群
在图10中示出更详细地展示第一示例性集群的高级框图。集群(通常标记为250)包括M个多个子集群(每个子集群266具有其自己的L2存储器268)、分成多个分配的存储块264的专用本地L3存储器262、适于将L3存储器与子集群交接的存储器管理单元(MMU)260、包括控制同步器254和多个层控制电路256的管理和控制块252、多个输入对准器274和多个激活函数电路276。输入/输出(I/O)端口270将每个集群与集群间交叉连接交换机272交接。
在一个实施方案中,集群是通常表示多于一个的神经网络层的下一级别的聚合。它包含其中包含PE基本计算实体的子集群以及子集群之间的互连结构。这通过控制子集群之间的连接性为NN核提供了表示不同神经网络模型的灵活性。L3存储器262用于将层间结果存储在一个或多个分配的存储块264中。
集群的若干特征包括:(1)用于管理存储器访问的分布式控制方案;(2)用于支持将总共M个子集群表示成多个层的灵活可配置路由矩阵;(3)L3存储器的权重和中间结果的动态分配(相对不频繁);以及(4)用于允许数据流节流和负载平衡的层间控制。
另外的特征包括:(1)权重/输入数据平衡;(2)前后处理块;(3)动态总线宽度和存储位单元;(4)MMU中的输入数据和权重互换性;(5)提供事件驱动行为和管路输送的能力;(6)控制与数据平面分离;(7)可选的零管路输送能力;以及(8)运行时配置修改的平衡能力。
在图11中示出更详细地展示第二示例性集群的高级框图。集群(通常标记为280)包括集群互连电路282、输入缓冲器284、输出缓冲器292、M个多个子集群306、子集群互连器304、多个激活函数/池化电路300、多个输入对准器电路302、和包括多个分配的存储块298的L3存储器296。
输入数据和权重286存储在输入缓冲器284中。输入数据和权重288从输入缓冲器输入到集群互连282。输入数据305和权重307也可写入L3存储器296并从L3存储器296读取。来自集群互连的输入数据281在输入到子集群互连器304之前输入到对准器电路302。输入数据285从子集群互连器馈送到子集群306,而来自子集群的输出283发送到子集群互连器。输出309输入到激活函数/池化电路300,其中结果输出308输入到集群互连282。输出数据290写入到输出缓冲器292。数据输出294然后发送到其他集群或片外。
在一个实施方案中,NN核并行地支持多个神经网络。每个集群操作来暴露控制接口(例如,时钟、复位、启用等)、配置接口(类似存储器)和数据接口(例如,高级可扩展接口(AXI))。每个集群适于实现一个或多个ANN层,其可能来自多于一个ANN。AXI互连器暴露控制接口,并且用于连接集群、NN核中ARM控制器的DMA引擎和外部端口。ARM通过DMA引擎、集群和互连器的控制和配置接口以及外部标准接口暴露AXI接口。
在一个实施方案中,集群包括:(1)配置电路;(2)存储器管理单元(MMU);(3)控制互连器;(4)触发器互连器;(5)多个子集群;(6)多个层控制器(LC);(7)多个专用单元;(8)多个输入单元;(9)多个输出单元;以及(10)多个存储块(即L3存储器)。
在一个实施方案中,集群并行地支持可能来自多个ANN的多个ANN层。应注意,网络层可实现为层控制器(LC),所述层控制器具有通过控制互连器连接的一个或多个子集群或其内包含控制的具体单元(专用、输入或输出)中的一个。层使用用于通过触发器互连器进行流控制的信令、通过L3存储器296中的分配的存储块298传送数据,所有这些都由配置限定。分配的存储块也用作子集群的权重存储器。从各层到L3存储器的所有控制信号都由MMU260使用配置从虚拟地址转化成物理地址。
MMU使用两个通信端口组(诸如L3存储器的读取端口与子集群的输入端口)之间的滑动重叠窗口机制。每个子集群可从围绕其在子集群列表中的相对位置的一组存储器端口中选择其输入。窗口机构在下文中更详细地描述。
为了能够高效地利用NN核中的管路,每个ANN层的子集群的分配优选地与每次馈送的ANN层中所需的计算的数量成比例。分配由控制互连器确定,所述控制互连器将子集群映射到LC。映射在两个级别中执行:(1)通过滑动重叠窗口机制(即类似于MMU中使用的机制)将每个子集群指派给LC;(2)将子集群指派给ANN层内部的定时组。定时组随时间推移传播需要公共资源(诸如激活后使用的L3的写入端口)的动作。ANN层可包括一个或多个定时组,每个定时组包含一个或多个子集群。在所有定时组中常见的控制不通过第二选择级别,从而降低了电路的复用复杂性。
在一个实施方案中,ANN层之间的发信号机制基于两条双向线,其关于它们之间的双缓冲器的状态进行协商。因此,需要两条双向线来连接两个连续的层,即每层使用四条双向线,两条用于前一层,并且两条用于下一层。两个反向信号指示缓冲器是否准备好接收层之间的两个缓冲器中的每一个的新数据,并且两个正向信号指示缓冲器中的数据是否对两个缓冲器都有效。为了简化接口,控制器可使用专用指令在两个方向上翻转两个缓冲器(即有源和无源)的含义。
在图12中示出更详细地展示集群间交叉连接器的高级框图。集群间互连结构/交叉连接器(通常标记为430)包括实现集群436之间的通信的多个复用器432和分路器440。在一个实施方案中,每个集群J包括多个端口,所述多个端口包括输入端口396和输出端口398。在实例中示出四个输入端口和四个输出端口,但可实现任何数量。
输入侧上的复用器432由SEL线438控制。每个复用器的输入434包括来自相邻集群(例如集群J-2、J-1、J、J+1)的输出线。来自每个复用器的输出444输入到集群中的单独输入端口396。类似地,输出侧上的分路器440生成输出442,所述输出442馈送到相邻集群(例如,集群J-1、J、J+1、J+2)的输入线。来自集群的每个输出端口398的输出446输入到单独的复用器440。NN管理器392用于控制交叉连接器430的配置。在一个实施方案中,有意地限制从一个集群到另一个集群的可能连接以减少寻址和控制路由并改进带宽。例如,通过输入434到集群J的连接限于集群J-2、J-1、J和J+1,即仅限于相邻集群(和它们自身)。类似地,从集群J到输出442处的连接限于集群J-2、J-1、J和J+1。应注意,虽然与其他集群的直接连接受到限制,但任何集群仍然能够通过遍历一个或多个中间集群间接地与任何其他集群通信。
应注意,交叉连接发生在所有级别,从集群级别开始,经过NN处理器核的最高级别以及装置到装置之间。NN处理器中的L个集群使用循环互连结构连接,所述循环互连结构使得来自一个集群的输出端口能够映射到相邻集群。交叉连接器还能够将集群的输出路由到自身(即自路由)。应注意,交叉连接器中的访问范围是可配置的,并允许在设计复杂性与可访问性之间进行折衷。还应注意,“分散/聚集”机制允许将输出(即通过分路器)分成多个副本,使得相同的输出并行地馈送多个输入。NN管理器392通过控制线431提供交叉连接器的控制。
滑动重叠的存储器加窗
在图13中示出展示第一示例性存储器加窗方案的图。为了保持灵活性,处理器中的每个存储器消费者都能够访问不同的存储器段以进行数据交换。术语存储器加窗是指一种方案,由此计算元件或实体仅被给出对可用存储器资源的某个子集的访问而不是对更宽范围的存储器资源的访问。使用存储器加窗方案限制计算元件对存储器的访问显著地改进了可用带宽,同时大大减少了所需的地址和控制路由。应注意,存储器结构可动态地重新布置存储器加窗方案,由此计算元件可访问的存储器资源是可编程且可配置的(例如,在编译时、运行时等)。加窗方案基于下文更详细描述的分散/聚集技术。
在所示的实例(通常标记为580)中,两个计算元件582访问存储器资源584、586、588。没有任何计算元件可访问整个存储器,而只能访问有限窗口。这是因为计算元件永远不需要一次访问整个存储器结构。应注意,加窗可针对控制、入口数据、出口数据和权重而有所不同。此外,窗口通常重叠以实现共享和管路输送。此外,存储器资源自身是多用途的,其中它可用于存储多于一种类型的信息。
在展示性实例中,计算元件1的控制跨越存储块584、586和588,这由控制1箭头590指示。计算元件1包括到存储块586的入口数据窗口,其由入口数据箭头592指示。类似地,计算元件1包括到存储块588的出口数据窗口,其由出口数据箭头594指示。权重存储在存储块584以及存储块588中,所述存储块588还用于存储出口数据。以类似的方式,其他计算元件也包括控制、入口、出口和权重窗口。例如,计算元件2包括跨越存储块588以及一个或多个其他存储块(未示出)的控制窗口596。
在图14中示出展示第二示例性存储器加窗方案的图。在一个实施方案中,流动通过NN处理器中的计算元件的数据是管路输送的,其中子集群中的PE接收数据作为输入并生成输出,所述输出然后用作一些其他子集群的输入以用于后续计算。各层中的存储器尽可能地被本地化并且被利用来使每层服务的计算元件的可访问性和效率最大化。由于计算元件仅需要访问存储器的有限子集,因此路由(即,地址线、控制等)可限于交叉连接器存储块和实际需要的计算元件。图15、图16和图17展示存储器访问窗口的可配置性,每个资源的分配通过此来管理并配置,并且配备有解决特定需求的资源。
窗口存储器方案(通常标记为340)包括多个子集群348(每个子集群348包括多个PE 349)、L3存储器(未共享的)342和L3存储器(共享的)344。在操作时,子集群从L3存储器的未共享的一部分接收权重信息345。从来自L3存储器的共享部分的分配的存储块346接收到子集群的输入数据341。子集群内的PE处理权重和输入数据并生成输出343。然而,输出写入不同的(例如,相邻的)分配的存储块(即,不是从中读取输入的存储块)。然后将这些输出作为到另一个子集群(例如,ANN的后续层中的神经元)的输入读取。以这种方式,ANN输入数据347输入共享L3存储器,从分配的存储块读取,由一个或多个子集群中的PE处理,输出到相邻存储块,并且在遍历ANN中的各层之后最终从共享L3存储器输出为ANN输出数据349。
然而应注意,子集群对L3存储器不具有直接随机访问能力,而是仅对分配的存储块的邻近处或附近具有所述访问能力。例如,子集群H可访问子集群H-2、H-1、H(自身)和H+1子集群。这大大降低了存储器访问的寻址和控制路由要求。因此,每个子集群只能‘看到’足以供其PE执行它们的功能的相对较小的存储器窗口。
在图15中示出展示计算元件和存储器元件窗口大小与计算机访问可配置性之间的第一示例性存储器可访问性的图。此图展示了存储器加窗方案,由此计算元件以及存储器元件可有限地访问彼此。例如,考虑存储器元件1至D和计算元件1至E。阴影线遮挡区域520表示每个元件可访问的资源。因此,计算元件1至3只可访问存储器元件1至12。类似地,存储器元件1至12只可连接到计算元件1至3。如图所示,计算元件可访问的存储器元件形成彼此重叠的滑动访问窗口。访问窗口具有可以动态配置而不是硬连线或固定的大小(即跨度)和具体连接性。一个关键特征在于任何单个计算元件都不可随机访问整个存储器。相反,每个计算元件只可访问存储器元件的一部分,例如相邻存储器元件或附近的存储器元件。存储器的计算元件不可访问的部分由白色区域522表示。
还应注意,存储器可访问的计算元件的数量是可编程且可配置的,如由竖直箭头523表示的。类似地,计算元件可访问的存储器元件的数量是可编程且可配置的,如由水平箭头521表示的。
在图16中示出展示计算元件与存储器元件之间的第二示例性存储器可访问性的图。此图展示计算元件与存储器元件之间的访问不限于连续的窗口。相反,访问可以是不连续的,这在一个实施方案中使用虚拟到物理的映射来实现。无论手段如何,可访问区都具有有着有限且预定义范围的矩形形状,其指示计算元件与存储器元件之间的访问是受限的且有限的,即此类区不会覆盖整个地址空间。
在图17中示出展示示例性的基于分散/聚集的资源加窗技术的图。出于展示目的,示出了示例性集群530的一部分。然而,所述技术不限于在集群中使用,并且可在NN处理器中任何地方使用。考虑两个资源A 532和B 538,其中资源可包括任何期望的电路,例如计算、存储器、控制元件等。为了限制访问,每个资源A 532的输出输入到分路器534并且到每个资源B 538的输入是复用器536的输出。分路器的输出仅转为有限数量的复用器输入,因此提供有限的连接性,而不是提供全网状连接性。例如,资源A1的输出仅输入到资源B1和B2。类似地,资源A2的输出仅输入到资源B1、B2和B3,并且资源A3的输出仅输入到资源B2和B3。以这种方式,每个B资源仅连接到A资源的小窗口。因此,100个A资源与50个B资源之间的访问(资源的数量仅是一个实例)形成滑动窗口,其中有限数量的A资源在重叠滑动的基础上与有限数量的B资源连接。
分路器和复用器的控制由层控制器(LC)548提供。LC的控制线549输出输入到控制结构544中的一系列复用器546,所述复用器根据源自LCU并且可在LC内进一步解码的SEL线547从LC中选择一个控制。复用器546的控制诸如在编译或运行时是可编程且可配置的,从而实现A资源与B资源之间的灵活映射。
根据本发明,NN处理器的存储器访问结构的特征在于能够以基本上较高的并行度操作。这是计算资源与附接到它们的存储器之间的固有的映射分离的优点。例如,权重仅显式连接到相关的子集群。然而,一个例外是共享分配的存储块并发生冲突的情况。虽然这种事件通常很少见,但NN处理器提供了解决冲突导致的争用的能力。在一个实施方案中,在控制层解决存储器争用,其中共享公共存储块的两个计算实体在信令级别处理冲突避免,如下所述。应注意,反压通常是暂时的且短暂的,并且整个总带宽由NN处理器的设计保证。
在图18中示出展示示例性存储器争用解决方案的框图。存储器争用解决电路(通常标记为600)包括L3存储器602(其包括多个存储块632)、MMU 626、LCU A 604、LCU B 606、形成ANN层G 614的一个或多个子集群618、以及形成ANN层G+1 616的一个或多个子集群620。
在此展示性实例中,ANN的层G和层G+1两者都向和从L3存储器中的存储块634读取和写入数据。层G的输出用作层G+1的输入。然而,偶尔两个层可能会同时尝试访问同一个存储块。这由标有“X”的存储块636指示。当发生对同一存储块的争用时,MMU 626检测到所述事件并在它们各自的LC中生成对LCU(在这个实例中为A和B)的争用警报608。响应于争用警报,LCU中的一个生成停止命令610、612,所述停止命令610、612输入到子集群。接收停止命令的子集群禁止访问L3存储器中的存储块,直到完成读取或写入操作。
应注意,存储器争用总是发生在ANN层之间而不是一个层内,因为在一个层内,构成所述层的子集群被配置成使得永远不会发生对存储器的争用。通常,当一个层正在写入而另一个层正在读取时会发生争用。响应于争用警报,可禁止写入或读取操作。在一个实施方案中,禁止写入操作,因为ANN的性质在于写入操作是罕见得多的事件。此外,禁止读取操作会使数据处理管路的很大一部分停止。因此,禁止写入操作而不是读取操作。向要禁止的层发出停止信号(610到层G或612到层G+1)。还应注意,是否禁止写入或读取操作的决定在编译时是先验地可编程且可配置的。
层控制器
在图19中示出更详细地展示示例性层控制器的高级框图。层控制器(LC)(通常标记为310)包括层控制单元(LCU)314,其负责解码并执行从指令存储器312读取的微代码指令311。根据指令,一个或多个命令信号313输出到各种控制和解码块,所述控制和解码块包括输入对准器控制316、激活控制318、输入地址解码器320、权重地址解码器322、输出地址解码器324和PE控制326。来自这六个块的控制和地址信号分别输出到输入对准器328、激活函数电路330、输入存储器332、权重存储器334、输出窗口335和控制窗口336。PE控制信号315从控制窗口336输出到子集群338中的PE电路。
在图20中示出更详细地展示L3存储器和子集群的层控制器接口的高级框图。示例性集群(通常标记为640)包括L3存储器644、LC642、多个子集群662、后处理器666、以及用于控制、写入数据、读取数据和权重的加窗,如上文结合图17所述。LC 642包括LCU 656、一个或多个预处理器652、指令存储器654、一个或多个解码器电路658和MMU 660。
特别地,控制加窗包括电路674和控制线684;权重加窗包括电路646、648和信号线650;入口数据加窗包括电路676、678、672和信号线690、692;出口数据加窗包括电路680、682、668和信号线686、688。应注意,访问L3存储器的入口窗口和出口窗口重叠,如虚线所指示的。由LCU和解码器生成并输入到窗口电路674、646、648、676、678、672、680、682和668的存储器窗口控制(MWC)信号670提供对加窗的控制(即,针对分路器和复用器进行选择)。
在操作时,从L3存储器读取入口数据并将其输入到预处理电路652。这些电路用于可选地重塑数据,对输入数据执行操作,例如移位等。预处理的数据输出到子集群,其中PE664使输入数据与也从L3存储器读取的权重相乘。中间结果(即上下文)通过存储器加窗从子集群输出到后处理电路系统666。后处理电路是数据处理管路的一部分,并且操作来应用激活函数并且可选应用对准。
应注意,每个LC都指派了一个或多个子集群,这些子集群组成ANN中的一个层。每个集群包括多个LC(例如,八个)。因此,所示的子集群662仅是每个集群内的M个子集群的子集,其中每个LC控制可使用上述相同的加窗概念选择的不同组的子集群。此外,子集群内的N个PE不会被分开,这意味着子集群中的所有PE被控制为单个单元。这简化了计算元件的控制并允许相对精益的控制信令,因为只有少数控制线控制大量的PE并最终控制神经元。类似地,解码器电路658中的每一个被配置为控制不同组的存储块。在一个实施方案中被编码的控制信号698由LCU生成并输入到解码器电路658。LCU自身由指令存储器654的内容控制。每个指令的执行导致编码的控制信号的生成,所述解码的控制信号然后由解码器解码并通过控制窗口电路674输出到计算元件。应注意,除了控制子集群中的计算元件的控制信号之外,LCU还生成也用于控制控制窗口(连同权重、入口和出口数据窗口)的控制信号(即MWC选择控制)。当配置时(在编译时),静态路由控制信号、权重、入口和出口数据。MMU 660生成用于L3存储器加窗的控制信号,并且用于执行虚拟到物理的映射。它还用于响应于ANN中两个层之间的存储器争用事件而生成争用警报694。如上所述,LCU通过向其中一个层发出停止命令来解决争用事件。
在图21中示出更详细地展示第二示例性层控制器的高级框图。示例性LC(通常标记为550)包括指令存储器552(其包括多个指令554)、LCU 556、指令解码器566、触发器窗口交叉连接器558和触发器处理器560。LCU 556包括状态机器562和指令寄存器564。
在操作时,指令551从指令存储器读入决定并执行它们的LCU中的指令寄存器564中。被配置为直接控制硬件的指令的一个或多个部分568发送到一个或多个解码器566以进行解码。解码器的输出包括直接控制信令,其被发送到子集群以控制内部PE操作,如上文在图20中所示和所述。指令的其他部分570、572控制LCU的逻辑状态并输入到状态机器562。例如,这些部分控制循环和分支。下一个553命令致使来自指令存储器552的下一个指令被读入LCU中以便执行。
在一个实施方案中,一个或多个触发器555由状态机器生成并输入到触发器交叉连接器558。触发器功能类似于“中断”,其中活动可停止并延迟,直到某个事件发生。触发器信号用于触发活动。可发出触发器以激活其他触发器。它们表示一种用于同步化NN处理器中的活动的异步机制。例如,可发出触发器以停止处理,直到写入缓冲器,或者直到层完成处理(或以其他方式用作某个事件已经发生并且可开始进一步处理的指示)。
此外,可发出触发器以触发不同LC中的LCU中的活动。这个过程称为“切换”。切换机制可触发从一个LC到另一个LC的活动,例如,当一个ANN层完成并且将结果发送到ANN中的另一个层时可使用触发器。触发器窗口交叉连接器用于使输出触发器信号559转向到适当LC中的触发器处理器,其中它们用于通过信号557控制LCU中的活动。
关于数据平面与控制平面之间的分离,在一个实施方案中,管理控制平面的微代码在LC中执行并且不可访问数据。LC中微代码机器的另外的能力是没有条件语句或条件分支。这对于数据管路输送是有利的,因为避免了管理分支预测或其他管路开销的需要。因此,执行是完全可预测的。这与典型的现有技术微代码形成对比,所述现有技术微代码可进行分支,以致使执行依赖于输入。在NN处理器中,当微代码执行时,数据流的演变是完全可预测的,即可在每个时间实例处预测每个控制信号的生成。
在一个实施方案中,在基于微代码的控制器中执行的每个微代码指令操作来生成用于计算资源和存储器资源的控制信令。换句话说,微代码不具有任何“开销”,因为不存在负责内部处理的任何操作,所述操作也不会将实际控制信令施加到输出。因此,没有微代码指令操作被浪费在微代码机器的内部内务处理上(唯一的例外是‘NOP'操作)。
LC中的微代码机器的另一个能力是触发操作。虽然分支不被支持,但是执行流可由外部信号触发,所述外部信号指示执行的开始/停止以实现数据管路握手,例如,从一个LCU切换到另一个LCU。
LC中的微代码机器的又一个能力是重复操作支持,从而支持操作的内联重复(即,内联运行的循环),使得可在操作码自身内指示重复操作,从而避免设立并管理循环的不必要的周期以及相关的提取。应注意,与循环管理的开销相比,这个特征对于操作较少的循环是有用的。后者在神经网络操作(例如,激活之后的许多乘积累加(MAC)运算)中非常常见。在数据管路机器中,当控制与数据之间的比率使得非常少的控制限定了相对大的数据管道的行为时,这是非常重要的。
例如,考虑被配置为执行1000次乘积累加(MAC)运算的常规处理器。在下面的列表2中提供示例性伪代码。
列表2:示例性常规处理器伪代码循环
Figure GDA0004129717940000471
在上面的伪代码中,在循环中存在四个操作码(即四个周期),其中两个是可操作的,使用率为50%。假设这个循环控制1024个MAC电路,这意味着只有512个以满容量有效地操作。
相反,在NN处理器中支持内联重复。此外,内部控制的开销为零,这消除了对具有“备用”操作码(即仅用于机器内部管理或内务处理的操作码)的需求。清单2的伪代码转换成下面在清单3中呈现的下面的伪代码。
列表3:示例性NN处理器伪代码循环
Figure GDA0004129717940000472
如上所示,所有循环信息都嵌入在功能操作码中,并且MAC利用率增加到100%。
应注意,在控制平面与数据平面之间具有深度分离还用于使得一定程度地固有地免受控制平面安全危害。这是因为用于非法侵入装置的常见技术是向其馈送干扰控制平面的数据。由于两个平面是严格分离的,因此干扰一个平面不会影响另一个平面。
编译器
在图22中示出展示示例性NN处理器编译器/SDK的高级框图。编译器(通常标记为770)用于基于输入ANN模型配置NN处理器。它在作为由用户使用和发起的外部软件工具链的一部分的在片外执行的过程中执行。通常,编译器具有将成为源ANN模型的目标的NN处理器、NN处理器SoC或多个NN处理器SoC的知识。
特别地,翻译器772用于接收用户模型并生成模型的中间格式。优化器774用于执行模型级别优化、后翻译模型性能调整以及对不同位宽的数值改型。资源分配器778根据中间模型分配并指派物理资源(例如,计算元件和存储器元件等)。分析器786执行性能评估,包括例如预期的功率消耗、吞吐量、等待时间等。软件仿真器782用于使用翻译器772的中间模型输出执行NN处理器的位精确数值仿真。
在一个实施方案中,向用户提供若干目标选项以实现外部工具链。三个目标选项包括:(1)NN装置780、(2)仿真器782、和(3)模拟器784,所述模拟器784包括模拟NN装置功能性的硬件的软件模型。因此,用户可选择使用NN装置自身、NN装置的硬件仿真或NN装置的软件仿真来执行工具链。
NN处理器的多个操作粒度和相关的存储器/延迟折衷
本发明的能力和优点在于:NN处理器中的管路能够以输入的任何子集的任何期望粒度进行操作,其中存储器针对延迟进行折衷并且反之亦然。更具体地,当输入数据具有一些内部结构(例如,视频帧,并且每个帧由多行(或缓冲器、分组等)构成时,NN处理器架构可触发来自单个此类行、缓冲器、分组等或其倍数的任何聚合处的下一层的活动。
在较低聚合的情况下,需要另外的中间结果(即上下文)存储设备来存储中间结果。然而,延迟是最小的,因为后续处理元件被释放以便在管路中更早地进行进一步处理,这允许传入通信量被消费但不会被阻塞。因此,较高的存储器存储要求针对较低的上下文延迟进行折衷。
另一方面,在更高聚合的情况下,即期望较少的上下文存储器或者要实现需要大量上下文的ANN模型,可在以下情况进行折衷:使用较少的上下文存储器来交换缓冲器存储器,由此实现输入的另外的缓冲,从而导致在任何一个时间同时需要的上下文的数量减少,但是延迟增加。在一个实施方案中,这种折衷通过LC中的微代码来实现,并且因此是可配置且可编程的。
在图23中示出展示NN处理器的灵活处理粒度和相关存储器对延迟的折衷的图。数据管路实例(通常标记为930)突出显示了利用数据管路来支持最小延迟并以低输入域粒度操作的选项。考虑包括输入数据938的示例性输入张量932,所述输入数据938可位于网络的开始处或网络中的任意点处。然后,网络层中的一个将NN操作934应用到输入数据(例如,在这个实例中为3×3的卷积),其后是包括存储块931和939的输出域936。
在这个实例中,输入数据流被完全消费并且应用所有需要的计算,同时最小化延迟并且不需要检索输入数据,因为所有计算都被提交到存储在存储器中的中间结果。在替代性实施方案中,这个功能可通过以下方式执行:(1)等待整个帧并应用批处理操作,由此所有数据立即提交到输出以避免中间结果;(2)等待最小组的行以便避免中间结果(在这个实例中为三);(3)随着存储器访问延迟的增加,使用存储在外部存储器中的中间结果;或(4)根据需要调用输入(即多次读取相同数据),以便避免必须存储中间结果。
NN处理器SoC、芯片内和芯片间连接性
如上文详细描述的,NN处理器可用于实现ANN。然而,如果要实现的ANN超过NN处理器的容量,则本发明提供使用若干NN处理器来实现ANN模型的能力。如上所述,NN处理器包括用于在NN个处理器核之间通信的多个总线接口(例如,芯片到芯片接口)。在本文所公开的实例中,提供了两个芯片到芯片接口,但是可实现任何数量。因此,可通过组合多个NN处理器核的处理能力来适应大型ANN模型。
应注意,在芯片到芯片接口上部署互连NN处理器的网络是基本上无缝的。利用装置到装置通信,网络的行为等同于单个NN装置上包含的ANN。在一个实施方案中,芯片到芯片接口与在层边界上缩窄带宽的技术保持一致。接口的物理层可包括同步的任何合适的协议并保证所需的带宽。下一层是分组层,其具有可通过接收芯片解码的帧格式。帧格式的结构尝试使装置之间的转变中的开销最小化并且类似于以太网的结构,其包括多个字段,包括例如流ID、目的地层、数据格式等。例如,考虑具有WxHxF输出张量的层。协议在任何处理发生之前识别下一个装置中的结构、流ID和网络ID。然后所需的带宽是(WxHxF+开销)x帧/秒。
在图24中示出展示本发明的第一示例性多NN处理器SoC系统的图。在一个实施方案中,如上所述并在图4和图5中示出的NN处理器核(或引擎)可以被复制并实现为片上系统(SoC)。NN处理器核的知识产权(IP)可用于实现单片集成电路(IC)。可替代地,可在SoC上集成并实现物理NN处理器核管芯。
实现为单片半导体或SoC的NN处理器SoC(通常标记为700)包括通过内部总线710互连的多个NN处理器核706、一个或多个外部接口电路702、一个或多个‘外部’L5存储器电路708、自举和预处理电路704和后处理电路712。应注意,NN处理器核、L5存储器电路等的数量不限于所示的数量,因为半导体领域的技术人员可实现具有任何数量的NN处理器核和其他部件的IC或SoC。
在操作时,ANN输入数据714通过外部I/F 702写入SoC 700。自举和预处理电路704操作来根据实现方式执行一个或多个功能,包括例如缓冲、计时、功率管理、数据节流等。然后将数据馈送到NN处理器核706进行处理。NN处理器核通过内部总线710彼此通信。应注意,NN处理器核之间的连接性可包括任何期望的路由类型,包括诸如全网状、令牌环、链接等,这取决于实现方式并且对于本发明来说不是关键的。应注意,其他电路部件也通过总线通信,包括自举和预处理器704、外部I/F 702、L5存储器708和后处理器712。
在图25中示出展示本发明的第二示例性多NN处理器SoC系统的图。在这个示例性系统(通常标记为790)中,多个NN处理器核或SoC 794串行连接。ANN输入数据792输入最左边的NN处理器,并且ANN输出数据799离开最右边的NN处理器。多个NN处理器一起逐层实现ANN模型。
在图26中示出展示本发明的第一示例性多NN处理器SoC系统的图。在这个示例性系统(通常标记为800)中,三个NN处理器核或SoC 804、806、808以2→1聚集方案组合并一起实现ANN模型。ANN输入数据802通过输入端口输入到NN处理器804、806。在这个实例中,需要并行的两个NN处理器核804、806来实现ANN模型,例如,(1)模型在一个或多个层中包含非常大量的神经元或(2)神经元的数量超过单个装置的任何资源约束(例如,控制、存储器或计算)。每个NN处理器804、806的输出通过芯片到芯片输入端口输入到NN处理器808,所述NN处理器808用于生成ANN输出809。
在图27中示出展示本发明的第一示例性多NN处理器SoC系统的图。在这个示例性系统(通常标记为810)中,三个NN处理器核或SoC 814、816、818以1→2分散方案组合并一起实现ANN模型。ANN输入数据812通过输入端口输入到NN处理器814。NN处理器814的输出输入到NN处理器816、818两者。在这个实例中,需要并行的两个NN处理器核816、818来实现ANN模型,例如,(1)模型在一个或多个层中包含非常大量的神经元或(2)神经元的数量超过单个装置的任何资源约束(例如,控制、存储器或计算)。由每个NN处理器816、818生成的输出被组合以形成ANN输出819。
示例性ANN映射策略
如上所述,如果ANN的需求超过单个NN处理器核的计算和/或存储器资源,则ANN模型可分成若干装置。编译器/SDK无缝地利用ANN的典型细胞性质,所述ANN的典型细胞性质允许在网络层之间和之上进行分开与合并。在编译器内,除了依赖于层间带宽固有地远低于层内带宽的事实之外,在考虑到映射到每个装置的子网络的输入和输出处的带宽要求的同时完成分离。提出了几个示例性映射可能性和策略。
一般来讲,由编译器执行的装置到装置的映射由装置中存在的输入和输出端口的数量(例如,在本实例中为两个)驱动。在装置上的两个输入和输出端口的示例性情况下,映射1→2(即分散)、2→1(即聚集)以及1→1(即前馈)的灵活性允许构建所示的系统布置。
在图28中示出展示图2的第一示例性ANN的示例性映射策略的图。如上所述,编译器/SDK用于将逻辑ANN模型映射到物理NN处理器装置。作为其分析的结果,在这个实例中,编译器确定整个ANN可在单个NN处理器装置中的单个集群362中实现。ANN中的每个网络层365被映射到一个或多个子集群364,并且也指派LC 361。因此,例如,网络层1被映射到三个子集群,即子集群1、2和3,它们也接收ANN输入363。这三个子集由LC 1配置并控制。类似地,网络层2中的神经元由编译器映射到子集群4、5和6并被指派给LC2。网络层3中的神经元被映射到子集群7和8并被指派给LC 3。最后,网络层4被映射到子集群9,并且由LC 4配置并控制。ANN输出369由子集群9生成。
在图29中示出展示第二示例性人工神经网络的图。可以是卷积型NN的这个示例性ANN(通常标记为720)包括多个层726,所述多个层726包括层1至6。层1接收ANN输入722,并且层6生成ANN输出724。
在图30中示出展示图29的ANN的示例性多NN处理器SoC系统的图。NN系统(通常标记为730)表示ANN 720到本发明的NN处理器系统的映射。每个NN处理器736包括单独的IC,或者可替代地包括SoC中的单独管芯。
在编译过程中,编译器和SDK的功能是将逻辑ANN模型映射到物理NN处理器配置。在这个实例中,层1映射到整个NN处理器1中,因为其在计算元件、存储器结构等方面的容量仅足以实现层1。NN处理器1还接收ANN输入732。层2和3使得它们不能在单个装置中实现,因此需要两个装置(即并行的NN处理器2和3)并且处理在它们之间分离。层4很大,但编译器确定它可在单个装置中实现。因此,整个NN处理器4被映射到层4。层5和6被分析并由编译器映射到单个NN处理器5装置。NN处理器5生成ANN输出734。应注意,NN处理器通过每个装置中的芯片到芯片的接口以前馈方式彼此通信。
在图31中示出展示第三示例性人工神经网络的图。示例性ANN(通常标记为740)意图表示任何期望的ANN。它包括组织成不同网络层的多个神经元744。输入数据X 746输入到第一层,并且输出数据Y 748由最后一层生成。
在图32中示出展示图31的ANN的第一示例性多NN处理器SoC系统的图。在这个实例中,第一映射(通常标记为750)由编译器/SDK生成,并且包括若干NN处理器装置。特别地,前两个网络层中的神经元756被映射到NN处理器1,第三网络层被映射到NN处理器2,并且最后三个网络层被映射到NN处理器3。ANN输入数据752输入到NN处理器1中的第一层。NN处理器3生成ANN输出数据754。
在图33中示出展示图31的ANN的第二示例性多NN处理器SoC系统的图。在这个实例中,不同的映射(通常标记为760)由编译器/SDK生成,并且包括若干NN处理器装置。特别地,前四个网络层中的神经元766在两个装置(即NN处理器1与2)之间分离,因为它们超过单个装置的容量。最后两个网络层映射到NN处理器3。ANN输入数据762输入到NN处理器1和2中的第一层。NN处理器3生成ANN输出数据764。
本领域的技术人员将认识到在逻辑与电路模块之间的边界仅是说明性的并且替代性实施方案可合并逻辑模块或电路元件或者对各种逻辑模块或电路元件施加替代性的功能性分解。因此,应当理解,本文描绘的架构仅是示例性的,并且事实上实现相同功能性的许多其他架构可被实现。
用于实现相同功能性的任何部件布置有效地“相关联”,以使得实现期望的功能性。从而,在本文中组合以便实现特定功能性的任何两个部件可被看做与彼此“相关联”,以使得不考虑架构或中间部件,实现期望的功能性。同样地,这样相关联的任何两个部件也可被看做彼此“可操作地连接”或“可操作地耦接”,以便实现期望的功能性。
此外,本领域的技术人员将认识到如上所述的操作之间的边界仅是说明性的。多个操作可被组合成单个操作,所述单个操作可分布在另外的操作中并且所述操作可在时间上至少部分地重叠期间执行。此外,替代性实施方案可包括特定操作的多个实例,并且操作的顺序可在各种其他实施方案中改变。
本文所使用的术语仅用于描述特定实施方案的目的,并且不意图对本发明进行限制。如本文所用,除非上下文另外明确指出,否则单数形式“一个(a)”、“一个(an)”和“所述”也意图包括复数形式。将进一步理解,术语“包括(comprises)”和/或“包括(comprising)”在用于本说明书中时,规定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其群组。
在权利要求中,放置在括号之间的任何附图标记不得理解为是对权利要求的限制。在权利要求中使用诸如“至少一个”和“一个或多个”的引导短语不应被理解为暗示由不定冠词“一个(a)”或“一个(an)”引入的另一个权利要求要素将包含此类引入的权利要求要素的任何特定权利要求限制于仅包含一个此类要素的发明,即使当相同的权利要求包括引导短语“一个或多个”或“至少一个”以及诸如“一个(a)”或“一个(an)”的不定冠词时。对于定冠词的使用,也是这样。除非另行指出,诸如“第一”、“第二”等的术语用于在此类术语描述的元件之间进行任意辨别。因此,这些术语不一定意图指示此类元件的时间或其他优先次序。在互相不同的权利要求中叙述某些测量的不争事实不指示这些测量的组合不可用于获得优点。
下文权利要求中所有手段或步骤以及功能要素的对应结构、材料、动作和等效物意图包括用于结合特定要求保护的其他所要求保护要素来实现所述功能的任何结构、材料或动作。本发明的描述已经出于展示和描述的目的进行呈现,但并不意图是详尽的或将本发明限于所公开的形式。由于本领域技术人员易于想到各种修改和变化,因此本发明并不意图限于本文所述的有限数量的实施方案。因此,应当理解,可采用落入本发明的精神和范围内的所有合适的变型、修改和等效物。选择并且描述实施方案以便最好地解释本发明的原理和实际应用,并且使得本领域其他普通技术人员能够针对具有适合于预期的特定用途的各种修改的各种实施方案来理解本发明。

Claims (20)

1.一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器集成电路(IC)装置,其包括:
多个计算电路,每个计算电路包括计算元件、相关联的专用物理存储器元件和相关的控制逻辑,其配置成根据网络层中所要求的计算数量动态地映射到存储元件的集合;
其中所述多个计算电路聚合在多个级别中以形成层次结构;
其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化;
多个装置到装置接口电路,所述多个装置到装置接口电路操作来经由每个NN处理器装置上的一个或多个输入和输出端口实现多个所述NN处理器装置之间的通信并将多个所述NN处理器装置互连;
其中在离线编译过程中,编译器逐层地将逻辑ANN模型映射到包括多个NN处理器装置的物理配置,从而根据映射到多个所述NN处理器装置的任何ANN子网络的输入和输出处的带宽要求进行一个或多个分离;并且
其中所述映射和由此产生的物理配置由每个NN处理器装置的可用资源驱动,包括存储器容量、计算容量、控制资源的可用性以及每个具有有限带宽的输入和输出端口。
2.根据权利要求1所述的装置,其还包括NN处理器系统,所述NN处理器系统包括多个NN处理器装置,每个NN处理器装置通过所述装置到装置接口电路互连,其中所述ANN跨所述多个互连的NN处理器装置的实现方式是基本上无缝的,从而导致等同于在单个NN处理器装置上实现的所述ANN的行为。
3.根据权利要求2所述的装置,其中所述多个NN处理器装置以分散配置、聚集配置和前馈配置中的至少一个配置进行互连。
4.根据权利要求2所述的装置,其中所述互连的多个NN处理器装置操作来实现因太大而不能在单个NN处理器装置中实现的ANN。
5.根据权利要求1所述的装置,其中所述装置到装置接口电路包括提供两个NN处理器装置之间的双向通信的一个或多个输入端口和输出端口。
6.一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器系统,其包括:
多个互连的NN处理器集成电路(IC)装置,每个NN处理器装置包括:
多个处理内核,包括计算电路,所述计算电路包括计算元件、相关联的专用存储器元件和相关的控制逻辑;
其中所述多个计算电路聚合在多个级别中以形成层次结构;
其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化;
多个装置到装置接口电路,所述多个装置到装置接口电路操作来经由每个NN处理器装置上的一个或多个输入和输出端口实现多个NN处理器内核和装置之间的通信并将多个所述NN处理器内核和装置互连;
内部总线,使用同步协议在多个所述NN处理器内核之间提供同步通信并保证其间所要求的带宽;
其中在离线编译过程中,编译器逐层地将逻辑ANN模型映射到包括多个NN处理器内核的物理配置,从而根据映射到多个所述NN处理器内核的任何ANN子网络的输入和输出处的带宽要求进行一个或多个分离;
其中所述映射和由此产生的物理配置由每个NN处理器内核的可用资源驱动,包括存储器容量、计算容量、控制资源的可用性以及每个具有有限带宽的输入和输出端口;并且
其中所述ANN跨所述多个互连的NN处理器装置的实现方式是基本上无缝的,从而导致等同于在单个NN处理器装置上实现的所述ANN的行为。
7.根据权利要求6所述的系统,其中所述系统中的所述多个NN处理器装置被配置和布置为实现扩展超过单个NN处理器装置的容量的ANN。
8.根据权利要求6所述的系统,其中所述多个NN处理器装置以分散配置、聚集配置和前馈配置中的至少一个配置进行互连。
9.根据权利要求6所述的系统,其中所述互连的多个NN处理器装置操作来实现因太大而不能在单个NN处理器装置中实现的ANN。
10.根据权利要求6所述的系统,其中所述装置到装置接口电路包括提供两个NN处理器装置之间的双向通信的一个或多个输入端口和输出端口。
11.一种由神经网络(NN)集成电路(IC)装置实现的方法,所述装置包括用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的NN处理器电路,所述方法包括:
提供多个计算电路,每个计算电路包括计算元件、相关联的专用存储器元件和控制逻辑;
将所述多个计算电路聚合到多个级别中以形成层次结构;
其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化;
通过装置到装置接口电路将多个NN装置互连,从而实现它们之间的通信;
由编译器在离线编译过程中逐层地将逻辑ANN模型映射到包括多个NN处理器装置的物理配置,从而根据映射到多个所述NN处理器装置的任何ANN子网络的输入和输出处的带宽要求进行一个或多个分离;并且
其中所述映射和由此产生的物理配置由每个NN处理器装置的可用资源驱动,包括存储器容量、计算容量、控制资源的可用性以及每个具有有限带宽的输入和输出端口。
12.根据权利要求11所述的方法,其还包括组合多个NN装置,每个NN装置通过所述装置到装置接口电路互连以形成NN系统,其中所述ANN跨所述NN系统的实现方式是基本上无缝的,从而导致等同于在单个NN处理器装置上实现的所述ANN的行为。
13.根据权利要求12所述的方法,其中所述NN系统操作来实现因太大而不能在单个NN装置中实现的ANN。
14.根据权利要求11所述的方法,其还包括组合多个NN装置,每个NN装置通过所述装置到装置接口电路以分散配置、聚集配置和前馈配置中的至少一个配置进行互连。
15.根据权利要求11所述的方法,其中所述装置到装置接口电路包括提供两个NN装置之间的双向通信的一个或多个输入端口和输出端口。
16.一种由神经网络(NN)集成电路(IC)装置实现的方法,所述装置包括用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的NN处理器电路,所述方法包括:
提供多个处理内核,包括计算电路,所述计算电路包括计算元件、相关联的专用存储器元件和控制逻辑;
将所述多个计算电路聚合到多个级别中以形成层次结构;
其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化;
提供多个装置到装置接口电路,所述多个装置到装置接口电路操作来经由每个NN处理器装置上的一个或多个输入和输出端口实现多个NN处理器内核和装置之间的通信并将多个所述NN处理器内核和装置互连;
通过装置到装置接口电路将多个NN装置互连,从而实现它们之间的通信并形成NN系统;并且
提供内部总线,用于使用同步协议在多个NN处理器内核之间同步通信并保证其间所要求的带宽;
由编译器在离线编译过程中逐层地将逻辑ANN模型映射到包括多个NN处理器内核的物理配置,从而根据映射到多个所述NN处理器内核的任何ANN子网络的输入和输出处的带宽要求进行一个或多个分离;
其中所述映射和由此产生的物理配置由每个NN处理器内核的可用资源驱动,包括存储器容量、计算容量、控制资源的可用性以及每个具有有限带宽的输入和输出端口;并且
其中所述ANN跨所述多个互连的NN装置的实现方式是基本上无缝的,从而导致等同于在单个NN装置上实现的所述ANN的行为。
17.根据权利要求16所述的方法,其还包括将所述多个NN装置配置和布置为实现扩展超过单个NN装置的容量的ANN。
18.根据权利要求16所述的方法,其还包括组合多个NN装置,每个NN装置通过所述装置到装置接口电路以分散配置、聚集配置和前馈配置中的至少一个配置进行互连。
19.根据权利要求16所述的方法,其中所述互连的多个NN装置的NN系统操作来实现因太大而不能在单个NN装置中实现的ANN。
20.根据权利要求16所述的方法,其中所述装置到装置接口电路包括提供两个NN装置之间的双向通信的一个或多个输入端口和输出端口。
CN201880022145.8A 2017-04-04 2018-04-03 包括装置间连接性的神经网络处理器 Active CN110476174B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762481492P 2017-04-04 2017-04-04
US62/481,492 2017-04-04
US201762531372P 2017-07-12 2017-07-12
US62/531,372 2017-07-12
PCT/IL2018/050395 WO2018185765A1 (en) 2017-04-04 2018-04-03 Neural network processor incorporating inter-device connectivity

Publications (2)

Publication Number Publication Date
CN110476174A CN110476174A (zh) 2019-11-19
CN110476174B true CN110476174B (zh) 2023-06-23

Family

ID=63669456

Family Applications (5)

Application Number Title Priority Date Filing Date
CN201880020722.XA Active CN110462642B (zh) 2017-04-04 2018-04-03 包括计算元件和本地存储器元件的神经网络处理元件
CN201880021600.2A Active CN110462640B (zh) 2017-04-04 2018-04-03 神经网络处理器中基于滑动窗口的存储器访问
CN201880021608.9A Pending CN110462643A (zh) 2017-04-04 2018-04-03 包括多级层次聚合的计算和存储器元件的神经网络处理器
CN201880022239.5A Active CN110494869B (zh) 2017-04-04 2018-04-03 包括单独的控制和数据结构的神经网络处理器
CN201880022145.8A Active CN110476174B (zh) 2017-04-04 2018-04-03 包括装置间连接性的神经网络处理器

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN201880020722.XA Active CN110462642B (zh) 2017-04-04 2018-04-03 包括计算元件和本地存储器元件的神经网络处理元件
CN201880021600.2A Active CN110462640B (zh) 2017-04-04 2018-04-03 神经网络处理器中基于滑动窗口的存储器访问
CN201880021608.9A Pending CN110462643A (zh) 2017-04-04 2018-04-03 包括多级层次聚合的计算和存储器元件的神经网络处理器
CN201880022239.5A Active CN110494869B (zh) 2017-04-04 2018-04-03 包括单独的控制和数据结构的神经网络处理器

Country Status (5)

Country Link
US (9) US10387298B2 (zh)
EP (5) EP3607498B1 (zh)
JP (5) JP7288250B2 (zh)
CN (5) CN110462642B (zh)
WO (5) WO2018185765A1 (zh)

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110050267B (zh) 2016-12-09 2023-05-26 北京地平线信息技术有限公司 用于数据管理的系统和方法
US10248906B2 (en) * 2016-12-28 2019-04-02 Intel Corporation Neuromorphic circuits for storing and generating connectivity information
US11037330B2 (en) 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US11164071B2 (en) * 2017-04-18 2021-11-02 Samsung Electronics Co., Ltd. Method and apparatus for reducing computational complexity of convolutional neural networks
US11429861B1 (en) 2017-05-01 2022-08-30 Perceive Corporation Device storing multiple sets of parameters for machine-trained network
US11138494B2 (en) * 2017-05-02 2021-10-05 International Business Machines Corporation Storage controller acceleration for neural network training and inference
CN111149166B (zh) 2017-07-30 2024-01-09 纽罗布拉德有限公司 基于存储器的分布式处理器架构
US10872290B2 (en) 2017-09-21 2020-12-22 Raytheon Company Neural network processor with direct memory access and hardware acceleration circuits
US10782997B1 (en) * 2017-10-31 2020-09-22 EMC IP Holding Company, LLC Storage management system and method
JP2019087012A (ja) * 2017-11-07 2019-06-06 キヤノン株式会社 情報処理装置、情報処理方法、コンピュータプログラム、及び記憶媒体
US11803734B2 (en) * 2017-12-20 2023-10-31 Advanced Micro Devices, Inc. Adaptive quantization for neural networks
US11328210B2 (en) 2017-12-29 2022-05-10 Micron Technology, Inc. Self-learning in distributed architecture for enhancing artificial neural network
US11734568B2 (en) * 2018-02-14 2023-08-22 Google Llc Systems and methods for modification of neural networks based on estimated edge utility
US10445638B1 (en) * 2018-02-28 2019-10-15 Amazon Technologies, Inc. Restructuring a multi-dimensional array
WO2019177641A1 (en) * 2018-03-16 2019-09-19 Cornell University System and methods for processing spatial data
US10522038B2 (en) 2018-04-19 2019-12-31 Micron Technology, Inc. Systems and methods for automatically warning nearby vehicles of potential hazards
US11586910B1 (en) 2018-04-20 2023-02-21 Perceive Corporation Write cache for neural network inference circuit
US11783167B1 (en) 2018-04-20 2023-10-10 Perceive Corporation Data transfer for non-dot product computations on neural network inference circuit
US11886979B1 (en) 2018-04-20 2024-01-30 Perceive Corporation Shifting input values within input buffer of neural network inference circuit
US11205115B1 (en) 2018-04-20 2021-12-21 Perceive Corporation Neural network inference circuit
US10740434B1 (en) 2018-04-20 2020-08-11 Perceive Corporation Reduced dot product computation circuit
US11568227B1 (en) 2018-04-20 2023-01-31 Perceive Corporation Neural network inference circuit read controller with multiple operational modes
US11480971B2 (en) * 2018-05-01 2022-10-25 Honda Motor Co., Ltd. Systems and methods for generating instructions for navigating intersections with autonomous vehicles
US11340936B2 (en) 2018-05-04 2022-05-24 Apple Inc. Compiling and scheduling transactions in neural network processor
WO2019234794A1 (ja) * 2018-06-04 2019-12-12 株式会社ソシオネクスト 演算方法
US11551077B2 (en) * 2018-06-13 2023-01-10 International Business Machines Corporation Statistics-aware weight quantization
US20190392287A1 (en) 2018-06-22 2019-12-26 Samsung Electronics Co., Ltd. Neural processor
US11468338B2 (en) 2018-09-11 2022-10-11 Apple Inc. Compiling models for dedicated hardware
US11630982B1 (en) * 2018-09-14 2023-04-18 Cadence Design Systems, Inc. Constraint-based dynamic quantization adjustment for fixed-point processing
CN109359732B (zh) 2018-09-30 2020-06-09 阿里巴巴集团控股有限公司 一种芯片及基于其的数据处理方法
KR102137802B1 (ko) * 2019-01-21 2020-07-27 주식회사 디퍼아이 분산처리용 인공신경망 연산 가속화 장치, 이를 이용한 인공신경망 가속화 시스템, 및 그 인공신경망의 가속화 방법
US20200117988A1 (en) * 2018-10-11 2020-04-16 International Business Machines Corporation Networks for distributing parameters and data to neural network compute cores
US20200117978A1 (en) * 2018-10-12 2020-04-16 Alibaba Group Holding Limited Systems and methods for efficiently mapping neural networks to programmable logic devices
US11157213B2 (en) * 2018-10-12 2021-10-26 Micron Technology, Inc. Parallel memory access and computation in memory devices
US10705967B2 (en) * 2018-10-15 2020-07-07 Intel Corporation Programmable interface to in-memory cache processor
CN109635917B (zh) * 2018-10-17 2020-08-25 北京大学 一种多智能体合作决策及训练方法
JP7060720B2 (ja) * 2018-10-18 2022-04-26 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド ネットワークオンチップによるデータ処理方法及び装置
AU2019364195A1 (en) * 2018-10-26 2021-05-27 Dow Global Technologies Llc Deep reinforcement learning for production scheduling
CN109583942B (zh) * 2018-11-07 2021-05-11 浙江工业大学 一种基于密集网络的多任务卷积神经网络顾客行为分析方法
CN109547803B (zh) * 2018-11-21 2020-06-09 北京航空航天大学 一种时空域显著性检测及融合方法
CN111224740B (zh) * 2018-11-23 2022-03-29 华为技术有限公司 一种控制信息的发送和接收方法及终端设备
US11087170B2 (en) * 2018-12-03 2021-08-10 Advanced Micro Devices, Inc. Deliberate conditional poison training for generative models
US11995533B1 (en) 2018-12-05 2024-05-28 Perceive Corporation Executing replicated neural network layers on inference circuit
WO2020129412A1 (ja) * 2018-12-17 2020-06-25 ソニー株式会社 学習装置、識別装置およびプログラム
CN109754073B (zh) * 2018-12-29 2020-03-10 中科寒武纪科技股份有限公司 数据处理方法、装置、电子设备和可读存储介质
KR20200082613A (ko) 2018-12-31 2020-07-08 에스케이하이닉스 주식회사 프로세싱 시스템
EP3906508B1 (en) * 2018-12-31 2024-03-13 Intel Corporation Securing systems employing artificial intelligence
US11347297B1 (en) * 2019-01-23 2022-05-31 Perceive Corporation Neural network inference circuit employing dynamic memory sleep
US11620510B2 (en) * 2019-01-23 2023-04-04 Samsung Electronics Co., Ltd. Platform for concurrent execution of GPU operations
CN111507463B (zh) * 2019-01-30 2023-06-20 芯立嘉集成电路(杭州)有限公司 神经形态的符码处理器及操作所述符码处理器的方法
US11410475B2 (en) 2019-01-31 2022-08-09 Micron Technology, Inc. Autonomous vehicle data recorders
US11373466B2 (en) 2019-01-31 2022-06-28 Micron Technology, Inc. Data recorders of autonomous vehicles
WO2020163171A1 (en) * 2019-02-07 2020-08-13 quadric.io, Inc. Systems and methods for implementing a random access augmented machine perception and dense algorithm integrated circuit
JP7241563B2 (ja) * 2019-02-15 2023-03-17 三菱電機株式会社 ニューラルネットワーク回路
CN109901878B (zh) * 2019-02-25 2021-07-23 北京灵汐科技有限公司 一种类脑计算芯片及计算设备
CN111695686B (zh) * 2019-03-15 2022-11-01 上海寒武纪信息科技有限公司 地址分配方法及装置
US11475308B2 (en) 2019-03-15 2022-10-18 Samsung Electronics Co., Ltd. Jointly pruning and quantizing deep neural networks
FR3094118A1 (fr) * 2019-03-20 2020-09-25 Stmicroelectronics (Rousset) Sas Procédé d’analyse d’un jeu de paramètres d’un réseau de neurones en vue d’un ajustement de zones allouées auxdits paramètres.
KR20200111948A (ko) * 2019-03-20 2020-10-05 삼성전자주식회사 인공 신경망을 처리하는 방법 및 이를 위한 전자 장치
US20200302299A1 (en) * 2019-03-22 2020-09-24 Qualcomm Incorporated Systems and Methods of Cross Layer Rescaling for Improved Quantization Performance
US11188454B2 (en) 2019-03-25 2021-11-30 International Business Machines Corporation Reduced memory neural network training
WO2020197510A1 (en) * 2019-03-28 2020-10-01 Agency For Science, Technology And Research A system for mapping a neural network architecture onto a computing core and a method of mapping a neural network architecture onto a computing core
US20200320373A1 (en) * 2019-04-03 2020-10-08 Realtek Semiconductor Corp. Mixed-signal neurons for neuromorphic computing and method thereof
EP3825846A1 (en) * 2019-04-04 2021-05-26 Cambricon Technologies Corporation Limited Data processing method and apparatus, and related product
CN111782577B (zh) 2019-04-04 2023-03-24 安徽寒武纪信息科技有限公司 数据处理装置及方法以及相关产品
CN111831337B (zh) 2019-04-19 2022-11-29 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
WO2020211783A1 (zh) * 2019-04-16 2020-10-22 上海寒武纪信息科技有限公司 运算数据的量化频率调整方法及相关产品
US11211944B2 (en) 2019-04-17 2021-12-28 Samsung Electronics Co., Ltd. Mixed-precision compression with random access
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression
US11880760B2 (en) 2019-05-01 2024-01-23 Samsung Electronics Co., Ltd. Mixed-precision NPU tile with depth-wise convolution
US11562251B2 (en) * 2019-05-16 2023-01-24 Salesforce.Com, Inc. Learning world graphs to accelerate hierarchical reinforcement learning
US10664742B1 (en) * 2019-05-16 2020-05-26 Capital One Services, Llc Systems and methods for training and executing a recurrent neural network to determine resolutions
US11055234B2 (en) 2019-05-21 2021-07-06 International Business Machines Corporation Managing allocation and demotion of cache segments between a global queue and a plurality of local queues by training a machine learning module
US11615322B1 (en) 2019-05-21 2023-03-28 Perceive Corporation Compiler for implementing memory shutdown for neural network implementation configuration
US11048641B2 (en) 2019-05-21 2021-06-29 International Business Machines Corporation Managing allocation and demotion of cache segments between a global queue and a plurality of local queues by using a machine learning module
EP3742351A1 (en) * 2019-05-22 2020-11-25 eMemory Technology Inc. Control circuit for multiply accumulate circuit of neural network system
US11231961B2 (en) 2019-05-22 2022-01-25 Fujitsu Limited Scheduling operations
JP7278150B2 (ja) * 2019-05-23 2023-05-19 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法
US10831691B1 (en) 2019-05-24 2020-11-10 International Business Machines Corporation Method for implementing processing elements in a chip card
US10936317B2 (en) * 2019-05-24 2021-03-02 Texas Instruments Incorporated Streaming address generation
CN110222821B (zh) * 2019-05-30 2022-03-25 浙江大学 基于权重分布的卷积神经网络低位宽量化方法
RU2755935C2 (ru) * 2019-06-20 2021-09-23 Сергей Александрович Шумский Способ и система машинного обучения иерархически организованному целенаправленному поведению
US11941512B2 (en) * 2019-06-26 2024-03-26 Western Digital Technologies, Inc. Neural network engine utilizing a serial bus
US11303582B1 (en) * 2019-06-28 2022-04-12 Amazon Technologies, Inc. Multi-layer network for metric aggregation
KR102091580B1 (ko) * 2019-07-09 2020-03-20 주식회사 모빌테크 이동식 도면화 시스템을 이용한 도로 표지 정보 수집 방법
US11494657B2 (en) * 2019-07-30 2022-11-08 Perceive Corporation Quantizing neural networks using approximate quantization function
CN110458114B (zh) * 2019-08-13 2022-02-01 杜波 一种人数确定方法、装置及存储介质
US11392796B2 (en) 2019-08-20 2022-07-19 Micron Technology, Inc. Feature dictionary for bandwidth enhancement
US11755884B2 (en) 2019-08-20 2023-09-12 Micron Technology, Inc. Distributed machine learning with privacy protection
US11636334B2 (en) 2019-08-20 2023-04-25 Micron Technology, Inc. Machine learning with feature obfuscation
KR20220031717A (ko) * 2019-08-22 2022-03-11 구글 엘엘씨 동기식 프로세서를 위한 샤딩
US11947959B2 (en) * 2019-09-10 2024-04-02 Micron Technology, Inc. Re-using processing elements of an artificial intelligence processor
US11676009B2 (en) * 2019-10-04 2023-06-13 Raytheon Technologies Corporation Machine learning based rotor alloy design system
US11475283B2 (en) 2019-10-24 2022-10-18 Apple Inc. Multi dimensional convolution in neural network processor
WO2021086498A1 (en) * 2019-10-28 2021-05-06 Aetherai Ip Holding Llc Enhancing memory utilization and throughput in executing a computational graph
US20210125049A1 (en) * 2019-10-29 2021-04-29 Taiwan Semiconductor Manufacturing Co., Ltd. System for executing neural network
CN112749778B (zh) * 2019-10-29 2023-11-28 北京灵汐科技有限公司 一种强同步下的神经网络映射方法及装置
KR20210060024A (ko) * 2019-11-18 2021-05-26 에스케이하이닉스 주식회사 신경망 처리 회로를 포함하는 메모리 장치
US11539786B2 (en) * 2019-11-19 2022-12-27 Jeff Wang Method and system for heterogeneous blockchain service management
CN112862085B (zh) * 2019-11-27 2023-08-22 杭州海康威视数字技术股份有限公司 存储空间优化方法及装置
CN111102559B (zh) * 2019-11-28 2022-08-23 中国大唐集团科学技术研究院有限公司火力发电技术研究院 一种基于双神经网络逆模型的屛式过热器汽温控制方法
CN111027456B (zh) * 2019-12-06 2023-06-20 四川杰森机电有限公司 基于图像识别的机械水表读数识别方法
EP3857384B1 (en) * 2019-12-19 2022-05-11 Google LLC Processing sequential inputs using neural network accelerators
WO2021128278A1 (en) * 2019-12-27 2021-07-01 Intel Corporation Driving safety systems
US11076210B1 (en) * 2020-01-03 2021-07-27 Microsoft Technology Licensing, Llc Distributed processing architecture
US11580388B2 (en) 2020-01-03 2023-02-14 Microsoft Technology Licensing, Llc Distributed processing architecture
US11935271B2 (en) * 2020-01-10 2024-03-19 Tencent America LLC Neural network model compression with selective structured weight unification
CN115066844A (zh) * 2020-01-28 2022-09-16 哲库科技有限公司 具有优化存储器路径的动态上行链路端到端数据传输方案
US11520640B2 (en) * 2020-01-30 2022-12-06 Alibaba Group Holding Limited Efficient and more advanced implementation of ring-AllReduce algorithm for distributed parallel deep learning
CN111491006B (zh) * 2020-03-03 2021-11-02 天津大学 负载感知的云计算资源弹性分配系统及方法
EP3896565B1 (en) * 2020-04-16 2024-03-06 NXP USA, Inc. Memory address generator
CN111783976B (zh) * 2020-04-21 2023-04-21 北京大学 一种基于窗口梯度更新的神经网络训练过程中间值存储压缩方法和装置
CN111224727B (zh) * 2020-04-24 2020-07-31 成都坤恒顺维科技股份有限公司 一种基于信道仿真仪的自适应拓扑结构的实现方法
EP3904907A1 (en) * 2020-04-29 2021-11-03 Aptiv Technologies Limited Methods and systems for tracking an object
US11397885B2 (en) * 2020-04-29 2022-07-26 Sandisk Technologies Llc Vertical mapping and computing for deep neural networks in non-volatile memory
CN111523658B (zh) * 2020-07-02 2020-12-15 南京优存科技有限公司 双位存储单元及其在存内计算的电路结构
US20220036163A1 (en) * 2020-07-29 2022-02-03 Apple Inc. Chained neural engine write-back architecture
US11720417B2 (en) * 2020-08-06 2023-08-08 Micron Technology, Inc. Distributed inferencing using deep learning accelerators with integrated random access memory
US11915126B2 (en) 2020-09-04 2024-02-27 Recogni Inc. Low power hardware architecture for a convolutional neural network
US11811421B2 (en) * 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
US11934487B2 (en) * 2020-09-30 2024-03-19 EMC IP Holding Company LLC Splitting neural networks on multiple edge devices to train on vertically distributed data
EP3979248A1 (en) * 2020-09-30 2022-04-06 Imec VZW A memory macro
US20220147812A1 (en) * 2020-11-06 2022-05-12 Micron Technology, Inc. Compiler with an artificial neural network to optimize instructions generated for execution on a deep learning accelerator of artificial neural networks
JP7408533B2 (ja) 2020-12-09 2024-01-05 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US11989650B2 (en) 2020-12-21 2024-05-21 Disney Enterprises, Inc. Saliency prioritization for image processing
US11922306B2 (en) * 2020-12-28 2024-03-05 Meta Platforms, Inc. Tensor controller architecture
WO2022145550A1 (ko) * 2020-12-31 2022-07-07 서울대학교산학렵력단 딥러닝 네트워크의 동적 양자화 정밀도 가변 알고리즘 및 방법
CN112766387B (zh) * 2021-01-25 2024-01-23 卡奥斯数字科技(上海)有限公司 一种训练数据的纠错方法、装置、设备及存储介质
US20240160891A1 (en) * 2021-03-26 2024-05-16 Allwinner Technology Co., Ltd. Memory allocation method for ai processor, computer apparatus, and computer-readable storage medium
US11544548B2 (en) * 2021-05-24 2023-01-03 Rebellions Inc. Processing element and neural processing device including same
CN113537555B (zh) * 2021-06-03 2023-04-11 太原理工大学 一种考虑扰动的交通子区模型预测滑模边界控制方法
KR20220169085A (ko) 2021-06-18 2022-12-27 에스케이하이닉스 주식회사 강화 학습 장치 및 그 동작 방법
CN115600478B (zh) * 2021-06-28 2023-08-15 中企网络通信技术有限公司 软件定义广域网分析系统及其操作方法
CN113408713B (zh) * 2021-08-18 2021-11-16 成都时识科技有限公司 消除数据副本的方法、神经网络处理器及电子产品
CN113791996B (zh) * 2021-09-10 2024-02-06 中科寒武纪科技股份有限公司 集成电路装置、电子设备、板卡和计算方法
US11789646B2 (en) * 2021-09-24 2023-10-17 Intel Corporation Methods, apparatus, and articles of manufacture to increase data reuse for multiply and accumulate (MAC) operations
WO2023068489A1 (ko) * 2021-10-18 2023-04-27 삼성전자 주식회사 상이한 데이터 타입들을 지원하는 npu를 포함하는 전자 장치 및 그 제어 방법
WO2023099603A1 (en) * 2021-11-30 2023-06-08 Grai Matter Labs S.A.S. Neural network device, method and system comprising the device
WO2023105616A1 (ja) * 2021-12-07 2023-06-15 日本電信電話株式会社 深層学習推論システム
US20230367497A1 (en) * 2022-05-10 2023-11-16 Taiwan Semiconductor Manufacturing Company, Ltd. Memory system, operating method and controller
US11886973B2 (en) 2022-05-30 2024-01-30 Deepx Co., Ltd. Neural processing unit including variable internal memory
US20240143517A1 (en) * 2022-11-01 2024-05-02 Samsung Electronics Co., Ltd. Near storage computation system and methods for data protection
CN116151345B (zh) * 2023-04-20 2023-09-26 西安紫光展锐科技有限公司 数据传输方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4994982A (en) * 1987-12-23 1991-02-19 U.S. Philips Corporation Neural network system and circuit for use therein
US8909576B2 (en) * 2011-09-16 2014-12-09 International Business Machines Corporation Neuromorphic event-driven neural computing architecture in a scalable neural network

Family Cites Families (410)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US662908A (en) 1899-04-17 1900-12-04 Caldwell Mfg Co Garment-hanger.
US960721A (en) 1909-11-22 1910-06-07 Sharp & Smith Pessary.
SE345407B (zh) 1969-02-21 1972-05-29 Fagersta Ab
JPS5128284B2 (zh) 1973-06-26 1976-08-18
JPS593090B2 (ja) 1973-06-27 1984-01-23 カブシキガイシヤ サンコウシヤ ソウデンセンニソツテ ゼツエンシテモウケタ センロニシヨウズル セイデンユウドウデンアツ オ リヨウスル ホウホウ オヨビ ソウチ
JPS5346914B2 (zh) 1973-08-04 1978-12-16
JPS5248050B2 (zh) 1973-10-12 1977-12-07
JPS538621B2 (zh) 1973-11-16 1978-03-30
JPS5114903A (ja) 1974-07-23 1976-02-05 Texaco Development Corp Kainyukayososeibutsu
JPS5426136Y2 (zh) 1974-08-15 1979-08-30
JPS5340274Y2 (zh) 1974-08-16 1978-09-29
JPS5128285A (ja) 1974-09-02 1976-03-10 Ikegai Iron Works Ltd Kosakukikai
JPS5128284A (en) 1974-09-04 1976-03-10 Hitachi Ltd Kozeiseiitazai no setsudanho
CH603655A5 (zh) 1974-10-21 1978-08-31 Hoffmann La Roche
JPS5159087A (zh) 1974-11-20 1976-05-22 Nissan Motor
JPS5165987A (ja) 1974-12-04 1976-06-08 Mori Gijutsu Kenkyusho Kk Garasunokihokenshutsusochi
JPS5181547A (ja) 1975-01-14 1976-07-16 Victor Company Of Japan Tajuhenchohafukuchohoshiki
JPS5197701A (zh) 1975-02-24 1976-08-27
JPS5282272A (en) 1975-12-27 1977-07-09 Jiekoo Kk Three needle clock
JPS5530612Y2 (zh) 1976-08-31 1980-07-21
JPS6025326B2 (ja) 1976-09-11 1985-06-18 株式会社ダイフク 格納設備
JPS5338897A (en) 1976-09-20 1978-04-10 Kyoto Daigaku Souchiyou Method of separating isotope using infrared rays
JPS5346914U (zh) 1976-09-24 1978-04-21
JPS5346914A (en) 1976-10-08 1978-04-27 Agency Of Ind Science & Technol Preparation of dibasic acids
JPS6019868B2 (ja) 1977-12-29 1985-05-18 シャープ株式会社 ファクシミリ装置
JPS56152382A (en) 1980-04-25 1981-11-25 Hitachi Ltd Solid image pickup element
FR2489554B1 (fr) 1980-08-27 1986-10-31 Petit Jean Circuit de traitement numerique en arithmetique distribuee utilisant des multiplexeurs a l'entree d'une memoire
JPS6019868A (ja) 1983-07-12 1985-02-01 戸田建設株式会社 スラブ上端筋の先組工法
JPS6019868U (ja) 1983-07-18 1985-02-12 幸和金属株式会社 ガスコツク
JPS6076092A (ja) 1983-09-30 1985-04-30 Fujitsu Ltd 光磁気メモリ装置
JPS6161586A (ja) 1984-08-31 1986-03-29 Olympus Optical Co Ltd カラ−撮像装置の照明装置
JPS6161586U (zh) 1984-09-25 1986-04-25
US5014235A (en) 1987-12-15 1991-05-07 Steven G. Morton Convolution memory
JPH085165Y2 (ja) 1988-03-18 1996-02-14 富士写真フイルム株式会社 シート状物の吸着取出し装置
US4943931A (en) 1988-05-02 1990-07-24 Trw Inc. Digital artificial neural processor
US5333239A (en) * 1988-09-12 1994-07-26 Fujitsu Limited Learning process system for use with a neural network structure data processing apparatus
US4979124A (en) 1988-10-05 1990-12-18 Cornell Research Foundation Adaptive, neural-based signal processor
US5003490A (en) 1988-10-07 1991-03-26 Hughes Aircraft Company Neural network signal processor
GB2224139A (en) 1988-10-24 1990-04-25 Philips Electronic Associated Digital data processing apparatus
US5008833A (en) 1988-11-18 1991-04-16 California Institute Of Technology Parallel optoelectronic neural network processors
JPH02157832A (ja) 1988-12-12 1990-06-18 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
JP2703010B2 (ja) 1988-12-23 1998-01-26 株式会社日立製作所 ニユーラルネツト信号処理プロセツサ
US5293459A (en) 1988-12-23 1994-03-08 U.S. Philips Corporation Neural integrated circuit comprising learning means
JPH02206867A (ja) 1989-02-06 1990-08-16 Nippon Telegr & Teleph Corp <Ntt> 分類学習装置
JPH02207369A (ja) 1989-02-08 1990-08-17 Hitachi Ltd ニューラルネットワーク計算機
US5195169A (en) 1989-03-03 1993-03-16 Sharp Kabushiki Kaisha Control device for controlling learning of a neural network
DE3909153A1 (de) 1989-03-21 1990-09-27 Bodenseewerk Geraetetech Parallelrechnerstruktur zum modellieren und trainieren kuenstlicher neuronaler netze
JPH02267660A (ja) 1989-04-07 1990-11-01 Pfu Ltd ニューラルネットシミュレート処理装置
US5257358A (en) 1989-04-18 1993-10-26 Nec Electronics, Inc. Method for counting the number of program instruction completed by a microprocessor
JPH02292602A (ja) 1989-05-02 1990-12-04 Nkk Corp 人工神経回路網型ファジィ制御装置
CA2019099A1 (en) 1989-06-16 1990-12-16 Daryl H. Graf Neural controllers
EP0411761B1 (en) 1989-06-28 1996-04-17 Mitsubishi Denki Kabushiki Kaisha Neuronal processing element
JPH05165987A (ja) 1991-12-11 1993-07-02 Ricoh Co Ltd 信号処理装置
DE68927675T2 (de) 1989-08-23 1997-07-10 Philips Electronics Nv Verfahren zur Richtigstellung von Netzwerkwichtungsfaktoren in einer mehrschichtigen Perceptronvorrichtung und eine solche Vorrichtung mit Mitteln zur Ausführung dieses Verfahrens
JPH0391878A (ja) 1989-09-05 1991-04-17 Hamamatsu Photonics Kk 1次処理を用いた光ニユーラルネツトワーク装置
JPH03100857A (ja) 1989-09-14 1991-04-25 Toshiba Corp 神経回路網処理装置
GB2245401A (en) 1989-11-01 1992-01-02 Hughes Aircraft Co Neural network signal processor
JP2803237B2 (ja) 1989-11-07 1998-09-24 ダイキン工業株式会社 データ伝送方法およびその装置
CA2002681A1 (en) 1989-11-10 1991-05-10 Patrick F. Castelaz Neural network signal processor
US5056037A (en) 1989-12-28 1991-10-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Analog hardware for learning neural networks
JPH0581227A (ja) 1990-03-16 1993-04-02 Hughes Aircraft Co 神経系回路網信号処理装置及び信号処理方法
JPH03276137A (ja) 1990-03-27 1991-12-06 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
JPH075904Y2 (ja) 1990-05-12 1995-02-15 水野 幸行 超音波洗浄機
US5148515A (en) 1990-05-22 1992-09-15 International Business Machines Corp. Scalable neural array processor and method
JPH0440581A (ja) 1990-06-06 1992-02-10 Matsushita Electric Ind Co Ltd ニューロプロセッサ
WO1991019267A1 (en) 1990-06-06 1991-12-12 Hughes Aircraft Company Neural network processor
JPH04279175A (ja) 1990-07-03 1992-10-05 Telectronics Nv 不整脈制御装置および不整脈検出方法
US5365460A (en) 1990-08-27 1994-11-15 Rockwell International Corp. Neural network signal processor
JPH04113481A (ja) 1990-09-04 1992-04-14 Graphtec Corp ニューラルネットワーク型データ処理装置の製造方法
JPH04148212A (ja) 1990-10-08 1992-05-21 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
US5367612A (en) 1990-10-30 1994-11-22 Science Applications International Corporation Neurocontrolled adaptive process control system
US5615305A (en) 1990-11-08 1997-03-25 Hughes Missile Systems Company Neural processor element
JPH04182769A (ja) 1990-11-17 1992-06-30 Nissan Motor Co Ltd デジタル・ニューロプロセッサ
JPH04237388A (ja) 1991-01-22 1992-08-25 Matsushita Electric Ind Co Ltd ニューロプロセッサ
IT1244912B (it) 1991-01-31 1994-09-13 Texas Instruments Italia Spa Sistema di apprendimento per rete neuronica di opportuna architettura fisicamente inseribile nel processo di apprendimento.
JPH04264664A (ja) 1991-02-19 1992-09-21 Nippon Telegr & Teleph Corp <Ntt> 神経回路網型パターン処理装置
JP3177996B2 (ja) 1991-04-16 2001-06-18 松下電器産業株式会社 ニューロプロセッサ
JP3151711B2 (ja) 1991-04-30 2001-04-03 日本電信電話株式会社 光ニューラルプロセッサ
DE4215179A1 (de) 1991-05-08 1992-11-12 Caterpillar Inc Prozessor und verarbeitendes element zum gebrauch in einem neural- oder nervennetzwerk
JPH04336370A (ja) 1991-05-13 1992-11-24 Toshiba Corp 人工的神経回路網処理装置
JPH04344970A (ja) 1991-05-23 1992-12-01 Nippon Telegr & Teleph Corp <Ntt> ニューラルネット処理装置
US5485545A (en) 1991-06-20 1996-01-16 Mitsubishi Denki Kabushiki Kaisha Control method using neural networks and a voltage/reactive-power controller for a power system using the control method
JPH052654A (ja) 1991-06-25 1993-01-08 Nissan Motor Co Ltd マイクロコンピユータの故障検知方法および回路
US5293456A (en) 1991-06-28 1994-03-08 E. I. Du Pont De Nemours And Company Object recognition system employing a sparse comparison neural network
JPH075904A (ja) 1991-07-16 1995-01-10 Toshiba Corp ニューラルネットワーク制御装置
JPH0520294A (ja) 1991-07-17 1993-01-29 Fujitsu Ltd ニユーラルネツトワーク型情報処理装置
JPH0567060A (ja) 1991-08-02 1993-03-19 Iizeru Robotsuto Vision:Kk ニユーロデバイス
US5195170A (en) 1991-08-12 1993-03-16 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Neural-network dedicated processor for solving assignment problems
JPH0567064A (ja) 1991-09-05 1993-03-19 Toshiba Corp 神経回路網自動構築システム
US5519811A (en) 1991-10-17 1996-05-21 Kawasaki Steel Corporation Neural network, processor, and pattern recognition apparatus
US5297232A (en) 1991-10-30 1994-03-22 Westinghouse Electric Corp. Wireless neural network and a wireless neural processing element
JPH05128285A (ja) 1991-11-07 1993-05-25 Matsushita Electric Ind Co Ltd ニユーロプロセツサ
JPH05128284A (ja) 1991-11-07 1993-05-25 Matsushita Electric Ind Co Ltd ニユーロプロセツサ
JPH05128085A (ja) 1991-11-08 1993-05-25 Toshiba Corp システム制御の学習方法
JPH05159087A (ja) 1991-12-06 1993-06-25 Matsushita Electric Ind Co Ltd ニューロプロセッサ
FR2685109A1 (fr) 1991-12-11 1993-06-18 Philips Electronique Lab Processeur numerique neuronal operant avec une approximation d'une fonction d'activation non lineaire.
JPH05165800A (ja) 1991-12-16 1993-07-02 Toshiba Corp ニューラルネットを用いた情報処理装置
JPH05181547A (ja) 1992-01-06 1993-07-23 Tonen Corp 電気粘性流体使用装置
US5278945A (en) 1992-01-10 1994-01-11 American Neuralogical, Inc. Neural processor apparatus
JPH05197701A (ja) 1992-01-21 1993-08-06 Fujitsu Ltd ニューラルネットワークを用いた情報処理装置
JPH05233586A (ja) * 1992-02-25 1993-09-10 Mitsubishi Electric Corp デジタル神経回路およびその駆動方法
FR2687814A1 (fr) 1992-02-26 1993-08-27 Philips Electronique Lab Processeur neuronal a cellules synaptiques reparties.
FR2724029B1 (fr) 1992-03-17 1997-12-19 Thomson Csf Procede de detection de signaux acoustiques provenant de torpilles
US5448681A (en) 1992-03-27 1995-09-05 National Semiconductor Corporation Intelligent controller with neural network and reinforcement learning
JPH05282272A (ja) 1992-03-31 1993-10-29 Akira Iwata ニューラルネットワーク並列分散処理装置
JPH05281199A (ja) 1992-03-31 1993-10-29 Nuclear Fuel Ind Ltd 探傷データ評価装置及び方法
FR2690772A1 (fr) 1992-04-29 1993-11-05 Philips Electronique Lab Processeur neuronal muni de moyens pour calculer une norme ou une distance.
FR2690771A1 (fr) 1992-04-29 1993-11-05 Philips Electronique Lab Processeur neuronal muni de moyens pour normaliser des données.
US5355435A (en) 1992-05-18 1994-10-11 New Mexico State University Technology Transfer Corp. Asynchronous temporal neural processing element
JPH05334278A (ja) 1992-05-29 1993-12-17 Victor Co Of Japan Ltd ニューラルネットによる波形処理装置の設計方法
JPH05346914A (ja) 1992-06-16 1993-12-27 Matsushita Electron Corp ニューロプロセッサ
JPH0676092A (ja) 1992-06-29 1994-03-18 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
JPH0619868A (ja) 1992-06-29 1994-01-28 Victor Co Of Japan Ltd ニューラルネットによる波形処理装置及びその設計方法
RU2057363C1 (ru) 1992-06-30 1996-03-27 Александр Федорович Лавренюк Гибридная ячейка оптоэлектронного нейропроцессора
JPH0652132A (ja) 1992-07-28 1994-02-25 Mitsubishi Electric Corp 並列演算半導体集積回路装置およびそれを用いたシステム
US5521985A (en) 1992-08-13 1996-05-28 International Business Machines Corporation Apparatus for recognizing machine generated or handprinted text
US5479579A (en) 1992-09-04 1995-12-26 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Cascaded VLSI neural network architecture for on-line learning
JPH06348906A (ja) * 1992-10-01 1994-12-22 Sony Electron Inc ニューラルネットワークを訓練する方法、文字認識装置、およびシンボル処理方法
JPH06195322A (ja) * 1992-10-29 1994-07-15 Hitachi Ltd 汎用型ニューロコンピュータとして用いられる情報処理装置
JPH06161586A (ja) 1992-11-17 1994-06-07 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルプロセッサ
US5486996A (en) 1993-01-22 1996-01-23 Honeywell Inc. Parameterized neurocontrollers
US5627943A (en) 1993-02-17 1997-05-06 Kawasaki Steel Corporation Neural network processor including systolic array of two-dimensional layers
EP0575716A1 (en) 1993-04-08 1993-12-29 Andrzej Cichocki A neural network and signal processing units
US6267298B1 (en) 1993-05-28 2001-07-31 Paul D. Campbell Neural networked irrigation controller
JP3183484B2 (ja) * 1993-06-07 2001-07-09 日本電信電話株式会社 プロトコル処理装置
JPH07105165A (ja) 1993-09-30 1995-04-21 Nri & Ncc Co Ltd ニューラルネットワーク情報処理装置
US5704012A (en) 1993-10-08 1997-12-30 International Business Machines Corporation Adaptive resource allocation using neural networks
US5493631A (en) 1993-11-17 1996-02-20 Northrop Grumman Corporation Stabilized adaptive neural network based control system
JPH07160796A (ja) 1993-12-03 1995-06-23 Victor Co Of Japan Ltd ニューラルネットによる信号処理装置
JP3172352B2 (ja) 1993-12-27 2001-06-04 松下電器産業株式会社 ニューラルネットワーク回路
JP2615422B2 (ja) 1994-03-23 1997-05-28 工業技術院長 時系列学習神経回路素子およびそれを用いた時系列学習神経回路
US5583964A (en) 1994-05-02 1996-12-10 Motorola, Inc. Computer utilizing neural network and method of using same
JPH07302292A (ja) 1994-05-09 1995-11-14 Nippon Telegr & Teleph Corp <Ntt> ニューラルネットワーク回路の制御装置
JPH085165A (ja) 1994-06-21 1996-01-12 Matsushita Refrig Co Ltd 自動販売機の冷却装置
DE69430744T2 (de) 1994-07-28 2003-01-30 Ibm Verbesserte Neuronalhalbleiterchipsarchitekturen und Neuronalnetzwerke darin
US5583771A (en) 1994-08-04 1996-12-10 Delco Electronics Corp. Method and apparatus for distinguishing between deployment events and non-deployment events in an SIR system
US5533383A (en) 1994-08-18 1996-07-09 General Electric Company Integrated acoustic leak detection processing system
US5430830A (en) 1994-08-22 1995-07-04 Motorola, Inc. Adaptive weight adjusting circuit for an neural network
JP3448109B2 (ja) 1994-08-23 2003-09-16 岩山 清喜 埋め殺し用多孔性型枠パネルを使用したコンクリート構造物
US5450315A (en) 1994-09-26 1995-09-12 Square D Company Apparatus using a neural network for power factor calculation
KR0138859B1 (ko) 1994-12-06 1998-06-15 양승택 다중 명령어 다중 데이타형 신경망 전용 디지탈 어레이 프로세서 및 이를 이용해 구성된 시스템
US7155401B1 (en) 1994-12-23 2006-12-26 International Business Machines Corporation Automatic sales promotion selection system and method
JP3100857B2 (ja) 1995-02-28 2000-10-23 松下電工株式会社 火報センサ
AU6105296A (en) 1995-06-07 1996-12-30 Inficom, Inc. Neutral network processor for communication systems and meth od for its use
JPH0926948A (ja) 1995-07-11 1997-01-28 Fujitsu Ltd ニューラルネットワークによる情報処理装置
US5956703A (en) 1995-07-28 1999-09-21 Delco Electronics Corporation Configurable neural network integrated circuit
JPH102292A (ja) 1996-04-16 1998-01-06 Yasunari Takeshita 電動灯油ポンプ
JP4237388B2 (ja) 1996-04-22 2009-03-11 サミー株式会社 スロットマシン
JPH1055346A (ja) * 1996-05-30 1998-02-24 Matsushita Electric Ind Co Ltd ニューラルネットワーク回路
US5978782A (en) 1996-07-05 1999-11-02 National Semiconductor Corporation Neural network signal processor for magnetic storage channels
US5705956A (en) 1996-07-12 1998-01-06 National Semiconductor Corporation Neural network based PLL
JP2000514271A (ja) 1996-10-08 2000-10-24 ティアナン・コミュニケーションズ・インコーポレーテッド マルチサービストランスポートの多重化装置およびその方法
JP2001507772A (ja) 1996-10-23 2001-06-12 フォード、グローバル、テクノロジーズ、インコーポレーテッド ビットシリアルに基くリカレント・ニューロプロセッサーを含む自動車用エンジンの失火検出システム
JP3276137B2 (ja) 1996-11-29 2002-04-22 日本電波工業株式会社 水晶発振回路
US5944841A (en) 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
DE19718224A1 (de) 1997-04-30 1997-11-27 Harald Dipl Phys Wuest Digitaler Neuroprozessor
US6317658B1 (en) 1997-10-15 2001-11-13 The Boeing Company Neurocomputing control distribution system
RU2131145C1 (ru) 1998-06-16 1999-05-27 Закрытое акционерное общество Научно-технический центр "Модуль" Нейропроцессор, устройство для вычисления функций насыщения, вычислительное устройство и сумматор
FR2780919B1 (fr) 1998-07-08 2002-05-17 Peugeot Dispositif de commande du fonctionnement d'un systeme de ventilation/climatisation de l'habitacle d'un vehicule automobile
US6529614B1 (en) 1998-08-05 2003-03-04 California Institute Of Technology Advanced miniature processing handware for ATR applications
US7308322B1 (en) 1998-09-29 2007-12-11 Rockwell Automation Technologies, Inc. Motorized system integrated control and diagnostics using vibration, pressure, temperature, speed, and/or current analysis
JP4344970B2 (ja) 1998-12-21 2009-10-14 東洋紡績株式会社 ポリウレタン組成物、ポリウレタン繊維、及びポリウレタン繊維の製造方法
US6523018B1 (en) 1998-12-29 2003-02-18 International Business Machines Corporation Neural chip architecture and neural networks incorporated therein
GB9902115D0 (en) 1999-02-01 1999-03-24 Axeon Limited Neural networks
KR100367715B1 (ko) 1999-04-03 2003-01-10 조용범 이동통신의 채널할당을 위한 디지털 홉필드 신경망 칩
JP2000322400A (ja) 1999-05-10 2000-11-24 Fuji Xerox Co Ltd 情報処理装置
US6446238B1 (en) 1999-05-21 2002-09-03 International Business Machines Corporation System and method for updating microcode stored in a non-volatile memory
GB2351885A (en) 1999-06-26 2001-01-10 Axeon Ltd Neural network for real-time channel equalisation
EP1121608B1 (en) 1999-08-12 2006-12-27 Automotive Systems Laboratory Inc. Neural network radar processor
US6882992B1 (en) 1999-09-02 2005-04-19 Paul J. Werbos Neural networks for intelligent control
US6542985B1 (en) 1999-09-23 2003-04-01 Unisys Corporation Event counter
US6326912B1 (en) 1999-09-24 2001-12-04 Akm Semiconductor, Inc. Analog-to-digital conversion using a multi-bit analog delta-sigma modulator combined with a one-bit digital delta-sigma modulator
US6480977B1 (en) 1999-10-29 2002-11-12 Worldcom, Inc. Multi-protocol monitor
US6578020B1 (en) 1999-12-07 2003-06-10 International Business Machines Corporation Method and system for converting code to executable code using neural networks implemented in a very large scale integration (VLSI) integrated circuit
JP2001034735A (ja) 2000-01-01 2001-02-09 Hitachi Ltd 情報処理装置
US6567953B1 (en) 2000-03-29 2003-05-20 Intel Corporation Method and apparatus for host-based validating of data transferred between a device and a host
KR20010095960A (ko) 2000-04-14 2001-11-07 유인균 인공지능형 아파트 구현을 위한 인공신경망 제어기
US6665813B1 (en) 2000-08-03 2003-12-16 International Business Machines Corporation Method and apparatus for updateable flash memory design and recovery with minimal redundancy
US6629089B1 (en) 2000-09-29 2003-09-30 Cirrus Logic, Inc. Artificial neural network voice coil motor controller
US6751757B2 (en) 2000-12-07 2004-06-15 3Ware Disk drive data protection using clusters containing error detection sectors
US6493689B2 (en) 2000-12-29 2002-12-10 General Dynamics Advanced Technology Systems, Inc. Neural net controller for noise and vibration reduction
AUPR343401A0 (en) 2001-02-28 2001-03-29 Nguyen, Hung Modelling and design for early warning systems using physiological responses
TW501344B (en) 2001-03-06 2002-09-01 Nat Science Council Complex-valued multiplier-and-accumulator
JP4846924B2 (ja) * 2001-05-31 2011-12-28 キヤノン株式会社 パターン認識装置
US6981171B2 (en) 2001-06-05 2005-12-27 Sun Microsystems, Inc. Data storage array employing block verification information to invoke initialization procedures
US7117045B2 (en) 2001-09-08 2006-10-03 Colorado State University Research Foundation Combined proportional plus integral (PI) and neural network (nN) controller
US6836767B2 (en) 2001-10-03 2004-12-28 International Business Machines Corporation Pipelined hardware implementation of a neural network circuit
US6665560B2 (en) 2001-10-04 2003-12-16 International Business Machines Corporation Sleep disconnect safety override for direct human-computer neural interfaces for the control of computer controlled functions
US6877128B2 (en) 2001-12-14 2005-04-05 Storage Technology Corporation Weighted error/erasure correction in a multi-track storage medium
US9269043B2 (en) 2002-03-12 2016-02-23 Knowm Tech, Llc Memristive neural processor utilizing anti-hebbian and hebbian technology
CA2383318A1 (en) 2002-04-25 2003-10-25 Mike A. Trzecieski Active optical component alignment system and method
US7069256B1 (en) 2002-05-23 2006-06-27 Oracle International Corporation Neural network module for data mining
US6751529B1 (en) 2002-06-03 2004-06-15 Neural Robotics, Inc. System and method for controlling model aircraft
US7174325B1 (en) 2002-06-07 2007-02-06 George Mason Intellectual Properties, Inc. Neural processor
JP4182769B2 (ja) 2002-06-21 2008-11-19 アイシン・エィ・ダブリュ株式会社 画像表示装置及びナビゲーション装置
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
JP4328691B2 (ja) 2003-08-11 2009-09-09 キヤノン株式会社 画像形成方法、画像形成装置、データ生成装置およびプログラム
JP4113481B2 (ja) 2003-09-03 2008-07-09 日本電信電話株式会社 音声品質客観評価装置および音声品質客観評価方法
JP3100857U (ja) 2003-10-03 2004-05-27 南亜塑膠工業股▲ふん▼有限公司 対称嵌設ガラス枠のほぞ接合構造
KR20050042871A (ko) 2003-11-04 2005-05-11 박왈서 실용적 적응 신경회로망 제어기
US7751877B2 (en) 2003-11-25 2010-07-06 Braingate Co., Llc Neural interface system with embedded id
JP4040581B2 (ja) 2004-01-20 2008-01-30 日本特殊陶業株式会社 真空−加圧圧力変動吸着型酸素濃縮器
US7424698B2 (en) 2004-02-27 2008-09-09 Intel Corporation Allocation of combined or separate data and control planes
US7276031B2 (en) 2004-05-12 2007-10-02 New York University System and method for classifying patient's breathing using artificial neural network
US7302619B1 (en) 2004-07-06 2007-11-27 Mindspeed Technologies, Inc. Error correction in a cache memory
US7721069B2 (en) 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US7526460B2 (en) 2004-09-16 2009-04-28 Neal Solomon Mobile hybrid software router
JP4148212B2 (ja) 2004-10-19 2008-09-10 松下電器産業株式会社 誘導加熱調理器
MY179032A (en) 2004-10-25 2020-10-26 Cancer Research Tech Ltd Ortho-condensed pyridine and pyrimidine derivatives (e.g.purines) as protein kinase inhibitors
US9014181B2 (en) 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
CA2883638C (en) 2004-11-12 2017-06-20 Xtralis Technologies Ltd Particle detector, system and method
JP2006154992A (ja) 2004-11-26 2006-06-15 Akita Prefecture ニューロプロセッサ
CN101111506B (zh) 2004-12-03 2016-05-18 株式会社半导体能源研究所 有机金属络合物和采用有机金属络合物的发光元件及发光装置
JP4435180B2 (ja) 2004-12-28 2010-03-17 東芝ストレージデバイス株式会社 メモリ診断方法
US7627540B2 (en) 2005-06-28 2009-12-01 Neurosciences Research Foundation, Inc. Addressing scheme for neural modeling and brain-based devices using special purpose processor
US7533071B2 (en) 2005-06-28 2009-05-12 Neurosciences Research Foundation, Inc. Neural modeling and brain-based devices using special purpose processor
US7765029B2 (en) 2005-09-13 2010-07-27 Neurosciences Research Foundation, Inc. Hybrid control device
JP5159087B2 (ja) 2005-11-11 2013-03-06 キヤノン株式会社 荷電制御剤、及び静電荷像現像トナー
US9101279B2 (en) 2006-02-15 2015-08-11 Virtual Video Reality By Ritchey, Llc Mobile user borne brain activity data and surrounding environment data correlation system
US9542642B2 (en) 2006-04-06 2017-01-10 Samuel F. Wood Packet data neural network system and method
JP5081227B2 (ja) 2006-04-11 2012-11-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Mrスキャナ内で超音波トランスデューサを位置決めする装置
TWI346504B (en) * 2006-09-05 2011-08-01 Mstar Semiconductor Inc Sound signal processing system and related apparatus
US8648867B2 (en) 2006-09-25 2014-02-11 Neurala Llc Graphic processor based accelerator system and method
JP5165987B2 (ja) 2006-10-13 2013-03-21 花王株式会社 マスカラ塗布具
US8145983B1 (en) 2006-11-08 2012-03-27 Marvell International Ltd. Methods and apparatus for identification of likely errors in data blocks
JP4264664B2 (ja) 2006-12-06 2009-05-20 ソニー株式会社 電力供給システム、電源プレート、及び電子機器
US7647284B2 (en) 2007-01-12 2010-01-12 Toyota Motor Engineering & Manufacturing North America, Inc. Fixed-weight recurrent neural network controller with fixed long-term and adaptive short-term memory
JP4336370B2 (ja) 2007-02-19 2009-09-30 古河電気工業株式会社 グレーティング型光部品のパッケージング方法
JP5181547B2 (ja) 2007-06-28 2013-04-10 タカタ株式会社 エアバッグ及びエアバッグ装置並びに乗員拘束装置
JP5067064B2 (ja) 2007-08-07 2012-11-07 ダイキン工業株式会社 圧縮機用油回収器および圧縮機
KR100919572B1 (ko) 2007-09-11 2009-10-01 주식회사 부시파워 디지털 조속기의 속도제어를 위한 속도형 신경망 제어기
JP5368687B2 (ja) 2007-09-26 2013-12-18 キヤノン株式会社 演算処理装置および方法
WO2009063475A1 (en) * 2007-11-12 2009-05-22 Pricol Limited A fluid level sensor
CN101452258A (zh) 2007-12-06 2009-06-10 西安电子科技大学 一种与模型无关的自适应控制器及其控制方法
US7561077B1 (en) * 2007-12-28 2009-07-14 L3 Communications Integrated Systems, L.P. Multiple stream multiple rate resampling component
US7861110B2 (en) 2008-04-30 2010-12-28 Egenera, Inc. System, method, and adapter for creating fault-tolerant communication busses from standard components
JP5200664B2 (ja) 2008-05-28 2013-06-05 大日本印刷株式会社 メモリの内容を改竄する故障攻撃の検知方法、セキュリティデバイス及びコンピュータプログラム
US8081816B1 (en) 2008-06-06 2011-12-20 Kevin Maurice Irick Apparatus and method for hardware implementation of object recognition from an image stream using artificial neural network
CN101493677B (zh) 2008-06-30 2011-06-29 李华嵩 一种神经网络的系统控制器结构及系统辨识结构
US8654457B2 (en) 2008-06-30 2014-02-18 Konica Minolta Opto, Inc. Wide-angle optical system, and imaging device
UA96148C2 (ru) 2008-09-25 2011-10-10 Запорожский Национальный Технический Университет Нейросетевая система управления процессом и способ ее конфигурации при обучении
US8131659B2 (en) 2008-09-25 2012-03-06 Microsoft Corporation Field-programmable gate array based accelerator system
DE102008052160A1 (de) 2008-10-20 2010-04-22 Deutsch Französisches Forschungsinstitut Saint Louis Sensoreinheit zur Umgebungsbeobachtung mit neuronalem Prozessor
US8321769B1 (en) 2008-11-06 2012-11-27 Marvell International Ltd. Multi-parity tensor-product code for data channel
US20100205399A1 (en) 2009-02-12 2010-08-12 Via Technologies, Inc. Performance counter for microcode instruction execution
US8219952B2 (en) * 2009-02-23 2012-07-10 Synopsys, Inc. Variation aware victim and aggressor timing overlap detection by pessimism reduction based on relative positions of timing windows
US7948178B2 (en) 2009-03-04 2011-05-24 Global Oled Technology Llc Hermetic seal
JP5376509B2 (ja) * 2009-03-16 2013-12-25 スパンション エルエルシー 実行履歴トレース方法
US8543888B2 (en) 2009-06-09 2013-09-24 Microchip Technology Incorporated Programmable cyclic redundancy check CRC unit
JP5282693B2 (ja) * 2009-07-27 2013-09-04 株式会社リコー 画像形成装置、表示制御方法、及びプログラム
DE102009037630B4 (de) 2009-08-14 2017-12-07 Texas Instruments Deutschland Gmbh Elektronische Vorrichtung und Verfahren zur Überprüfung der korrekten Programmausführung
EP2572293A4 (en) 2010-05-19 2013-12-04 Univ California NEURONAL TREATMENT UNIT
US8676734B2 (en) 2010-07-07 2014-03-18 Qualcomm, Incorporated Methods and systems for replaceable synaptic weight storage in neuro-processors
US9129220B2 (en) 2010-07-07 2015-09-08 Qualcomm Incorporated Methods and systems for digital neural processing with discrete-level synapes and probabilistic STDP
US8892485B2 (en) 2010-07-08 2014-11-18 Qualcomm Incorporated Methods and systems for neural processor training by encouragement of correct output
CN101882238B (zh) 2010-07-15 2012-02-22 长安大学 基于sopc的小波神经网络处理器
US8996967B2 (en) 2010-08-06 2015-03-31 Stmicroelectronics, Inc. Rendering data write errors detectable
US8745466B2 (en) 2010-08-06 2014-06-03 Stmicroelectronics, Inc. Detecting data-write errors
US9361104B2 (en) 2010-08-13 2016-06-07 Freescale Semiconductor, Inc. Systems and methods for determining instruction execution error by comparing an operand of a reference instruction to a result of a subsequent cross-check instruction
JP5197701B2 (ja) 2010-09-21 2013-05-15 株式会社東芝 密閉型二次電池の製造装置及び製造方法
CN201927073U (zh) 2010-11-25 2011-08-10 福建师范大学 一种可编程硬件bp神经元处理器
JP5346914B2 (ja) 2010-12-27 2013-11-20 京セラドキュメントソリューションズ株式会社 画像形成装置
US20120179898A1 (en) 2011-01-10 2012-07-12 Apple Inc. System and method for enforcing software security through cpu statistics gathered using hardware features
KR20140012981A (ko) 2011-02-17 2014-02-04 바이오 코크 랩. 씨오., 엘티디. 수소를 발생하는 조성물
US9129222B2 (en) 2011-06-22 2015-09-08 Qualcomm Incorporated Method and apparatus for a local competitive learning rule that leads to sparse connectivity
US8983611B2 (en) 2011-09-27 2015-03-17 Cardiac Pacemakers, Inc. Neural control of central sleep apnea
RU2473126C1 (ru) 2011-10-28 2013-01-20 Федеральное государственное унитарное предприятие "Научно-производственное объединение автоматики имени академика Н.А. Семихатова" Нейропроцессор
US8996350B1 (en) 2011-11-02 2015-03-31 Dub Software Group, Inc. System and method for automatic document management
CN102490120B (zh) 2011-11-29 2013-10-09 清华大学 用于化学机械抛光机的自适应逆控制系统
US8996430B2 (en) * 2012-01-27 2015-03-31 International Business Machines Corporation Hierarchical scalable neuromorphic synaptronic system for synaptic and structural plasticity
KR20130090147A (ko) 2012-02-03 2013-08-13 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
EP2825974A4 (en) 2012-03-15 2017-04-05 Qualcomm Technologies, Inc. Tag-based apparatus and methods for neural networks
US8640243B2 (en) 2012-03-22 2014-01-28 International Business Machines Corporation Detecting malicious computer code in an executing program module
US9149747B2 (en) 2012-04-18 2015-10-06 Tec One Co., Ltd. Carbon fiber material, carbon fiber material manufacturing method, and material containing the carbon fiber material
US9378455B2 (en) * 2012-05-10 2016-06-28 Yan M. Yufik Systems and methods for a computer understanding multi modal data streams
US10936569B1 (en) 2012-05-18 2021-03-02 Reservoir Labs, Inc. Efficient and scalable computations with sparse tensors
JP6019868B2 (ja) 2012-07-20 2016-11-02 カシオ計算機株式会社 電源装置、電子機器及び電源制御方法
US9082078B2 (en) 2012-07-27 2015-07-14 The Intellisis Corporation Neural processing engine and architecture using the same
US9400954B2 (en) 2012-07-30 2016-07-26 International Business Machines Corporation Multi-scale spatio-temporal neural network system
US9159020B2 (en) 2012-09-14 2015-10-13 International Business Machines Corporation Multiplexing physical neurons to optimize power and area
TWI474728B (zh) 2012-09-21 2015-02-21 建構於適應性網路模糊推論系統之三層串接式認知引擎之方法及裝置
US20140108734A1 (en) 2012-10-17 2014-04-17 Advanced Micro Devices, Inc. Method and apparatus for saving processor architectural state in cache hierarchy
US9153230B2 (en) 2012-10-23 2015-10-06 Google Inc. Mobile speech recognition hardware accelerator
US9477925B2 (en) 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition
US9087301B2 (en) 2012-12-21 2015-07-21 International Business Machines Corporation Hardware architecture for simulating a neural network of neurons
US9262712B2 (en) 2013-03-08 2016-02-16 International Business Machines Corporation Structural descriptions for neurosynaptic networks
US9542643B2 (en) 2013-05-21 2017-01-10 Qualcomm Incorporated Efficient hardware implementation of spiking networks
US20150026104A1 (en) 2013-07-17 2015-01-22 Christopher Tambos System and method for email classification
CN104459064A (zh) 2013-09-12 2015-03-25 西安众智惠泽光电科技有限公司 一种化学需氧量在线监控电路
US9600235B2 (en) 2013-09-13 2017-03-21 Nvidia Corporation Technique for performing arbitrary width integer arithmetic operations using fixed width elements
US10339041B2 (en) 2013-10-11 2019-07-02 Qualcomm Incorporated Shared memory architecture for a neural simulator
US10095718B2 (en) 2013-10-16 2018-10-09 University Of Tennessee Research Foundation Method and apparatus for constructing a dynamic adaptive neural network array (DANNA)
US20150134580A1 (en) 2013-11-12 2015-05-14 Persyst Development Corporation Method And System For Training A Neural Network
US9230208B2 (en) 2013-12-18 2016-01-05 International Business Machines Corporation Haptic-based artificial neural network training
US9978014B2 (en) 2013-12-18 2018-05-22 Intel Corporation Reconfigurable processing unit
US9195656B2 (en) 2013-12-30 2015-11-24 Google Inc. Multilingual prosody generation
CN103778468B (zh) 2014-01-16 2016-09-07 北京大学 一种基于rram的新型神经网络电路
CN104809498B (zh) 2014-01-24 2018-02-13 清华大学 一种基于神经形态电路的类脑协处理器
US20150212861A1 (en) 2014-01-24 2015-07-30 Qualcomm Incorporated Value synchronization across neural processors
JP6501146B2 (ja) 2014-03-18 2019-04-17 パナソニックIpマネジメント株式会社 ニューラルネットワーク回路およびその学習方法
US20150269480A1 (en) 2014-03-21 2015-09-24 Qualcomm Incorporated Implementing a neural-network processor
US9852006B2 (en) 2014-03-28 2017-12-26 International Business Machines Corporation Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits
WO2015157013A1 (en) 2014-04-11 2015-10-15 Analog Devices, Inc. Apparatus, systems and methods for providing blind source separation services
US20150324691A1 (en) 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
US20150324690A1 (en) 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US10846611B2 (en) 2014-06-16 2020-11-24 Nokia Technologies Oy Data processing
JP6354394B2 (ja) 2014-07-04 2018-07-11 富士ゼロックス株式会社 情報処理装置および画像処理システム
CN104107507B (zh) 2014-07-09 2016-06-08 庞德兴 基于rfid射频技术的无源微创皮下神经介入芯片
US9747545B2 (en) 2014-09-19 2017-08-29 International Business Machines Corporation Self-timed, event-driven neurosynaptic core controller
JP6161586B2 (ja) 2014-10-02 2017-07-12 コトブキ技研工業株式会社 粒状物質の磨砕装置
LT3095034T (lt) 2014-10-21 2019-09-25 IronNet Cybersecurity, Inc. Kibernetinio saugumo sistema
EP3035249B1 (en) * 2014-12-19 2019-11-27 Intel Corporation Method and apparatus for distributed and cooperative computation in artificial neural networks
EP3035204B1 (en) 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
US9607217B2 (en) 2014-12-22 2017-03-28 Yahoo! Inc. Generating preference indices for image content
CN104493826A (zh) 2014-12-23 2015-04-08 南京熊猫电子股份有限公司 结合神经网络控制的重载机器人位置控制器
US20160210550A1 (en) 2015-01-20 2016-07-21 Nomizo, Inc. Cloud-based neural networks
US9460386B2 (en) 2015-02-05 2016-10-04 International Business Machines Corporation Passage justification scoring for question answering
JP6360802B2 (ja) 2015-02-20 2018-07-18 株式会社デンソーアイティーラボラトリ ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両
US10318866B2 (en) 2015-03-05 2019-06-11 International Business Machines Corporation Selectivity estimation using artificial neural networks
EP3089080A1 (en) * 2015-04-27 2016-11-02 Universität Zürich Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US20160328645A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US20160335119A1 (en) 2015-05-12 2016-11-17 minds.ai inc Batch-based neural network system
US20160335534A1 (en) 2015-05-14 2016-11-17 Thalchemy Corporation Neural sensor hub system
JP6674838B2 (ja) 2015-05-21 2020-04-01 株式会社半導体エネルギー研究所 電子装置
US9747546B2 (en) 2015-05-21 2017-08-29 Google Inc. Neural network processor
US10438117B1 (en) 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
US10083395B2 (en) * 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
CN104899641B (zh) 2015-05-25 2018-07-13 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
CN106250981B (zh) * 2015-06-10 2022-04-01 三星电子株式会社 减少存储器访问和网络内带宽消耗的脉冲神经网络
US11244225B2 (en) 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
US11157800B2 (en) 2015-07-24 2021-10-26 Brainchip, Inc. Neural processor based accelerator system and method
CN105260776B (zh) 2015-09-10 2018-03-27 华为技术有限公司 神经网络处理器和卷积神经网络处理器
CN105184366B (zh) 2015-09-15 2018-01-09 中国科学院计算技术研究所 一种时分复用的通用神经网络处理器
EP3144820A1 (en) * 2015-09-18 2017-03-22 Stichting IMEC Nederland Inter-cluster data communication network for a dynamic shared communication platform
US20170090929A1 (en) 2015-09-25 2017-03-30 Mcafee, Inc. Hardware-assisted software verification and secure execution
RU2602973C1 (ru) 2015-09-30 2016-11-20 Федеральное государственное бюджетное образовательное учреждение высшего образования "Кубанский государственный технологический университет" (ФГБОУ ВО "КубГТУ") Контроллер управления обучением нейронной сети с генетическим алгоритмом
US10317930B2 (en) 2015-09-30 2019-06-11 International Business Machines Corporation Optimizing core utilization in neurosynaptic systems
US9673934B2 (en) 2015-09-30 2017-06-06 Mellanox Technologies Tlv Ltd. Error correction on demand
CN106503796B (zh) 2015-10-08 2019-02-12 上海兆芯集成电路有限公司 多运算神经网络单元
US9905200B2 (en) * 2015-10-19 2018-02-27 Yahoo Holdings, Inc. Computerized system and method for automatically creating and applying a filter to alter the display of rendered media
CN105311750B (zh) 2015-11-09 2017-09-26 杭州承诺医疗科技有限公司 一种骶神经刺激系统
US10310826B2 (en) 2015-11-19 2019-06-04 Intel Corporation Technologies for automatic reordering of sparse matrices
CN105653790B (zh) 2015-12-29 2019-03-29 东南大学—无锡集成电路技术研究所 一种基于人工神经网络的乱序处理器Cache访存性能评估方法
CN105678379B (zh) 2016-01-12 2020-08-07 腾讯科技(深圳)有限公司 一种cnn的处理方法和装置
JP6900190B2 (ja) * 2016-01-14 2021-07-07 キヤノン株式会社 認識学習装置、認識学習方法及びプログラム
EP3295381B1 (en) 2016-02-05 2022-08-24 DeepMind Technologies Limited Augmenting neural networks with sparsely-accessed external memory
CN105844330B (zh) 2016-03-22 2019-06-28 华为技术有限公司 神经网络处理器的数据处理方法及神经网络处理器
CN105676649A (zh) 2016-04-09 2016-06-15 北京工业大学 一种基于自组织神经网络的污水处理过程控制方法
CA2927171C (en) 2016-04-13 2017-05-02 1Qb Information Technologies Inc. Quantum processor and its use for implementing a neural network
CN105930902B (zh) 2016-04-18 2018-08-10 中国科学院计算技术研究所 一种神经网络的处理方法、系统
KR101754985B1 (ko) 2016-04-21 2017-07-19 주식회사 아이씨케이 비접촉식 카드 기능을 갖는 메탈 카드 및 그 제조 방법
US10360846B2 (en) 2016-05-10 2019-07-23 X-Celeprint Limited Distributed pulse-width modulation system with multi-bit digital storage and output device
CN106022468B (zh) 2016-05-17 2018-06-01 成都启英泰伦科技有限公司 人工神经网络处理器集成电路及该集成电路的设计方法
CN105872477B (zh) * 2016-05-27 2018-11-23 北京旷视科技有限公司 视频监控方法和视频监控系统
US10949737B2 (en) 2016-07-13 2021-03-16 Samsung Electronics Co., Ltd. Method for neural network and apparatus performing same method
US11222263B2 (en) 2016-07-28 2022-01-11 Samsung Electronics Co., Ltd. Neural network method and apparatus
US10621486B2 (en) * 2016-08-12 2020-04-14 Beijing Deephi Intelligent Technology Co., Ltd. Method for optimizing an artificial neural network (ANN)
US11544539B2 (en) * 2016-09-29 2023-01-03 Tsinghua University Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
CN106447034B (zh) 2016-10-27 2019-07-30 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片
CN106529670B (zh) 2016-10-27 2019-01-25 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片
US10430706B2 (en) 2016-12-01 2019-10-01 Via Alliance Semiconductor Co., Ltd. Processor with memory array operable as either last level cache slice or neural network unit memory
US10824937B2 (en) * 2016-12-20 2020-11-03 Intel Corporation Scalable neuromorphic core with shared synaptic memory and variable precision synaptic memory
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10713558B2 (en) 2016-12-30 2020-07-14 Intel Corporation Neural network with reconfigurable sparse connectivity and online learning
WO2018126270A1 (en) 2017-01-02 2018-07-05 Novumind, Inc. Unsupervised learning of object recognition methods and systems
CN110249424A (zh) 2017-02-02 2019-09-17 株式会社钟化 层间热接合构件、层间热接合方法、层间热接合构件的制造方法
JP7005904B2 (ja) 2017-02-03 2022-01-24 いすゞ自動車株式会社 走行制御装置、車両および走行制御方法
US20180232627A1 (en) * 2017-02-16 2018-08-16 Intel IP Corporation Variable word length neural network accelerator circuit
CN113792847B (zh) 2017-02-23 2024-03-08 大脑系统公司 加速的深度学习的设备、方法和系统
US10261786B2 (en) 2017-03-09 2019-04-16 Google Llc Vector processing unit
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
CN110574195B (zh) 2017-04-21 2023-03-31 三洋化成工业株式会社 锂离子电极用粘合剂、锂离子电池用电极和锂离子电池用电极的制造方法
US11501139B2 (en) 2017-05-03 2022-11-15 Intel Corporation Scaling half-precision floating point tensors for training deep neural networks
US10169298B1 (en) 2017-05-11 2019-01-01 NovuMind Limited Native tensor processor, using outer product unit
US10776694B2 (en) 2017-05-16 2020-09-15 Samsung Electronics Co., Ltd. Optimized neural network input stride method and apparatus
CN115841137A (zh) 2017-06-06 2023-03-24 格兰菲智能科技有限公司 一种用于对待量化数据进行定点化处理的方法及计算装置
US10944632B2 (en) 2017-06-22 2021-03-09 Texas Instruments Incorporated Accelerated network reconnect using previous connection parameters
US10776308B2 (en) 2017-06-30 2020-09-15 Intel Corporation Smart memory data store or load method and apparatus
US10445065B2 (en) 2017-09-08 2019-10-15 National Technology & Engineering Solutions Of Sandia, Llc Constant depth, near constant depth, and subcubic size threshold circuits for linear algebraic calculations
US10541782B2 (en) 2017-11-20 2020-01-21 International Business Machines Corporation Use of a cyclic redundancy code multiple-input shift register to provide early warning and fail detection
US11323249B2 (en) 2017-12-20 2022-05-03 Lg Electronics, Inc. Cryptographic methods and systems for authentication in connected vehicle systems and for other uses
KR20190078292A (ko) 2017-12-26 2019-07-04 삼성전자주식회사 뉴럴 네트워크 연산을 수행하는 장치 및 이의 동작 방법
US10417089B2 (en) 2018-02-13 2019-09-17 Western Digital Technologies, Inc. Data storage device extending erasures for LDPC-type decoding
US11392829B1 (en) 2018-05-02 2022-07-19 Nvidia Corporation Managing data sparsity for neural networks
KR102185962B1 (ko) 2018-05-11 2020-12-03 엘지전자 주식회사 무선 통신 시스템에서 상향링크 전송을 수행하는 방법 및 이를 위한 장치
US11277868B2 (en) 2018-07-13 2022-03-15 Lg Electronics Inc. Method and device for performing random access procedure
US11232016B1 (en) 2018-09-21 2022-01-25 Amazon Technologies, Inc. Debug for computation networks using error detection codes
US11636343B2 (en) 2018-10-01 2023-04-25 Neuralmagic Inc. Systems and methods for neural network pruning with accuracy preservation
JP7105165B2 (ja) 2018-10-11 2022-07-22 オルガノ株式会社 水処理装置および水処理方法
GB2579591B (en) 2018-12-04 2022-10-26 Imagination Tech Ltd Buffer checker
EP3671568A1 (en) 2018-12-17 2020-06-24 IMEC vzw Binary recurrent neural network inference technique
US20200202198A1 (en) 2018-12-21 2020-06-25 Waymo Llc Neural network processor
US10798386B2 (en) 2019-01-25 2020-10-06 At&T Intellectual Property I, L.P. Video compression with generative models
US20200285997A1 (en) 2019-03-04 2020-09-10 Iocurrents, Inc. Near real-time detection and classification of machine anomalies using machine learning and artificial intelligence
JP7302292B2 (ja) 2019-05-28 2023-07-04 京セラドキュメントソリューションズ株式会社 画像形成システム、画像形成装置の動作制御方法
US10831595B1 (en) 2019-05-31 2020-11-10 International Business Machines Corporation Performing error detection during deterministic program execution
US20200380369A1 (en) 2019-05-31 2020-12-03 Nvidia Corporation Training a neural network using selective weight updates
US11175898B2 (en) 2019-05-31 2021-11-16 Apple Inc. Compiling code for a machine learning model for execution on a specialized processor
US20190392296A1 (en) 2019-06-28 2019-12-26 John Brady Hardware agnostic deep neural network compiler
US20210053574A1 (en) 2019-08-21 2021-02-25 Micron Technology, Inc. Monitoring controller area network bus for vehicle control
US11409654B2 (en) 2019-09-05 2022-08-09 Micron Technology, Inc. Intelligent optimization of caching operations in a data storage device
KR20210053554A (ko) 2019-11-04 2021-05-12 엘지전자 주식회사 멀티미디어 디바이스 및 그 제어 방법
KR20210064723A (ko) 2019-11-26 2021-06-03 에스케이하이닉스 주식회사 전자 장치 및 이의 동작 방법
US20200136943A1 (en) 2019-12-27 2020-04-30 Intel Corporation Storage management in a data management platform for cloud-native workloads
US20210256384A1 (en) 2020-02-14 2021-08-19 Northeastern University Computer-implemented methods and systems for achieving real-time dnn execution on mobile devices with pattern-based weight pruning
US20210279055A1 (en) 2020-03-03 2021-09-09 Nvidia Corporation Technique for performing bit-linear transformations
US20220108157A1 (en) 2020-10-05 2022-04-07 Numenta, Inc. Hardware architecture for introducing activation sparsity in neural network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4994982A (en) * 1987-12-23 1991-02-19 U.S. Philips Corporation Neural network system and circuit for use therein
US8909576B2 (en) * 2011-09-16 2014-12-09 International Business Machines Corporation Neuromorphic event-driven neural computing architecture in a scalable neural network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Spinnaker:mapping neural networks onto a massively-parallel chip multiprocessor;M.M.Khan 等;《2008 International joint conference on neural networks》;20080926;全文 *

Also Published As

Publication number Publication date
US20180285736A1 (en) 2018-10-04
US11354563B2 (en) 2022-06-07
WO2018185763A1 (en) 2018-10-11
US20180285254A1 (en) 2018-10-04
US20180285726A1 (en) 2018-10-04
US11461614B2 (en) 2022-10-04
EP3607497A1 (en) 2020-02-12
US10387298B2 (en) 2019-08-20
EP3607500B1 (en) 2023-12-20
EP3607498A4 (en) 2020-04-08
EP3607500A1 (en) 2020-02-12
CN110494869B (zh) 2023-08-04
JP2020515989A (ja) 2020-05-28
EP3607497A4 (en) 2020-04-08
EP3607499A4 (en) 2020-04-08
JP7191329B2 (ja) 2022-12-19
CN110462642B (zh) 2023-08-08
JP7170281B2 (ja) 2022-11-14
US20180285725A1 (en) 2018-10-04
JP2020517006A (ja) 2020-06-11
CN110494869A (zh) 2019-11-22
EP3607497B1 (en) 2023-12-20
CN110476174A (zh) 2019-11-19
US11263512B2 (en) 2022-03-01
CN110462642A (zh) 2019-11-15
WO2018185764A1 (en) 2018-10-11
EP3607501A4 (en) 2020-04-08
US11461615B2 (en) 2022-10-04
JP7148087B2 (ja) 2022-10-05
US11216717B2 (en) 2022-01-04
JP2020515990A (ja) 2020-05-28
US11238331B2 (en) 2022-02-01
JP2020517005A (ja) 2020-06-11
EP3607498A1 (en) 2020-02-12
EP3607498B1 (en) 2024-05-08
US20180285735A1 (en) 2018-10-04
EP3607501A1 (en) 2020-02-12
WO2018185766A1 (en) 2018-10-11
US20180285678A1 (en) 2018-10-04
US20180285718A1 (en) 2018-10-04
WO2018185762A1 (en) 2018-10-11
JP7288250B2 (ja) 2023-06-07
EP3607499A1 (en) 2020-02-12
US20180285727A1 (en) 2018-10-04
CN110462643A (zh) 2019-11-15
CN110462640B (zh) 2023-07-07
US20180285719A1 (en) 2018-10-04
US11514291B2 (en) 2022-11-29
JP7108268B2 (ja) 2022-07-28
CN110462640A (zh) 2019-11-15
EP3607500A4 (en) 2020-05-20
EP3607499B1 (en) 2023-12-13
WO2018185765A1 (en) 2018-10-11
US11675693B2 (en) 2023-06-13
JP2020515991A (ja) 2020-05-28

Similar Documents

Publication Publication Date Title
CN110476174B (zh) 包括装置间连接性的神经网络处理器
US11544545B2 (en) Structured activation based sparsity in an artificial neural network
US11615297B2 (en) Structured weight based sparsity in an artificial neural network compiler
US11551028B2 (en) Structured weight based sparsity in an artificial neural network
US20200279133A1 (en) Structured Sparsity Guided Training In An Artificial Neural Network
US11238334B2 (en) System and method of input alignment for efficient vector operations in an artificial neural network
US20230161997A1 (en) System and method of early termination of layer processing in an artificial neural network

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
GR01 Patent grant
GR01 Patent grant