CN110494869A - 包括单独的控制和数据结构的神经网络处理器 - Google Patents
包括单独的控制和数据结构的神经网络处理器 Download PDFInfo
- Publication number
- CN110494869A CN110494869A CN201880022239.5A CN201880022239A CN110494869A CN 110494869 A CN110494869 A CN 110494869A CN 201880022239 A CN201880022239 A CN 201880022239A CN 110494869 A CN110494869 A CN 110494869A
- Authority
- CN
- China
- Prior art keywords
- memory
- control
- computing
- data
- ann
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 383
- 230000015654 memory Effects 0.000 claims abstract description 322
- 230000011664 signaling Effects 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 63
- 210000002569 neuron Anatomy 0.000 claims description 54
- 238000000034 method Methods 0.000 claims description 49
- 230000006870 function Effects 0.000 claims description 40
- 230000001537 neural effect Effects 0.000 claims description 19
- 238000000926 separation method Methods 0.000 claims description 6
- 230000008093 supporting effect Effects 0.000 claims description 5
- 210000005036 nerve Anatomy 0.000 claims description 3
- 230000036039 immunity Effects 0.000 claims 3
- 238000003860 storage Methods 0.000 abstract description 40
- 239000010410 layer Substances 0.000 description 190
- 238000010586 diagram Methods 0.000 description 53
- 230000004913 activation Effects 0.000 description 21
- 238000009826 distribution Methods 0.000 description 19
- 239000000872 buffer Substances 0.000 description 16
- 238000004590 computer program Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 230000035508 accumulation Effects 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 235000019580 granularity Nutrition 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 238000006116 polymerization reaction Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 239000011229 interlayer Substances 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 208000010378 Pulmonary Embolism Diseases 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 210000004027 cell Anatomy 0.000 description 4
- 229910052729 chemical element Inorganic materials 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000006185 dispersion Substances 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 241000282326 Felis catus Species 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000032258 transport Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 241000918535 Euhalothece Species 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003955 neuronal function Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000012010 growth Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003923 mental ability Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013642 negative control Substances 0.000 description 1
- 210000004218 nerve net Anatomy 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000006384 oligomerization reaction Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000001242 postsynaptic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 238000007634 remodeling Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
- 238000004260 weight control Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0692—Multiconfiguration, e.g. local and global addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Medical Informatics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
- Multimedia (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
Abstract
一种新颖且有用的神经网络(NN)处理核,适于实现人工神经网络(ANN)并包括严格分离的控制和数据平面。所述NN处理器由以分层架构组织的独立计算单元构成。同质性使得能够更简单地管理和控制聚合在多个层级中的类似的计算单元。计算单元被设计成具有尽可能最小的开销,其中另外的特征和能力聚合在层次结构中的更高级别。片上存储器为特定层次结构处的基本操作固有地需要的内容提供存储,并以最佳比率与计算资源耦接。精益控制提供正好足够的信令来管理仅特定层级处需要的操作。提供动态资源指派敏捷性,其可根据装置的资源可用性和容量按照需要进行调整。
Description
技术领域
本文所公开的主题涉及神经网络领域,并且更特别地涉及神经网络(NN)处理引擎,所述神经网络处理引擎包括单独的控制和数据平面并且适于实现人工神经网络(ANN)。
背景技术
人工神经网络(ANN)是受构成动物大脑的生物神经网络启发的计算系统。这些系统通过考虑实例来学习(即逐步改进性能)以完成任务,而通常不需要通过提取那些任务中的关键特征并从大量的实例中进行概括来进行特定于任务的编程。例如,在图像识别中,它们可能学习通过分析已经被手动标记为“猫”或“非猫”的示例性图像并且使用分析结果来标识其他图像中的猫来标识包含猫的图像。它们已经发现在传统计算机算法中应用程序中的大多数用途难以使用基于规则的编程来表达。
ANN是基于一组称为人工神经元(类似于生物大脑中的神经元)的连接单元。神经元之间的每个连接或突触可将信号传递给另一个神经元。接收或突触后神经元连接到另一个或若干神经元,并且可处理信号并且然后通过突触(也称为轴突)向连接到它的下游神经元发信号。神经元可具有状态,总体上由实数表示,通常在0与1之间。神经元和突触还可具有随学习进行而变化的权重,这可增加或减小它发送到下游的信号的强度。此外,它们可具有阈值,使得只有聚合信号低于或高于所述级别时才发送下游信号。
通常,神经元按层组织。不同的层可对它们的输入执行不同类型的转换。信号可能在多次遍历层之后从第一(即,输入)层行进到最后(即,输出)层。
神经网络方法的初始目标是以同人类大脑相同的方式解决问题。随着时间的推移,关注集中于匹配具体的心智能力,这导致偏离生物学,诸如反向传播,或反向传递信息并且调整网络以反映该信息。
人工神经网络的部件包括:(1)具有激活阈值的神经元;(2)用于传递神经元的输出的连接和权重;(3)用于计算来自前代神经元输出的对神经元的输入的传播函数;以及(4)学习规则,其是一种算法,所述算法修改神经网络参数以便给定输入产生期望结果,这通常相当于修改权重和阈值。
鉴于要解决的具体任务和一类函数F,学习需要使用一组观察来找到在某种最佳意义上解决任务的函数。成本函数C被限定成使得:对于最佳解决方案,没有其他解决方案具有比最佳解决方案的成本小的成本。
成本函数C是特定解决方案距待解决的问题的最佳解决方案的距离的量度。学习算法搜索解决方案空间以找到具有最小可能成本的函数。
可使用反向传播来训练神经网络,所述反向传播是计算相对于ANN中的权重的损失函数的梯度的方法。反向传播的权重更新可通过熟知的随机梯度下降技术来完成。应注意,成本函数的选择取决于诸如学习类型(例如,监督、无监督、强化)和激活函数的因素。
有三种主要的学习范式,并且每种学习范式对应于一个特定的学习任务:监督学习、无监督学习和强化学习。监督学习使用一组实例对,并且目标是在与实例匹配的允许的一类函数中查找函数。常用的成本是均方误差,它尝试使所有实例对上的网络输出与目标值之间的平均平方误差最小化。使用称为多层感知器(MLP)的一类神经网络的梯度下降来使此成本最小化产生了用于训练神经网络的反向传播算法。监督学习的实例包括图像识别,即分类和回归,即函数逼近。
在无监督学习中,给出一些数据并使成本函数最小化,这可以是数据和网络输出的任何函数。成本函数取决于任务(即模型域)和任何先验假设(即模型的隐含特性、其参数和观察到的变量)。落入无监督学习范式的任务通常是估计问题;应用程序包括集群、统计分布的估计、压缩和过滤。
在强化学习中,通常不提供数据,而是由代理与环境的交互生成数据。在每个时间点处,代理执行动作,并且环境根据一些通常未知的动态生成观察和瞬时成本。目的是发现用于选择使长期成本(例如预期的累积成本)的一些量度最小化的动作的策略。环境的动态和每个策略的长期成本通常是未知但可估算的。
现今,神经网络的一个常见应用是分析视频流,即机器视觉。实例包括:工业工厂,其中机器视觉在制造商品的组装线上使用;自主车辆,其中机器视觉用于检测车辆路径中和车辆周围的对象等。
人工神经网络(ANN)具有固有结构,所述结构极大地依赖于归因于所谓的‘网络模型’的一组参数。这些参数通常被称为网络的“权重”,因为它们倾向于在其沿网络传播时作为其他中间值的缩放系数操作。用于确定权重值的过程称为训练,如上所述。当训练完成时,网络就会进入稳定状态,并且现在可与新的(即未知的)数据一起用于提取信息。这个阶段被称为“推断”阶段。
在推断期间,可观察所得的参数集(即权重),并操纵它们产生更好的性能(即表示)。用于裁剪并量化权重的方法是已知的。然而,这些方法仅在进入推断阶段之前应用于训练模型上。这种方法确实产生更好的执行性能。然而,它没有充分探索和利用修改权重的可能性。另外,只有在训练之后,当ANN的权重已经收敛到令人满意的级别时,现有的解决方案才应用权重的量化。
发明内容
本发明是一种神经网络(NN)处理引擎,其适于实现人工神经网络(ANN)并且包括单独的控制和数据平面。NN处理引擎或处理器(也称为神经计算机或神经芯片)的粒度性质使得能够容易地标识神经网络的基础并且以非常高效的方式实现宽泛范围的神经网络模型。NN处理器在选择(1)过度概括关于计算方面的架构与(2)聚合专用的计算能力单元中的计算之间的平衡时提供了一定的灵活性。本发明提供了一种特定于神经网络的改进的平衡,并尝试以适当的容量满足所需的容量。因此,所得的架构更为高效并且提供了明显更高的计算单元密度以及低得多的每单元功率消耗。
本发明的NN处理器的架构的若干关键特征包括以下:(1)计2单元是独立的并且被配置为充分利用来实现其目标任务;(2)分层架构提供同质性和自类似性,从而能够更简单地管理和控制聚合在层次结构中的多个级别中的类似的计算单元;(3)计算单元被设计成具有尽可能最小的开销,其中另外的特征和能力被放置在层次结构中的较高级别处(即聚合);(4)片上存储器为特定层次结构处的基本操作固有地需要的内容提供存储,以最佳比率与计算资源耦接;(5)精益控制提供正好足够的控制来管理仅特定层级处需要的操作;以及(6)动态资源指派灵活性可根据可用性和容量按照需要进行调整。
本发明的实施方案的这种、另外的和/或其他的方面和/或优点在下面的详细描述中进行阐述;可能从详细描述进行推断;和/或可通过实践本发明的实施方案学习。
因此,根据本发明提供了一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器电路,其包括:数据平面,所述数据平面包括多个计算资源和多个存储器资源,所述多个计算资源和所述多个存储器资源操作来执行基本神经网络计算,从而实现所述ANN中的多个神经元;与所述数据平面基本上分离的控制平面,所述控制平面操作来生成用于所述数据平面的控制信令;其中所述计算资源和所述存储器资源聚合在多个级别中以形成层次结构;并且其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化。
根据本发明还提供了一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器电路,其包括:数据平面,所述数据平面包括多个处理元件电路,每个处理元件电路包括多个计算元件和多个存储器元件,所述多个计算元件和所述多个存储器元件操作来执行基本神经网络计算,从而实现所述ANN中的多个神经元;其中所述多个处理元件电路聚合在多个级别中以形成子集群和集群的层次结构;以及与所述数据平面基本上分离的控制平面,所述控制平面包括一个或多个层控制器,所述层控制器操作来生成用于所述多个处理元件电路的控制信令。
根据本发明进一步提供了一种由集成电路(IC)实现的方法,所述IC包括用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器电路,所述方法包括:提供数据平面,所述数据平面包括多个计算资源和多个存储器资源,所述多个计算资源和所述多个存储器资源操作来执行基本神经网络计算,以实现所述ANN中的多个神经元;提供与所述数据平面基本上分离的控制平面,所述控制平面操作来生成用于所述数据平面的控制信令;将所述计算资源和所述存储器资源聚合在多个级别中以形成层次结构;并且其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化。
根据本发明还提供了一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(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。第二级(即L2)高速缓存存储器(未示出)可耦接到芯片组中的高速缓存控制器。对于一些处理器,外部高速缓存可包括L1或第一级高速缓存。桥接器或芯片组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传递,而信令通过专用互连器374(图15)执行,下文将更详细地描述。在一个实施方案中,在集群之间使用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:存储器层次结构
其中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。
神经网络中神经元的最基本的数学运算由以下限定:
其中:
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:神经元功能性
参考图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并且输出地址ADDR 238、启用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:示例性常规处理器伪代码循环
在上面的伪代码中,在循环中存在四个操作码(即四个周期),其中两个是可操作的,使用率为50%。假设这个循环控制1024个MAC电路,这意味着只有512个以满容量有效地操作。
相反,在NN处理器中支持内联重复。此外,内部控制的开销为零,这消除了对具有“备用”操作码(即仅用于机器内部管理或内务处理的操作码)的需求。清单2的伪代码转换成下面在清单3中呈现的下面的伪代码。
列表3:示例性NN处理器伪代码循环
如上所示,所有循环信息都嵌入在功能操作码中,并且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 (30)
1.一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器电路,其包括:
数据平面,所述数据平面包括多个计算资源和多个存储器资源,所述多个计算资源和所述多个存储器资源操作来执行基本神经网络计算,从而实现所述ANN中的多个神经元;
与所述数据平面基本上分离的控制平面,所述控制平面操作来生成用于所述数据平面的控制信令;
其中所述计算资源和所述存储器资源聚合在多个级别中以形成层次结构;并且
其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化。
2.根据权利要求1所述的电路,其中所述控制平面包括一个或多个基于微代码的控制器,所述控制器操作来生成用于所述计算资源和所述存储器资源的控制信令。
3.根据权利要求2所述的电路,其中所述基于微代码的控制器在没有条件语句或条件分支的情况下进行操作。
4.根据权利要求2所述的电路,其中所述基于微代码的控制器操作来支持操作的内联重复。
5.根据权利要求2所述的电路,其中在所述基于微代码的控制器中执行的每个微代码指令操作来生成用于所述计算资源和所述存储器资源的控制信令。
6.根据权利要求1所述的电路,其中所述控制平面操作来根据一个或多个外部信号触发执行流,所述外部信号指示执行开始/停止,从而实现数据管路握手。
7.根据权利要求1所述的电路,其中所述控制平面是动态可配置且可编程的。
8.根据权利要求1所述的电路,其中所述控制平面操作来带外执行控制信令,而不需要数据驱动的存储器访问。
9.根据权利要求1所述的电路,其中所述控制平面操作来利用相对较小数量的控制信号来控制相对较大数量的计算资源和存储器资源。
10.根据权利要求1所述的电路,其中所述数据平面与所述控制平面之间的分离提供对控制平面安全危害的固有抗扰度。
11.一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器电路,其包括:
数据平面,所述数据平面包括多个处理元件电路,每个处理元件电路包括多个计算元件和多个存储器元件,所述多个计算元件和所述多个存储器元件操作来执行基本神经网络计算,从而实现所述ANN中的多个神经元;
其中所述多个处理元件电路聚合在多个级别中以形成子集群和集群的层次结构;以及
与所述数据平面基本上分离的控制平面,所述控制平面包括一个或多个层控制器,所述层控制器操作来生成用于所述多个处理元件电路的控制信令。
12.根据权利要求11所述的电路,其中所述控制平面包括一个或多个基于微代码的控制器,所述控制器操作来执行微代码指令,其中每个微代码指令生成用于所述计算元件和所述存储器元件的控制信令。
13.根据权利要求11所述的电路,其中所述一个或多个层控制器是动态可配置且可编程的。
14.根据权利要求11所述的电路,其中所述一个或多个层控制器操作来带外执行控制信令而不需要存储器访问。
15.根据权利要求11所述的电路,其中所述一个或多个层控制器操作来利用相对较小数量的控制信号来控制相对较大数量的计算元件和存储器元件。
16.一种由集成电路(IC)实现的方法,所述IC包括用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器电路,所述方法包括:
提供数据平面,所述数据平面包括多个计算资源和多个存储器资源,所述多个计算资源和所述多个存储器资源操作来执行基本神经网络计算,以实现所述ANN中的多个神经元;
提供与所述数据平面基本上分离的控制平面,所述控制平面操作来生成用于所述数据平面的控制信令;
将所述计算资源和所述存储器资源聚合在多个级别中以形成层次结构;并且
其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化。
17.根据权利要求16所述的方法,其还包括通过利用所述控制平面中的一个或多个基于微代码的控制器来生成用于所述数据平面的所述控制信令,所述控制器操作来执行微代码指令,其中每个微代码指令生成用于所述计算元件和所述存储器元件的控制信令。
18.根据权利要求16所述的方法,其还包括在不使用条件语句或条件分支的情况下操作所述基于微代码的控制器。
19.根据权利要求16所述的方法,其还包括支持操作的内联重复。
20.根据权利要求16所述的方法,其还包括通过所述控制平面根据一个或多个外部信号触发执行流,所述外部信号指示执行开始/停止,从而实现数据管路握手。
21.根据权利要求16所述的方法,其中所述控制平面是动态可配置且可编程的。
22.根据权利要求16所述的方法,其还包括在所述控制平面中带外执行控制信令而不需要存储器访问。
23.根据权利要求16所述的方法,其还包括通过所述控制平面来利用相对较小数量的控制信号来控制相对较大数量的计算资源和存储器资源。
24.根据权利要求16所述的方法,其中所述数据平面与所述控制平面之间的分离提供对控制平面安全危害的固有抗扰度。
25.一种用于为具有一个或多个网络层的人工神经网络(ANN)执行神经网络计算的神经网络(NN)处理器电路,其包括:
提供数据平面,所述数据平面包括多个处理元件电路,每个处理元件电路包括多个计算元件和多个存储器元件,所述多个计算元件和所述多个存储器元件操作来执行基本神经网络计算,从而实现所述ANN中的多个神经元;
将所述多个处理元件电路聚合在多个级别中以形成子集群和集群的层次结构;
提供与所述数据平面基本上分离的控制平面;
在所述控制平面中生成用于所述多个处理元件电路的控制信令;并且
其中所述层次结构中的更高级别更为复杂并且包括比更低级别更少数量的实例化。
26.根据权利要求25所述的电路,其中所述控制平面包括一个或多个基于微代码的控制器,所述控制器操作来执行微代码指令,其中每个微代码指令生成用于所述计算元件和所述存储器元件的控制信令。
27.根据权利要求25所述的电路,其中所述数据平面与所述控制平面之间的分离提供对控制平面安全危害的固有抗扰度。
28.根据权利要求25所述的电路,其中所述控制平面是动态可配置且可编程的。
29.根据权利要求25所述的电路,其中所述一个或多个层控制器操作来带外执行控制信令而不需要存储器访问。
30.根据权利要求25所述的电路,其中所述控制平面操作来利用相对较小数量的控制信号来控制相对较大数量的计算元件和存储器元件。
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/050393 WO2018185763A1 (en) | 2017-04-04 | 2018-04-03 | Neural network processor incorporating separate control and data fabric |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110494869A true CN110494869A (zh) | 2019-11-22 |
CN110494869B CN110494869B (zh) | 2023-08-04 |
Family
ID=63669456
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880021600.2A Active CN110462640B (zh) | 2017-04-04 | 2018-04-03 | 神经网络处理器中基于滑动窗口的存储器访问 |
CN201880020722.XA Active CN110462642B (zh) | 2017-04-04 | 2018-04-03 | 包括计算元件和本地存储器元件的神经网络处理元件 |
CN201880022145.8A Active CN110476174B (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 | 包括单独的控制和数据结构的神经网络处理器 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880021600.2A Active CN110462640B (zh) | 2017-04-04 | 2018-04-03 | 神经网络处理器中基于滑动窗口的存储器访问 |
CN201880020722.XA Active CN110462642B (zh) | 2017-04-04 | 2018-04-03 | 包括计算元件和本地存储器元件的神经网络处理元件 |
CN201880022145.8A Active CN110476174B (zh) | 2017-04-04 | 2018-04-03 | 包括装置间连接性的神经网络处理器 |
CN201880021608.9A Pending CN110462643A (zh) | 2017-04-04 | 2018-04-03 | 包括多级层次聚合的计算和存储器元件的神经网络处理器 |
Country Status (5)
Country | Link |
---|---|
US (9) | US10387298B2 (zh) |
EP (5) | EP3607500B1 (zh) |
JP (5) | JP7148087B2 (zh) |
CN (5) | CN110462640B (zh) |
WO (5) | WO2018185765A1 (zh) |
Families Citing this family (160)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6961011B2 (ja) | 2016-12-09 | 2021-11-05 | ベイジン ホライズン インフォメーション テクノロジー カンパニー リミテッド | データ管理のためのシステム及び方法 |
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 |
WO2018211349A1 (ja) * | 2017-05-19 | 2018-11-22 | 株式会社半導体エネルギー研究所 | 半導体装置 |
KR20200047551A (ko) | 2017-07-30 | 2020-05-07 | 뉴로블레이드, 리미티드. | 메모리 기반 분산 프로세서 아키텍처 |
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 |
US10977338B1 (en) | 2018-04-20 | 2021-04-13 | Perceive Corporation | Reduced-area circuit for dot product computation |
US11481612B1 (en) * | 2018-04-20 | 2022-10-25 | Perceive Corporation | Storage of input values across multiple cores of neural network inference circuit |
US12093696B1 (en) | 2018-04-20 | 2024-09-17 | Perceive Corporation | Bus for transporting output values of a neural network layer to cores specified by configuration data |
US11783167B1 (en) | 2018-04-20 | 2023-10-10 | Perceive Corporation | Data transfer for non-dot product computations on neural network inference circuit |
US11568227B1 (en) | 2018-04-20 | 2023-01-31 | Perceive Corporation | Neural network inference circuit read controller with multiple operational modes |
US11210586B1 (en) | 2018-04-20 | 2021-12-28 | Perceive Corporation | Weight value decoder of neural network inference circuit |
US11403530B1 (en) | 2018-04-20 | 2022-08-02 | Perceive Corporation | Using quinary weights with neural network inference circuit designed for ternary weights |
US11586910B1 (en) | 2018-04-20 | 2023-02-21 | Perceive Corporation | Write cache for neural network inference circuit |
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 |
US12099912B2 (en) | 2018-06-22 | 2024-09-24 | Samsung Electronics Co., Ltd. | Neural processor |
KR102692017B1 (ko) * | 2018-08-29 | 2024-08-05 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 동작 방법 |
US12020168B2 (en) * | 2018-09-11 | 2024-06-25 | Apple Inc. | Compiling models for dedicated hardware |
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 |
JP7180680B2 (ja) * | 2018-09-27 | 2022-11-30 | 株式会社ソシオネクスト | ネットワーク量子化方法、推論方法及びネットワーク量子化装置 |
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 |
US20200117981A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Data representation for dynamic precision in neural network cores |
US11157213B2 (en) * | 2018-10-12 | 2021-10-26 | Micron Technology, Inc. | Parallel memory access and computation in memory devices |
US20200117978A1 (en) * | 2018-10-12 | 2020-04-16 | Alibaba Group Holding Limited | Systems and methods for efficiently mapping neural networks to programmable logic 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 | 北京大学 | 一种多智能体合作决策及训练方法 |
US20220035762A1 (en) * | 2018-10-18 | 2022-02-03 | Shanghai Cambricon Information Technology Co., Ltd. | Network-on-chip data processing method and device |
MX2021004619A (es) * | 2018-10-26 | 2021-07-07 | Dow Global Technologies Llc | Aprendizaje por refuerzo profundo para la programación de la producción. |
CN109583942B (zh) * | 2018-11-07 | 2021-05-11 | 浙江工业大学 | 一种基于密集网络的多任务卷积神经网络顾客行为分析方法 |
GB2579040A (en) * | 2018-11-15 | 2020-06-10 | Camlin Tech Limited | Apparatus and method for creating and training artificial neural networks |
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 |
JP7400719B2 (ja) * | 2018-12-17 | 2023-12-19 | ソニーグループ株式会社 | 学習装置、識別装置およびプログラム |
CN109754073B (zh) * | 2018-12-29 | 2020-03-10 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
US20210319098A1 (en) * | 2018-12-31 | 2021-10-14 | Intel Corporation | Securing systems employing artificial intelligence |
US11551069B2 (en) * | 2018-12-31 | 2023-01-10 | SK Hynix Inc. | Processing system |
US11687771B2 (en) | 2019-01-23 | 2023-06-27 | Samsung Electronics Co., Ltd. | Platform for concurrent execution of GPU operations |
US11347297B1 (en) * | 2019-01-23 | 2022-05-31 | Perceive Corporation | Neural network inference circuit employing dynamic memory sleep |
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 |
SG11202110769RA (en) * | 2019-03-28 | 2021-10-28 | Agency Science Tech & Res | 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 |
CN111831337B (zh) | 2019-04-19 | 2022-11-29 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
CN111782577B (zh) | 2019-04-04 | 2023-03-24 | 安徽寒武纪信息科技有限公司 | 数据处理装置及方法以及相关产品 |
KR20210002518A (ko) * | 2019-04-04 | 2021-01-08 | 캠브리콘 테크놀로지스 코퍼레이션 리미티드 | 데이터 처리방법과 장치 및 관련 제품 |
WO2020211783A1 (zh) * | 2019-04-16 | 2020-10-22 | 上海寒武纪信息科技有限公司 | 运算数据的量化频率调整方法及相关产品 |
US11671111B2 (en) | 2019-04-17 | 2023-06-06 | Samsung Electronics Co., Ltd. | Hardware channel-parallel data compression/decompression |
US11211944B2 (en) | 2019-04-17 | 2021-12-28 | Samsung Electronics Co., Ltd. | Mixed-precision compression with random access |
US11880760B2 (en) | 2019-05-01 | 2024-01-23 | Samsung Electronics Co., Ltd. | Mixed-precision NPU tile with depth-wise convolution |
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 |
US11562251B2 (en) * | 2019-05-16 | 2023-01-24 | Salesforce.Com, Inc. | Learning world graphs to accelerate hierarchical reinforcement learning |
US11868901B1 (en) | 2019-05-21 | 2024-01-09 | Percieve Corporation | Compiler for optimizing memory allocations within cores |
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 |
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 |
US11231961B2 (en) * | 2019-05-22 | 2022-01-25 | Fujitsu Limited | Scheduling operations |
EP3742351B1 (en) * | 2019-05-22 | 2024-09-04 | eMemory Technology Inc. | Control circuit for multiply accumulate circuit of neural network system |
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 | 杜波 | 一种人数确定方法、装置及存储介质 |
US11636334B2 (en) | 2019-08-20 | 2023-04-25 | Micron Technology, Inc. | Machine learning with feature obfuscation |
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 |
JP7423757B2 (ja) * | 2019-08-22 | 2024-01-29 | グーグル エルエルシー | 同期プロセッサのためのシャーディング |
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 |
CN112749778B (zh) * | 2019-10-29 | 2023-11-28 | 北京灵汐科技有限公司 | 一种强同步下的神经网络映射方法及装置 |
US20210125049A1 (en) * | 2019-10-29 | 2021-04-29 | Taiwan Semiconductor Manufacturing Co., Ltd. | System for executing neural network |
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 | 四川杰森机电有限公司 | 基于图像识别的机械水表读数识别方法 |
US12112141B2 (en) | 2019-12-12 | 2024-10-08 | Samsung Electronics Co., Ltd. | Accelerating 2D convolutional layer mapping on a dot product architecture |
CN114430838A (zh) * | 2019-12-19 | 2022-05-03 | 谷歌有限责任公司 | 使用神经网络加速器来处理连续输入 |
EP4014122A1 (en) * | 2019-12-19 | 2022-06-22 | Google LLC | Hardware circuit for accelerating neural network computations |
CN114787010A (zh) * | 2019-12-27 | 2022-07-22 | 英特尔公司 | 驾驶安全性系统 |
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 |
WO2021152369A1 (en) * | 2020-01-28 | 2021-08-05 | Zeku Inc. | Dynamic uplink end-to-end data transfer scheme with optimized memory path |
CN111491006B (zh) * | 2020-03-03 | 2021-11-02 | 天津大学 | 负载感知的云计算资源弹性分配系统及方法 |
DE102020203047A1 (de) * | 2020-03-10 | 2021-09-16 | Robert Bosch Gesellschaft mit beschränkter Haftung | Effiziente gleichzeitige Inferenzberechnung für mehrere neuronale Netzwerke |
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 |
US20210357748A1 (en) * | 2020-05-14 | 2021-11-18 | Samsung Electronics Co., Ltd. | Hierarchical weight preprocessing for neural network accelerator |
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 |
EP3979248A1 (en) * | 2020-09-30 | 2022-04-06 | Imec VZW | A memory macro |
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 |
US20220137866A1 (en) * | 2020-11-02 | 2022-05-05 | Deepx Co., Ltd. | Memory device for an artificial neural network |
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 |
US20240062537A1 (en) * | 2020-12-31 | 2024-02-22 | Seoul National University R&Db Foundation | Algorithm and method for dynamically varying quantization precision of deep learning network |
CN112766387B (zh) * | 2021-01-25 | 2024-01-23 | 卡奥斯数字科技(上海)有限公司 | 一种训练数据的纠错方法、装置、设备及存储介质 |
US12086567B1 (en) * | 2021-03-14 | 2024-09-10 | Jesse Forrest Fabian | Computation system using a spherical arrangement of gates |
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 | 成都时识科技有限公司 | 消除数据副本的方法、神经网络处理器及电子产品 |
US20230067190A1 (en) * | 2021-08-27 | 2023-03-02 | Macronix International Co., Ltd. | Reconfigurable ai system |
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를 포함하는 전자 장치 및 그 제어 방법 |
JP2023063815A (ja) | 2021-10-25 | 2023-05-10 | 株式会社Preferred Networks | コンパイラ装置、命令生成方法、プログラム、コンパイル方法及びコンパイラプログラム |
WO2023099603A1 (en) * | 2021-11-30 | 2023-06-08 | Grai Matter Labs S.A.S. | Neural network device, method and system comprising the device |
JPWO2023105616A1 (zh) * | 2021-12-07 | 2023-06-15 | ||
US12073312B2 (en) * | 2022-03-15 | 2024-08-27 | Rebellions Inc. | Neural processing device and method for controlling the same |
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 | 西安紫光展锐科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
US12058044B1 (en) * | 2023-10-19 | 2024-08-06 | Ampere Computing Llc | Apparatus and method of routing a request in a mesh network |
Citations (12)
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 |
US5524175A (en) * | 1992-10-29 | 1996-06-04 | Hitachi, Ltd. | Neuro-computer system for executing a plurality of controlling algorithms |
US20060015703A1 (en) * | 2004-07-13 | 2006-01-19 | Amit Ramchandran | Programmable processor architecture |
US20130304684A1 (en) * | 2012-05-10 | 2013-11-14 | Yan M. Yufik | Systems and methods for a computer understanding multi modal data streams |
US20160086077A1 (en) * | 2014-09-19 | 2016-03-24 | International Business Machines Corporation | Self-timed, event-driven neurosynaptic core controller |
US9306965B1 (en) * | 2014-10-21 | 2016-04-05 | IronNet Cybersecurity, Inc. | Cybersecurity system |
EP3035249A1 (en) * | 2014-12-19 | 2016-06-22 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
US20160321537A1 (en) * | 2014-03-28 | 2016-11-03 | International Business Machines Corporation | Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block |
US20160342890A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Batch processing in a neural network processor |
CN106250981A (zh) * | 2015-06-10 | 2016-12-21 | 三星电子株式会社 | 减少存储器访问和网络内带宽消耗的脉冲神经网络 |
US20170011288A1 (en) * | 2015-07-10 | 2017-01-12 | Samsung Electronics Co., Ltd. | Neural network processor |
US20170017876A1 (en) * | 2013-03-08 | 2017-01-19 | International Business Machines Corporation | Structural descriptions for neurosynaptic networks |
Family Cites Families (400)
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 | 信号処理装置 |
EP0416173B1 (en) | 1989-08-23 | 1997-01-15 | Hitachi, Ltd. | A method for adjusting network parameters in a multi-layer perceptron device, and perceptron device provided with means for executing the method |
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 | 神経回路網自動構築システム |
WO1993008538A1 (en) | 1991-10-17 | 1993-04-29 | Kawasaki Steel Corporation | Processor for neural network |
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 |
JPH05281199A (ja) | 1992-03-31 | 1993-10-29 | Nuclear Fuel Ind Ltd | 探傷データ評価装置及び方法 |
JPH05282272A (ja) | 1992-03-31 | 1993-10-29 | Akira Iwata | ニューラルネットワーク並列分散処理装置 |
FR2690771A1 (fr) | 1992-04-29 | 1993-11-05 | Philips Electronique Lab | Processeur neuronal muni de moyens pour normaliser des données. |
FR2690772A1 (fr) | 1992-04-29 | 1993-11-05 | Philips Electronique Lab | Processeur neuronal muni de moyens pour calculer une norme ou une distance. |
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 | ニューロプロセッサ |
JPH0619868A (ja) | 1992-06-29 | 1994-01-28 | Victor Co Of Japan Ltd | ニューラルネットによる波形処理装置及びその設計方法 |
JPH0676092A (ja) | 1992-06-29 | 1994-03-18 | Nippon Telegr & Teleph Corp <Ntt> | 光ニューラルプロセッサ |
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 | ニューラルネットワークを訓練する方法、文字認識装置、およびシンボル処理方法 |
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 | 自動販売機の冷却装置 |
EP0694854B1 (en) | 1994-07-28 | 2002-06-05 | International Business Machines Corporation | Improved neural semiconductor chip architectures and neural networks incorporated therein |
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 | ティアナン・コミュニケーションズ・インコーポレーテッド | マルチサービストランスポートの多重化装置およびその方法 |
WO1998017989A2 (en) | 1996-10-23 | 1998-04-30 | Ford Global Technologies, Inc. | Automotive engine misfire detection system including a bit-serial based recurrent neuroprocessor |
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 |
WO2001013141A2 (en) | 1999-08-12 | 2001-02-22 | 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 |
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 |
CN101099186B (zh) | 2004-11-12 | 2012-01-18 | Vfs技术有限公司 | 微粒探测器,系统与方法 |
JP2006154992A (ja) | 2004-11-26 | 2006-06-15 | Akita Prefecture | ニューロプロセッサ |
CN102924526B (zh) | 2004-12-03 | 2016-06-22 | 株式会社半导体能源研究所 | 有机金属络合物和采用有机金属络合物的发光元件及发光装置 |
JP4435180B2 (ja) | 2004-12-28 | 2010-03-17 | 東芝ストレージデバイス株式会社 | メモリ診断方法 |
US7533071B2 (en) | 2005-06-28 | 2009-05-12 | Neurosciences Research Foundation, Inc. | Neural modeling and brain-based devices using special purpose processor |
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 |
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 |
EP2007305B1 (en) | 2006-04-11 | 2012-05-16 | Koninklijke Philips Electronics N.V. | A device for positioning an ultrasound transducer inside a mr scanner |
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 |
WO2010001713A1 (ja) | 2008-06-30 | 2010-01-07 | コニカミノルタオプト株式会社 | 広角光学系および撮像装置 |
CN101493677B (zh) | 2008-06-30 | 2011-06-29 | 李华嵩 | 一种神经网络的系统控制器结构及系统辨识结构 |
US8131659B2 (en) | 2008-09-25 | 2012-03-06 | Microsoft Corporation | Field-programmable gate array based accelerator system |
UA96148C2 (ru) | 2008-09-25 | 2011-10-10 | Запорожский Национальный Технический Университет | Нейросетевая система управления процессом и способ ее конфигурации при обучении |
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 |
US8655815B2 (en) | 2010-05-19 | 2014-02-18 | The Regents Of The University Of California | Neural processing unit |
US9129220B2 (en) | 2010-07-07 | 2015-09-08 | Qualcomm Incorporated | Methods and systems for digital neural processing with discrete-level synapes and probabilistic STDP |
US8676734B2 (en) | 2010-07-07 | 2014-03-18 | Qualcomm, Incorporated | Methods and systems for replaceable synaptic weight storage in neuro-processors |
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 |
JP6076092B2 (ja) | 2011-02-17 | 2017-02-08 | バイオコーク技研株式会社 | 皮膚外用組成物 |
US9129222B2 (en) | 2011-06-22 | 2015-09-08 | Qualcomm Incorporated | Method and apparatus for a local competitive learning rule that leads to sparse connectivity |
US8909576B2 (en) | 2011-09-16 | 2014-12-09 | International Business Machines Corporation | Neuromorphic event-driven neural computing architecture in a scalable neural network |
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 | 안병익 | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
CN106991475A (zh) | 2012-03-15 | 2017-07-28 | 美国高通技术公司 | 用于神经网络的基于标记的装置和方法 |
US8640243B2 (en) | 2012-03-22 | 2014-01-28 | International Business Machines Corporation | Detecting malicious computer code in an executing program module |
EP2703530B1 (en) | 2012-04-18 | 2016-09-14 | Tec One Co., Ltd. | Method for manufacturing carbon-fiber materi |
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 |
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 |
US9753959B2 (en) | 2013-10-16 | 2017-09-05 | University Of Tennessee Research Foundation | Method and apparatus for constructing a neuroscience-inspired artificial neural network with visualization of neural pathways |
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 |
US20170178664A1 (en) | 2014-04-11 | 2017-06-22 | Analog Devices, Inc. | Apparatus, systems and methods for providing cloud based 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射频技术的无源微创皮下神经介入芯片 |
JP6161586B2 (ja) | 2014-10-02 | 2017-07-12 | コトブキ技研工業株式会社 | 粒状物質の磨砕装置 |
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 |
US20160328645A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
US10373050B2 (en) * | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
US20160335119A1 (en) | 2015-05-12 | 2016-11-17 | minds.ai inc | Batch-based neural network system |
WO2016183522A1 (en) | 2015-05-14 | 2016-11-17 | Thalchemy Corporation | Neural sensor hub system |
US10438117B1 (en) | 2015-05-21 | 2019-10-08 | Google Llc | Computing convolutions using a neural network processor |
JP6674838B2 (ja) | 2015-05-21 | 2020-04-01 | 株式会社半導体エネルギー研究所 | 電子装置 |
US9747546B2 (en) | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
CN104899641B (zh) | 2015-05-25 | 2018-07-13 | 杭州朗和科技有限公司 | 深度神经网络学习方法、处理器和深度神经网络学习系统 |
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 | 中国科学院计算技术研究所 | 一种时分复用的通用神经网络处理器 |
US10073802B2 (en) * | 2015-09-18 | 2018-09-11 | Imec Vzw | 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 |
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 |
RU2602973C1 (ru) | 2015-09-30 | 2016-11-20 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Кубанский государственный технологический университет" (ФГБОУ ВО "КубГТУ") | Контроллер управления обучением нейронной сети с генетическим алгоритмом |
CN106485318B (zh) | 2015-10-08 | 2019-08-30 | 上海兆芯集成电路有限公司 | 具有混合协处理器/执行单元神经网络单元的处理器 |
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 | キヤノン株式会社 | 認識学習装置、認識学習方法及びプログラム |
CN109313720B (zh) | 2016-02-05 | 2023-07-18 | 渊慧科技有限公司 | 具有稀疏访问的外部存储器的增强神经网络 |
CN105844330B (zh) | 2016-03-22 | 2019-06-28 | 华为技术有限公司 | 神经网络处理器的数据处理方法及神经网络处理器 |
CN105676649A (zh) | 2016-04-09 | 2016-06-15 | 北京工业大学 | 一种基于自组织神经网络的污水处理过程控制方法 |
US10229355B2 (en) | 2016-04-13 | 2019-03-12 | Iqb Information Technologies Inc. | Quantum processor and its use for implementing a neural network |
CN108510064B (zh) | 2016-04-18 | 2021-12-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 |
CN106529670B (zh) | 2016-10-27 | 2019-01-25 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
CN106447034B (zh) | 2016-10-27 | 2019-07-30 | 中国科学院计算技术研究所 | 一种基于数据压缩的神经网络处理器、设计方法、芯片 |
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 |
US10713558B2 (en) | 2016-12-30 | 2020-07-14 | Intel Corporation | Neural network with reconfigurable sparse connectivity and online learning |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
CN110235083B (zh) | 2017-01-02 | 2023-06-30 | 广州异构智能科技有限公司 | 对象识别方法和系统的无监督学习 |
US20200024496A1 (en) | 2017-02-02 | 2020-01-23 | Kaneka Corporation | Thermal interface material, method for thermally coupling with thermal interface material, and method for preparing thermal interface material |
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 |
KR102369209B1 (ko) | 2017-02-23 | 2022-02-28 | 세레브라스 시스템즈 인코포레이티드 | 가속화된 심층 학습 |
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 |
EP3614470A4 (en) | 2017-04-21 | 2021-01-13 | Sanyo Chemical Industries, Ltd. | ADHESIVE FOR LITHIUM-ION ELECTRODE, ELECTRODE FOR LITHIUM-ION BATTERY, AND METHOD FOR MANUFACTURING AN ELECTRODE FOR LITHIUM-ION BATTERY |
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 |
EP3972173B1 (en) | 2018-05-11 | 2023-03-01 | LG Electronics Inc. | Method of performing uplink transmission in wireless communication system and device therefor |
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 |
WO2020072274A1 (en) | 2018-10-01 | 2020-04-09 | 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 | 京セラドキュメントソリューションズ株式会社 | 画像形成システム、画像形成装置の動作制御方法 |
US11175898B2 (en) | 2019-05-31 | 2021-11-16 | Apple Inc. | Compiling code for a machine learning model for execution on a specialized processor |
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 |
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 |
-
2017
- 2017-08-06 US US15/669,933 patent/US10387298B2/en active Active
- 2017-10-26 US US15/794,586 patent/US11238331B2/en active Active
- 2017-12-12 US US15/838,552 patent/US11461614B2/en active Active
-
2018
- 2018-04-03 WO PCT/IL2018/050395 patent/WO2018185765A1/en unknown
- 2018-04-03 JP JP2019555007A patent/JP7148087B2/ja active Active
- 2018-04-03 EP EP18781080.9A patent/EP3607500B1/en active Active
- 2018-04-03 US US15/943,976 patent/US11514291B2/en active Active
- 2018-04-03 EP EP18780642.7A patent/EP3607499B1/en active Active
- 2018-04-03 US US15/943,845 patent/US11354563B2/en active Active
- 2018-04-03 US US15/943,992 patent/US11461615B2/en active Active
- 2018-04-03 JP JP2019554805A patent/JP7191329B2/ja active Active
- 2018-04-03 EP EP18781193.0A patent/EP3607497B1/en active Active
- 2018-04-03 CN CN201880021600.2A patent/CN110462640B/zh active Active
- 2018-04-03 EP EP18781194.8A patent/EP3607501B1/en active Active
- 2018-04-03 US US15/943,830 patent/US11263512B2/en active Active
- 2018-04-03 CN CN201880020722.XA patent/CN110462642B/zh active Active
- 2018-04-03 JP JP2019554909A patent/JP7288250B2/ja active Active
- 2018-04-03 US US15/943,800 patent/US11216717B2/en active Active
- 2018-04-03 JP JP2019555011A patent/JP7108268B2/ja active Active
- 2018-04-03 WO PCT/IL2018/050394 patent/WO2018185764A1/en unknown
- 2018-04-03 CN CN201880022145.8A patent/CN110476174B/zh active Active
- 2018-04-03 WO PCT/IL2018/050396 patent/WO2018185766A1/en unknown
- 2018-04-03 EP EP18780640.1A patent/EP3607498B1/en active Active
- 2018-04-03 CN CN201880021608.9A patent/CN110462643A/zh active Pending
- 2018-04-03 US US15/943,872 patent/US11675693B2/en active Active
- 2018-04-03 WO PCT/IL2018/050393 patent/WO2018185763A1/en unknown
- 2018-04-03 CN CN201880022239.5A patent/CN110494869B/zh active Active
- 2018-04-03 WO PCT/IL2018/050392 patent/WO2018185762A1/en unknown
- 2018-04-03 JP JP2019554894A patent/JP7170281B2/ja active Active
Patent Citations (12)
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 |
US5524175A (en) * | 1992-10-29 | 1996-06-04 | Hitachi, Ltd. | Neuro-computer system for executing a plurality of controlling algorithms |
US20060015703A1 (en) * | 2004-07-13 | 2006-01-19 | Amit Ramchandran | Programmable processor architecture |
US20130304684A1 (en) * | 2012-05-10 | 2013-11-14 | Yan M. Yufik | Systems and methods for a computer understanding multi modal data streams |
US20170017876A1 (en) * | 2013-03-08 | 2017-01-19 | International Business Machines Corporation | Structural descriptions for neurosynaptic networks |
US20160321537A1 (en) * | 2014-03-28 | 2016-11-03 | International Business Machines Corporation | Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block |
US20160086077A1 (en) * | 2014-09-19 | 2016-03-24 | International Business Machines Corporation | Self-timed, event-driven neurosynaptic core controller |
US9306965B1 (en) * | 2014-10-21 | 2016-04-05 | IronNet Cybersecurity, Inc. | Cybersecurity system |
EP3035249A1 (en) * | 2014-12-19 | 2016-06-22 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
US20160342890A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Batch processing in a neural network processor |
CN106250981A (zh) * | 2015-06-10 | 2016-12-21 | 三星电子株式会社 | 减少存储器访问和网络内带宽消耗的脉冲神经网络 |
US20170011288A1 (en) * | 2015-07-10 | 2017-01-12 | Samsung Electronics Co., Ltd. | Neural network processor |
Non-Patent Citations (3)
Title |
---|
DAMIEN P. GEORGE 等: "MicroPython V1.14", 《MICROPYTHON V1.14》 * |
DAMIEN P. GEORGE 等: "MicroPython V1.14", 《MICROPYTHON V1.14》, 31 August 2015 (2015-08-31), pages 10 * |
STEFANO RECANATESI 等: "Neural Network Model of Memory Retrieval", 《FRONTIERS IN COMPUTATIONAL NEUROSCIENCE》, pages 1 - 11 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110494869A (zh) | 包括单独的控制和数据结构的神经网络处理器 | |
US11544545B2 (en) | Structured activation based sparsity in an artificial neural network | |
US11615297B2 (en) | Structured weight based sparsity in an artificial neural network compiler | |
CN108805792A (zh) | 具有先进调度的可编程粗粒度化和稀疏矩阵计算硬件 | |
US20200285892A1 (en) | Structured Weight Based Sparsity In An Artificial Neural Network | |
US11238334B2 (en) | System and method of input alignment for efficient vector operations 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 |