CN109804385A - 可编程集成电路上的二值神经网络 - Google Patents
可编程集成电路上的二值神经网络 Download PDFInfo
- Publication number
- CN109804385A CN109804385A CN201780062276.4A CN201780062276A CN109804385A CN 109804385 A CN109804385 A CN 109804385A CN 201780062276 A CN201780062276 A CN 201780062276A CN 109804385 A CN109804385 A CN 109804385A
- Authority
- CN
- China
- Prior art keywords
- circuit
- layer
- hardware
- input
- logical signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims description 39
- 210000002569 neuron Anatomy 0.000 claims abstract description 84
- 210000005036 nerve Anatomy 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 32
- 230000001537 neural effect Effects 0.000 claims description 28
- 230000005611 electricity Effects 0.000 claims description 5
- 229910002056 binary alloy Inorganic materials 0.000 description 34
- 238000010586 diagram Methods 0.000 description 14
- 230000004913 activation Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 101100328552 Caenorhabditis elegans emb-9 gene Proteins 0.000 description 1
- 102100024370 Integrator complex subunit 11 Human genes 0.000 description 1
- 101710149806 Integrator complex subunit 11 Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000004218 nerve net Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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/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/0495—Quantised networks; Sparse networks; Compressed networks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17732—Macroblocks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
- Image Analysis (AREA)
Abstract
示例中,集成电路IC中实现的神经网络电路包括硬件神经元(124)层(120),层包括多个输入、多个输出、多个权重以及多个阈值,每个硬件神经元包括:逻辑电路(302),具有从至少一部分多个输入接收第一逻辑信号的输入和提供第二逻辑信号的输出,第二逻辑信号对应于第一逻辑信号和至少一部分多个权重的同或XNOR;计数电路(304),具有接收第二逻辑信号的输入和提供计数信号的输出,计数信号表示具有预定逻辑状态的第二逻辑信号数量;比较电路(306),其具有接收计数信号的输入和提供逻辑信号的输出,逻辑信号具有逻辑状态表示计数信号与多个阈值中的一个阈值之间的比较;其中由每个硬件神经元的比较电路输出的逻辑信号被提供为多个输出中的相应一个。
Description
技术领域
本发明的示例大致涉及电子电路,具体地,涉及可编程集成电路(IC)上的二值神经网络(binary neural network)
背景技术
用可编程集成电路(IC)(例如现场可编程门阵列(FPGA))来配置神经网络又重新引起了关注。目前,神经网络的FPGA实现主要集中在典型地基于脉动阵列结构的浮点或定点乘法累加。最近,已经证明,即使是大型现代机器学习问题也可以通过使用二进制表征权重和激活的神经网络来解决,同时实现高精度。然而,二值神经网络的实现迄今一直受限于软件。
发明内容
本申请描述了用于在可编程集成电路(IC)上实现二值神经网络的技术。在实施例中,在集成电路(IC)中实现的神经网络电路包括硬件神经元层,所述层包括多个输入、多个输出、多个权重和多个阈值,每个硬件神经元包括:逻辑电路,所述逻辑电路具有从所述多个输入中的至少一部分接收第一逻辑信号的输入和提供第二逻辑信号的输出,其中所述第二逻辑信号对应于所述第一逻辑信号和所述多个权重中的至少一部分的同或XNOR运算;计数电路,所述计数电路具有接收所述第二逻辑信号的输入和提供计数信号的输出,所述计数信号表示具有预定逻辑状态的所述第二逻辑信号的数量;以及比较电路,所述比较电路具有接收所述计数信号的输入和提供逻辑信号的输出,所述逻辑信号具有逻辑状态,所述逻辑状态表示所述计数信号与所述多个阈值中的一个阈值之间的比较;其中,由每个所述硬件神经元的所述比较电路输出的所述逻辑信号被提供为所述多个输出中的相应一个输出。
在另一实施例中,一种在集成电路(IC)中实现神经网络的方法包括在所述IC中实现硬件神经元层,所述层包括多个输入、多个输出、多个权重和多个阈值;以及在多个神经元的每个神经元中:从所述多个输入中的至少一部分接收第一逻辑信号并提供第二逻辑信号,所述第二逻辑信号对应于所述第一逻辑信号和所述多个权重中的至少一部分的同或XNOR运算;接收所述第二逻辑信号并提供计数信号,所述计数信号表示具有预定义逻辑状态的所述第二逻辑信号的数量;接收所述计数信号并提供逻辑信号,所述逻辑信号具有逻辑状态,所述逻辑状态表示所述计数信号与所述多个阈值中的一个阈值之间的比较。
在另一实施例中,可编程集成电路(IC)包括可编程结构,所述可编程结构被配置为实现:硬件神经元层,所述层包括多个输入、多个输出、多个权重和多个阈值。每个硬件神经元包括:逻辑电路,所述逻辑电路具有从所述多个输入中的至少一部分接收第一逻辑信号的输入和提供第二逻辑信号的输出,其中所述第二逻辑信号对应于所述第一逻辑信号和所述多个权重中的至少一部分的同或XNOR运算;计数电路,所述计数电路具有接收所述第二逻辑信号的输入和提供计数信号的输出,所述计数信号表示具有预定逻辑状态的所述第二逻辑信号的数量;以及比较电路,所述比较电路具有接收所述计数信号的输入和提供逻辑信号的输出,所述逻辑信号具有逻辑状态,所述逻辑状态表示所述计数信号与所述多个阈值中的一个阈值之间的比较。由每个所述硬件神经元的所述比较电路输出的所述逻辑信号被提供为所述多个输出中的相应一个输出。
参考以下详细说明,将了解本发明的上述及其他方面内容。
附图说明
为了可以详细地了解上述特征的方式,可以参考具体实施方式获得上面简要概述的更具体的描述,其中一些实施例在附图中示出。然而应注意,附图仅示出了典型的示例性实施方式,不应被视为限制其范围。
图1是根据一个实施例示出二值神经网络在可编程集成电路(IC)中硬件实现上的映射的框图。
图2是根据一个实施例示出神经网络电路的层电路的框图。
图3是根据一个实施例示出硬件神经元的框图。
图4是根据一个实施例示出神经网络电路的层电路的框图。
图5是根据一个实施例示出硬件神经元的专门化(specialization)的框图。
图6是示出在宏观级别上折叠二值神经网络的层(称为“宏观级别折叠”)的实施例的框图。
图7是根据一个实施例示出宏观级别折叠的方法的流程图。
图8是示出在微观级别上折叠二值神经网络的神经元(称为“微观级别折叠”)的实施例的框图。
图9示出了根据实施例的具有神经网络实现硬件层的现场可编程门阵列(FPGA)架构。
为了便于理解,在可能的情况下,使用相同的附图标记来表示附图中共有的相同元件。可以理解,一个实施例的元件可以有益地包含在其他实施例中。
具体实施方式
在下文中参考附图介绍了各个特征。应当注意,附图可以或可以不按比例绘制,并且在所有附图中相似结构或功能的元件由相同的附图标记表示。应注意,附图仅用于方便描述特征。它们并非作为对要求保护的发明的穷尽式描述,或是所要求保护的发明的范围限制。另外,图示实施例不需要包括所示的所有方面或优点。结合特定实施例介绍的方面或优点不必限于该实施例,并且即使未如此示出或未明确地说明,其也可以在任何其他实施例中实施。
本发明介绍了一种二值神经网络的高效硬件实现。在一个实施例中,硬件实现被映射到可编程集成电路(IC)的架构,例如现场可编程门阵列(FPGA)。该实现映射了大量的神经元,这些神经元以高计算强度处理输入数据。例如,假设完整神经网络可以完全展开在FPGA内部,则神经网络可以以时钟频率对输入的数据集(例如,图像)进行分类。假设保守的时钟频率为100MHz,则神经网络实现可以以每秒1亿个数据集(例如,每秒图像数)对输入数据集进行分类。在其他实施例中,执行一定量的折叠以实现神经网络。本申请介绍的神经网络的硬件实现从根本上就不同于先前的将浮点神经网络映射到通用处理引擎的脉动阵列(systolic array)上的FPGA中的实现。这种浮点实现当前每秒能处理100-300个数据集。此外,本申请所介绍的神经网络实现与先前的FPGA中的浮点实现和使用图形处理单元(GPU)的实现相比耗能更少。
如下文所述,二值神经网络的好处是标准浮点乘法累加运算变为同或(exclusiveNOR)运算和位计数运算。基础架构包括多个层,这些层可以完全连接或部分连接(例如卷积、池(pooling)等)。每层包括许多硬件神经元。每个硬件神经元以所有数据输入和相应权重的同或(XNOR)计算神经元,计数结果中逻辑“1”位的数量,并将计数与阈值进行比较。当位计数大于阈值时,硬件神经元返回“真”(逻辑“1”),反之则返回“假”(逻辑“0”)。完全连接和部分连接的层在硬件神经元如何接收输入数据的方面不同。对于完全连接的层,输入被广播到所有硬件神经元。对于部分连接的层,每个硬件神经元对输入数据的一部分进行运算。例如,在卷积层中,每个硬件神经元对输入数据的一部分序列进行运算,以产生相应的激活(activation)序列。根据该实现方式,池化层(例如,最大池化层)可用于对先前层的输出进行下采样(down-sample)。
在一些实施方式中,权重和阈值可能不经常更新(例如,仅在重新训练网络之后)。因此,权重和/或阈值可以被“硬化”以生成专用硬件神经元。网络的专用化应该删除与XNOR运算和/或比较运算相关的所有资源要求。此外,当在FPGA中实现时,专用化网络可以比非专用化网络实现消耗明显更少的路由资源。
在一些实施方式中,由于资源限制,大型网络可能不能被完全展开的实现。例如,FPGA中的路由限制可能妨碍具有大量突触的大型完全连接层的有效实现。因此,在一些示例中,网络可以被折叠到硬件架构上。可以通过改变粒度来实现折叠。在宏观层面上,整个层可以被迭代地折叠到架构上。或者,可以将一些神经元折叠到相同的硬件神经元上,并且可以将一些突触折叠到相同的连接上(减少路由要求)。下面参考附图描述二值神经网络实现的上述和其他方面内容。
图1是根据一个实施例示出二值神经网络101在可编程集成电路(IC)中的硬件实现上的映射的框图。二值神经网络包括一个或多个层102。每个层102包括具有突触106(例如,输入)和激活(activation)108(例如,输出)的神经元104。层102的输入包括二进制输入110、二进制权重112和阈值114。层102的输出包括二进制输出116。每个二进制输入110是1位的值(例如,逻辑“0”或逻辑“1”)。同样,每个二进制权重112是1位的值。每个阈值114是整数。每个二进制输出116是1位的值。每个神经元104通过相应的一个或多个突触106接收一个或多个二进制输入110。每个神经元104还接收一个或多个用于突触106的二进制权重112和阈值114。每个神经元104通过激活108提供二进制输出116。当神经元104的二进制输入、二进制权重和阈值导致其二进制输出被使能(asserted)(例如,逻辑“1”)时,神经元104被“激活”。
一些层102可以被“完全连接”,例如如图2所示。在完全连接的层中,一组给定的二进制输入110或来自前一层的一组给定的激活108被广播到所有神经元104。即,每个神经元104对相同的一组输入进行运算。一些层102可以被“部分连接”。在部分连接的层中,每个神经元104对一组给定的二进制输入110的一部分或来自前一层的一组给定的激活108的一部分进行运算。不同的神经元104可以对一组输入的相同或不同部分进行运算。二进制输入110可以表示一个或多个数据集,例如一个或多个图像。在图像实施例中,至完全连接层的输入是整个图像,而至部分连接层的输入是图像的一部分。一些层102可以是“卷积”层。在卷积层中,每个神经元104对一组给定二进制输入110的一部分序列或来自前一层的一组给定激活108的一部分序列进行运算。
在该实施例中,二值神经网络101被映射到可编程IC 118的硬件。可编程IC的一个实施例是现场可编程门阵列(FPGA)。下面介绍了FPGA的示例架构。虽然二值神经网络101被描述为被映射到可编程IC中的硬件,但是应该理解,二值神经网络101也可以映射到任何类型的IC的硬件(例如,专用集成电路(ASIC))。
二值神经网络101的硬件实现包括层电路120。各个层电路120包括输入连接122、硬件神经元124和输出连接126。层102被映射到层电路120。突触106被映射到输入连接122。神经元104被映射到硬件神经元124。激活108被映射到输出连接126。可以基于描述层102的说明而使用电路设计工具生成层电路120,其中电路设计工具在计算机系统上运行。电路设计工具可以生成配置数据用于在可编程IC 118中配置层电路120。或者,对于不可编程IC(例如,ASIC),电路设计工具可以生成掩模数据(mask-data)用于制造具有层电路120的IC。
例如,如图3所示,可编程IC 118包括电路以帮助层电路120的运行,包括存储器电路128和控制电路130。存储器电路128可以存储用于层电路120的二进制输入、二进制权重、阈值和二进制输出。存储器电路128可包括寄存器、先进先出(FIFO)电路等。控制电路130可以控制对存储器电路128的写入和读取。在其他实施例中,二进制输入可以直接来自外部电路,并且输出可以被直接传输到外部电路。当如图5所示使层专用化时,权重和阈值可以被硬编码为逻辑的一部分。存储器电路128可以是片上的或片外的。
图2是根据一个实施例示出神经网络电路的层电路120A的框图。层电路120A是完全连接层的示例,并且可以用作图1中所示的任何层电路120。层电路120A包括硬件神经元202-1到202-Y(通常称为硬件神经元202),其中Y是正整数。每个硬件神经元202的数据输入(例如,突触)接收提供二进制输入的逻辑信号。二进制输入可以是一组二进制输入110或来自前一层的一组激活。在该实施例中,每个硬件神经元202包括用于接收X个逻辑信号的X个数据输入(例如,X个突触),其中X是正整数。X个逻辑信号中的每个逻辑信号提供单个二进制输入。
每个硬件神经元202包括权重输入,权重输入接收提供二进制权重的逻辑信号。每个神经元202可以接收相同或不同的二进制权重组。每个硬件神经元202接收对应于X个数据输入的X个二进制权重。每个硬件神经元202还接收阈值,该阈值可以与其他硬件神经元202相同或不同。每个硬件神经元202生成逻辑信号作为输出(例如,1位的输出)。硬件神经元202-1到202-Y共同输出提供Y个二进制输出(例如,Y个激活)的Y个逻辑信号。
图3是根据一个实施例示出硬件神经元202的框图。硬件神经元202包括同或(XNOR)电路302、计数电路304和比较电路306。XNOR电路302接收提供二进制输入的X个逻辑信号和提供二进制权重的X个逻辑信号。XNOR电路302输出X个逻辑信号以提供二进制输入和二进制权重的相应XNOR结果。计数电路304被配置为计数由XNOR电路302输出的X个逻辑信号中具有预定义逻辑状态的信号数量(例如,XNOR电路302输出的逻辑“1”的数量)。计数电路304输出提供计数值的计数信号。计数信号的位数为log2(X)+1。例如,如果X是256,则计数信号包括9位。比较电路306接收计数信号和提供阈值的阈值信号。阈值信号具有与计数信号相同的宽度(例如,log2(X)+1)。比较电路306输出提供1位输出值的逻辑信号。当计数值大于阈值时,比较电路306使能输出逻辑信号(例如,将其设置为逻辑“1”),否则去使能(de-assert)输出逻辑信号(例如,将其设置为逻辑“0”)。
无论层的类型如何,层的每个硬件神经元的运算都一样。如图3所示,每个硬件神经元都使用XNOR电路302计算二进制输入和二进制权重之间的XNOR。计数电路304计数XNOR运算结果中的预定义逻辑状态的数量(例如,逻辑“1”的数量)。比较电路306将计数值与阈值进行比较,并相应地使能或去使能其输出。
图4是根据一个实施例示出神经网络电路的层电路120B的框图。层电路120B是部分连接的层或卷积层的实施例,并且可以用作图1所示的任何层120。图4实施例与图3实施例的不同之处在于每个硬件神经元202接收一组单独的二进制输入(即,二进制输入不被广播到所有硬件神经元202)。各组二进制输入可以是一组二进制输入110的一部分或来自前一层的一组激活的一部分。为清楚起见,图4中省略了每个硬件神经元202的阈值输入。图4所示的硬件神经元202具有与图3所示神经元相同的结构。
例如,层电路120B可以用作卷积层。在该实施例中,输入数据集(例如,图像)可以被划分为一组N输入特征映射,每个输入特征映射具有高度H和宽度W。相应的二进制权重可以被划分成N*M个组,每个组具有K*K个二元权重值。在该实施例中,值X可以被设置为K*K,值Y可以被设置为M*W*H。向每个硬件神经元202提供二进制输入组的序列以实现卷积序列。可以通过控制存储器电路128由控制电路130控制顺序。
图5是根据一个实施例示出硬件神经元的专门化的框图。在该实施例中,XNOR电路302包括用于X个数据输入中每个数据输入的XNOR门。第i个XNOR门输出结果[i]=输入[i]XNOR权重[i]。在另一个例子中,XNOR电路302可以通过硬化权重而被专门化。可以使权重固定而不是使权重可变,同时取决于相应权重值的固定状态,XNOR门可降低为同门(identitygate,例如直通门)或者非门(NOT gate,例如反相器)。如图5所示,XNOR电路302可以包括电路502-1到502-X,每个电路接收提供数据输入值的逻辑信号。每个电路502根据相应的权重值可以是同门或者非门。例如,如果第i个权重是逻辑“0”,则第i个电路502-i为非门(例如,当数据输入[i]是逻辑“1”时,则结果[i]是逻辑“0”,反之亦然,从而在权重[i]=逻辑“0”时实现XNOR功能)。如果第i个权重是逻辑“1”,则第i个电路502-i为同门(identity gate)(例如,当数据输入[i]是逻辑“1”时,则结果[i]是逻辑“1”,反之亦然,从而在权重[i]=逻辑“1”时实现XNOR功能)。当权重值是先验已知时,可以实现硬件神经元的这种具体化。
在实施例中,二值神经网络101使用层电路120实现而不折叠(例如,“不折叠的”)。在折叠的情况下,使用可编程IC 118中的对应层电路120来实现二值神经网络101的每个层102。在其他实施例中,使用某种类型的折叠来实现二值神经网络101。
图6是示出在宏观级别上折叠二值神经网络101的层102(称为“宏观级别折叠”)的实施例的框图。在所示的示例中,可编程IC 118包括单层电路120,二值神经网络101包括n个层102-1到102-n,其中n是大于1的整数。层102-1到102-n被时分复用(time-multiplexed)到层电路120上。也就是说,层电路120被配置为实现层102-1,然后实现层102-2等,直到实现层102-N。保存层电路120产生的结果以用作层102的下一个实现的输入。在其他实施例中,可编程IC 118可包括多于一个的层电路120,并且层102可跨越多个层电路120进行折叠。
图7是根据一个实施例示出宏观级别折叠的方法700的流程图。方法700可以使用如图1所示的可编程IC 118来实现。方法700开始于步骤702,其中控制电路130将对应于二值神经网络101的第一层的第一组二进制权重和第一组阈值加载到存储器电路128中以供层电路120使用。在步骤704,层电路120处理二进制输入。在步骤706,控制电路130将层电路120的输出存储在存储器电路128中。在步骤708,控制电路130把对应于二值神经网络101的下一层的下一组二进制权重和下一组阈值加载到存储器电路120中以供层电路120使用。在步骤710,层电路120处理层电路120为前一层产生的二进制输出。在步骤712,控制电路130确定是否存在要实施的二值神经网络101的更多层102。如果存在,则方法700返回到步骤706并重复。否则,方法700前进到步骤714,其中将层电路120的二进制输出提供为最终输出。
图8是示出在微观级别上折叠二值神经网络101的神经元104(称为“微观级别折叠”)的实施例的框图。在所示实施例中,提供多组二进制输入、二进制权重和阈值作为硬件神经元124的输入(例如,n组输入)。也就是说,n个神经元104被折叠到硬件神经元124上。n个神经元中的每一个神经元由给定的一组二进制输入、二进制权重和阈值表示。硬件神经元124为每组输入生成二进制输出组(例如,为n个输入组生成n个二进制输出组)。
图9示出了FPGA 900的架构,其包括大量不同的可编程片(programmable tile),可编程片包括多吉比特收发器(“MGT”)1、可配置逻辑块(“CLB”)2、随机存取存储器块(“BRAM”)3、输入/输出模块(“IOB”)4、配置和时钟逻辑(“CONFIG/CLOCKS”)5、数字信号处理模块(“DSP”)6、专用输入/输出模块(“I/O”)7(例如,配置端口和时钟端口)、以及其他可编程逻辑8,诸如数字时钟管理器、模数转换器、系统监视逻辑等。一些FPGA还包括专用处理器块(“PROC”)10。FPGA 900可以用作图1中所示的可编程IC 118。在这种情况下,层电路120使用FPGA 900的可编程结构来实现。
在一些FPGA中,每个可编程片可包括至少一个可编程互连元件(“INT”)11,INT11具有至同一片内的可编程逻辑元件的输入和输出端20的连接,如图9顶部实施例所示。每个可编程互连元件11还可以包括至相同片或其他片中的相邻可编程互连元件的互连段22的连接。每个可编程互连元件11还可以包括至逻辑块(未示出)之间的通用路由资源的互连段24的连接。通用路由资源可以包括逻辑块(未示出)之间的路由信道,路由信道包括互连段(例如,互连段24)的路径和用于连接互连段的开关块(未示出)。通用路由资源的互连段(例如,互连段24)可以跨越一个或多个逻辑块。可编程互连元件11与通用路由资源一起实现用于所示FPGA的可编程互连结构(“可编程互连”)。
在该实施例中,CLB 2可以包括可被编程以实现用户逻辑的可配置逻辑元件(“CLE”)12以及单个可编程互连元件(“INT”)11。除了一个或多个可编程互连元件之外,BRAM 3可以包括BRAM逻辑元件(“BRL”)13。通常,一块片中包括的互连元件的数量取决于片的高度。在图示实施例中,BRAM片具有五个CLB的高度,但是也可以使用其他数量(例如,四个)。除了适当数量的可编程互连元件之外,DSP片6还可以包括DSP逻辑元件(“DSPL”)14。除了可编程互连元件11的一个实例之外,IOB 4还可以包括例如输入/输出逻辑元件(“IOL”)15的两个实例。正如本领域技术人员所清楚的,实际上连接到例如I/O逻辑元件15的I/O焊盘通常不限制于输入/输出逻辑元件15的区域。
在图示实施例中,靠近裸片(die)中心的水平区域(如图9所示)用于配置、时钟和其他控制逻辑。从该水平区域或列延伸的垂直的列9用于在FPGA宽度上分布时钟和配置信号。
利用图9所示架构的一些FPGA包括额外的逻辑块,这些额外的逻辑快会打乱构成FPGA大部分的常规柱状结构。额外的逻辑块可以是可编程块和/或专用逻辑。例如,处理器块10跨越几列CLB和BRAM。处理器块10可以包括各种组件,范围从单个微处理器到包括微处理器、存储器控制器、外围设备等的完整可编程处理系统等。
注意,图9旨在示出示例性FPGA架构。例如,一行中的逻辑块的数量、行的相对宽度、行的数量和顺序、行中包括的逻辑块的类型、逻辑块的相对大小以及图9顶部的互连/逻辑实施方式都纯粹是示例性的。例如,在实际FPGA中,通常在CLB出现的任何地方包括多于一个的相邻的CLB行,以方便用户逻辑的有效实现,但是相邻CLB行的数量随FPGA整体尺寸不同而改变。
在一个实施例中,提供在集成电路(IC)中实现的神经网络电路。这样的电路可以包括:硬件神经元层,所述层包括多个输入、多个输出、多个权重和多个阈值,每个硬件神经元包括:逻辑电路,所述逻辑电路具有从所述多个输入中的至少一部分接收第一逻辑信号的输入和提供第二逻辑信号的输出,其中所述第二逻辑信号对应于所述第一逻辑信号和所述多个权重中的至少一部分的同或XNOR运算;计数电路,所述计数电路具有接收所述第二逻辑信号的输入和提供计数信号的输出,所述计数信号表示具有预定逻辑状态的所述第二逻辑信号的数量;以及比较电路,所述比较电路具有接收所述计数信号的输入和提供逻辑信号的输出,所述逻辑信号具有逻辑状态,所述逻辑状态表示所述计数信号与所述多个阈值中的一个阈值之间的比较;其中,由每个所述硬件神经元的所述比较电路输出的所述逻辑信号被提供为所述多个输出中的相应一个输出。
在一些这样的电路中,输入到每个所述硬件神经元的所述逻辑电路的所述第一逻辑信号为至所述层的所述多个输入。
在一些这样的电路中,所述层被配置为接收多个权重信号,所述多个权重信号提供所述多个权重,其中每个所述硬件神经元中的所述逻辑电路是XNOR电路。
在一些这样的电路中,至少一部分所述硬件神经元中的所述逻辑电路是取决于所述多个权重中的每个权重的固定值的通过电路或反向器。
在一些这样的电路中,所述神经网络包括多个层,并且其中所述电路还包括:控制电路,所述控制电路被配置为随时间依次将所述多个层中的每个层映射到所述硬件神经元层。
一些这样的电路还可以包括:控制电路,所述控制电路被配置为随时间依次将多组输入数据中的每组输入数据提供给所述层的所述多个输入。
一些这样的可以进一步包括:控制电路,所述控制电路被配置为随时间依次提供多组权重中的每一组权重作为所述层的所述多个权重。
在一些这样的电路中,所述硬件神经元层可以是第一硬件神经元层,其中所述多个输入、所述多个输出、所述多个权重和所述多个阈值分别是第一多个输入、第一多个输出、第一多个权重和第一多个阈值,并且其中所述电路还包括:第二硬件神经元层,所述第二层包括第二多个输入、第二多个输出、第二多个权重和第二多个阈值;其中所述第二层的所述第二多个输入为所述第一层的所述第一多个输出。
一些这样的电路还可以包括:存储器电路,所述存储器电路设置在所述第一层的所述第一多个输出和所述第二层的所述第二多个输入之间。
在另一实施例中,可以提供一种在集成电路(IC)中实现神经网络的方法。这种方法可以包括:在所述IC中实现硬件神经元层,所述层包括多个输入、多个输出、多个权重和多个阈值;在多个神经元的每个神经元中:从所述多个输入中的至少一部分接收第一逻辑信号并提供第二逻辑信号,所述第二逻辑信号对应于所述第一逻辑信号和所述多个权重中的至少一部分的同或XNOR运算;接收所述第二逻辑信号并提供计数信号,所述计数信号表示具有预定义逻辑状态的所述第二逻辑信号的数量;接收所述计数信号并提供逻辑信号,所述逻辑信号具有逻辑状态,所述逻辑状态表示所述计数信号与所述多个阈值中的一个阈值之间的比较。
在一些这样的方法中,输入到每个所述硬件神经元的所述第一逻辑信号为至所述层的所述多个输入。
在一些这样的方法中,所述层被配置为接收多个权重信号,所述多个权重信号提供所述多个权重,其中每个所述硬件神经元包括XNOR电路。
在一些这样的方法中,至少一部分所述硬件神经元包括取决于所述多个权重中的每个权重的固定值的通过电路或反相器。
在一些这样的方法中,所述神经网络包括多个层,所述方法还包括:随时间将所述多个层中的每个层依次映射到所述硬件神经元层。
一些这样的方法还可以包括:随时间将多组输入数据中的每一组输入数据依次提供给所述层的所述多个输入。
一些这样的方法可以进一步包括:随时间依次提供所述多组权重中的每组权重作为所述层的所述多个权重。
在一些这样的方法中,所述硬件神经元层可以是第一硬件神经元层,其中所述多个输入、所述多个输出、所述多个权重和所述多个阈值分别是第一多个输入、第一多个输出、第一多个权重和第一多个阈值,其中所述方法还包括:
实现第二硬件神经元层,所述第二层包括第二多个输入、第二多个输出、第二多个权重和第二多个阈值;其中所述第二硬件神经元层的所述第二多个输入为所述第一层的所述第一多个输出。
一些这样的方法还可以包括:存储器电路,所述存储器电路设置在所述第一层的所述第一多个输出和所述第二层的所述第二多个输入之间。
在另一实施例中,提供了一种可编程集成电路(IC)。这种IC可以包括:可编程结构,所述可编程结构被配置为实现:
硬件神经元层,所述层包括多个输入、多个输出、多个权重和多个阈值,每个硬件神经元包括:逻辑电路,所述逻辑电路具有从所述多个输入中的至少一部分接收第一逻辑信号的输入和提供第二逻辑信号的输出,其中所述第二逻辑信号对应于所述第一逻辑信号和所述多个权重中的至少一部分的同或XNOR运算;计数电路,所述计数电路具有接收所述第二逻辑信号的输入和提供计数信号的输出,所述计数信号表示具有预定逻辑状态的所述第二逻辑信号的数量;以及比较电路,所述比较电路具有接收所述计数信号的输入和提供逻辑信号的输出,所述逻辑信号具有逻辑状态,所述逻辑状态表示所述计数信号与所述多个阈值中的一个阈值之间的比较;其中,由每个所述硬件神经元的所述比较电路输出的所述逻辑信号被提供为所述多个输出中的相应一个输出。
在一些这样的IC中,所述层可以被配置为接收多个权重信号,所述多个权重信号提供所述多个权重,其中每个所述硬件神经元中的所述逻辑电路可以是XNOR电路。
虽然前述内容针对特定实施例,但是可以在不脱离其基本范围的情况下设计其他和进一步的示例,并且本发明的范围由所附权利要求确定。
Claims (15)
1.一种在集成电路IC中实现的神经网络电路,其特征在于,所述神经网络电路包括:
硬件神经元层,所述层包括多个输入、多个输出、多个权重和多个阈值,每个硬件神经元包括:
逻辑电路,所述逻辑电路具有从所述多个输入中的至少一部分接收第一逻辑信号的输入和提供第二逻辑信号的输出,其中所述第二逻辑信号对应于所述第一逻辑信号和所述多个权重中的至少一部分的同或XNOR运算;
计数电路,所述计数电路具有接收所述第二逻辑信号的输入和提供计数信号的输出,所述计数信号表示具有预定逻辑状态的所述第二逻辑信号的数量;以及
比较电路,所述比较电路具有接收所述计数信号的输入和提供逻辑信号的输出,所述逻辑信号具有逻辑状态,所述逻辑状态表示所述计数信号与所述多个阈值中的一个阈值之间的比较;
其中,由每个所述硬件神经元的所述比较电路输出的所述逻辑信号被提供为所述多个输出中的相应一个输出。
2.根据权利要求1所述的电路,其特征在于,输入到每个所述硬件神经元的所述逻辑电路的所述第一逻辑信号为至所述层的所述多个输入。
3.根据权利要求1或2中任一项所述的电路,其特征在于,所述层被配置为接收多个权重信号,所述多个权重信号提供所述多个权重,其中每个所述硬件神经元中的所述逻辑电路是XNOR电路。
4.根据权利要求1-3中任一项所述的电路,其特征在于,至少一部分所述硬件神经元中的所述逻辑电路是取决于所述多个权重中的每个权重的固定值的通过电路或反向器。
5.根据权利要求1-4中任一项所述的电路,其特征在于,所述神经网络包括多个层,并且其中所述电路还包括:
控制电路,所述控制电路被配置为随时间依次将所述多个层中的每个层映射到所述硬件神经元层。
6.根据权利要求1-5中任一项所述的电路,其特征在于,所述电路还包括:
控制电路,所述控制电路被配置为随时间依次将多组输入数据中的每组输入数据提供给所述层的所述多个输入。
7.根据权利要求1-5中任一项所述的电路,其特征在于,所述电路还包括:
控制电路,所述控制电路被配置为随时间依次提供多组权重中的每一组权重作为所述层的所述多个权重。
8.根据权利要求1-5中任一项所述的电路,其特征在于,所述硬件神经元层是第一硬件神经元层,其中所述多个输入、所述多个输出、所述多个权重和所述多个阈值分别是第一多个输入、第一多个输出、第一多个权重和第一多个阈值,并且其中所述电路还包括:
第二硬件神经元层,所述第二层包括第二多个输入、第二多个输出、第二多个权重和第二多个阈值;
其中所述第二层的所述第二多个输入为所述第一层的所述第一多个输出。
9.一种在集成电路IC中实现神经网络的方法,其特征在于,所述方法包括:
在所述IC中实现硬件神经元层,所述层包括多个输入、多个输出、多个权重和多个阈值;
在多个神经元的每个神经元中:
从所述多个输入中的至少一部分接收第一逻辑信号并提供第二逻辑信号,所述第二逻辑信号对应于所述第一逻辑信号和所述多个权重中的至少一部分的同或XNOR运算;
接收所述第二逻辑信号并提供计数信号,所述计数信号表示具有预定义逻辑状态的所述第二逻辑信号的数量;以及
接收所述计数信号并提供逻辑信号,所述逻辑信号具有逻辑状态,所述逻辑状态表示所述计数信号与所述多个阈值中的一个阈值之间的比较。
10.根据权利要求9所述的方法,其特征在于,输入到每个所述硬件神经元的所述第一逻辑信号为至所述层的所述多个输入。
11.根据权利要求9所述的方法,其特征在于,所述层被配置为接收多个权重信号,所述多个权重信号提供所述多个权重,其中每个所述硬件神经元包括XNOR电路。
12.根据权利要求9所述的方法,其特征在于,至少一部分所述硬件神经元包括取决于所述多个权重中的每个权重的固定值的通过电路或反相器。
13.根据权利要求9所述的方法,其特征在于,所述神经网络包括多个层,所述方法还包括:
随时间将所述多个层中的每个层依次映射到所述硬件神经元层。
14.根据权利要求9所述的方法,其特征在于,所述方法还包括:
随时间将多组输入数据中的每一组输入数据依次提供给所述层的所述多个输入;以及
随时间依次提供所述多组权重中的每组权重作为所述层的所述多个权重。
15.根据权利要求9所述的方法,其特征在于,所述硬件神经元层是第一硬件神经元层,其中所述多个输入、所述多个输出、所述多个权重和所述多个阈值是第一多个输入、第一多个输出、第一多个权重和第一多个阈值,其中所述方法还包括:
实现第二硬件神经元层,所述第二层包括第二多个输入、第二多个输出、第二多个权重和第二多个阈值;
其中所述第二硬件神经元层的所述第二多个输入为所述第一层的所述第一多个输出。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/230,164 US10089577B2 (en) | 2016-08-05 | 2016-08-05 | Binary neural networks on progammable integrated circuits |
US15/230,164 | 2016-08-05 | ||
PCT/US2017/043515 WO2018026560A1 (en) | 2016-08-05 | 2017-07-24 | Binary neural networks on progammable integrated circuits |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109804385A true CN109804385A (zh) | 2019-05-24 |
Family
ID=59523269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780062276.4A Pending CN109804385A (zh) | 2016-08-05 | 2017-07-24 | 可编程集成电路上的二值神经网络 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10089577B2 (zh) |
EP (1) | EP3494521B1 (zh) |
JP (1) | JP7012073B2 (zh) |
KR (1) | KR102544623B1 (zh) |
CN (1) | CN109804385A (zh) |
WO (1) | WO2018026560A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112263262A (zh) * | 2020-10-26 | 2021-01-26 | 生物岛实验室 | 健康监测设备 |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6708044B2 (ja) * | 2016-07-28 | 2020-06-10 | 富士通株式会社 | 画像認識装置、画像認識プログラム、画像認識方法および認識装置 |
US10719762B2 (en) * | 2017-08-03 | 2020-07-21 | Xcelsis Corporation | Three dimensional chip structure implementing machine trained network |
US10839286B2 (en) * | 2017-09-14 | 2020-11-17 | Xilinx, Inc. | System and method for implementing neural networks in integrated circuits |
CN110245749B (zh) * | 2018-03-08 | 2024-06-14 | 三星电子株式会社 | 用于执行同或运算的计算单元、神经网络及方法 |
US10461751B2 (en) * | 2018-03-08 | 2019-10-29 | Samsung Electronics Co., Ltd. | FE-FET-based XNOR cell usable in neuromorphic computing |
US11461631B2 (en) | 2018-03-22 | 2022-10-04 | Amazon Technologies, Inc. | Scheduling neural network computations based on memory capacity |
US11475306B2 (en) | 2018-03-22 | 2022-10-18 | Amazon Technologies, Inc. | Processing for multiple input data sets |
CN118014031A (zh) | 2018-03-22 | 2024-05-10 | 亚马逊技术股份有限公司 | 针对多个输入数据集的处理 |
US11615300B1 (en) | 2018-06-13 | 2023-03-28 | Xilinx, Inc. | System and method for implementing neural networks in integrated circuits |
EP3591584B1 (en) | 2018-07-03 | 2024-02-07 | Robert Bosch GmbH | Probabilistic training for binary neural networks |
US10643705B2 (en) | 2018-07-24 | 2020-05-05 | Sandisk Technologies Llc | Configurable precision neural network with differential binary non-volatile memory cell structure |
US11170290B2 (en) | 2019-03-28 | 2021-11-09 | Sandisk Technologies Llc | Realization of neural networks with ternary inputs and binary weights in NAND memory arrays |
US10643119B2 (en) * | 2018-07-24 | 2020-05-05 | Sandisk Technologies Llc | Differential non-volatile memory cell for artificial neural network |
US11328204B2 (en) | 2018-07-24 | 2022-05-10 | Sandisk Technologies Llc | Realization of binary neural networks in NAND memory arrays |
US11151769B2 (en) * | 2018-08-10 | 2021-10-19 | Intel Corporation | Graphics architecture including a neural network pipeline |
CN109325582B (zh) * | 2018-09-07 | 2020-10-30 | 中国科学院计算技术研究所 | 面向二值神经网络的计算装置及方法 |
CN109308517B (zh) * | 2018-09-07 | 2021-08-24 | 中国科学院计算技术研究所 | 面向二值神经网络的二值化装置、方法及应用 |
US20200117978A1 (en) * | 2018-10-12 | 2020-04-16 | Alibaba Group Holding Limited | Systems and methods for efficiently mapping neural networks to programmable logic devices |
KR20200053886A (ko) * | 2018-11-09 | 2020-05-19 | 삼성전자주식회사 | 뉴럴 프로세싱 유닛, 뉴럴 프로세싱 시스템, 및 어플리케이션 시스템 |
JP6885645B2 (ja) * | 2018-11-15 | 2021-06-16 | LeapMind株式会社 | ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、およびニューラルネットワーク処理プログラム |
US11354888B2 (en) | 2018-11-16 | 2022-06-07 | GM Global Technology Operations LLC | Method and apparatus for a neural network |
US10657617B1 (en) | 2018-11-26 | 2020-05-19 | GM Global Technology Operations LLC | Method and apparatus for memory access management for data processing |
US20200175351A1 (en) * | 2018-11-30 | 2020-06-04 | Robert Bosch Gmbh | Bit interpretation for convolutional neural network input layer |
EP3674982A1 (en) * | 2018-12-27 | 2020-07-01 | IMEC vzw | Hardware accelerator architecture for convolutional neural network |
US11531869B1 (en) | 2019-03-28 | 2022-12-20 | Xilinx, Inc. | Neural-network pooling |
CN110070178B (zh) * | 2019-04-25 | 2021-05-14 | 北京交通大学 | 一种卷积神经网络计算装置及方法 |
US10964362B2 (en) | 2019-04-25 | 2021-03-30 | Marvell Asia Pte, Ltd. | Three-port memory cell and array for in-memory computing |
US10789402B1 (en) | 2019-05-01 | 2020-09-29 | Xilinx, Inc. | Compiler and hardware abstraction layer architecture for a neural network accelerator |
US11704535B1 (en) | 2019-05-17 | 2023-07-18 | Xilinx, Inc. | Hardware architecture for a neural network accelerator |
KR102345409B1 (ko) * | 2019-08-29 | 2021-12-30 | 주식회사 하이퍼커넥트 | 컨볼루션 뉴럴 네트워크에서 컨볼루션 연산을 가속하는 프로세서 및 프로세서의 동작 방법 |
US10872295B1 (en) | 2019-09-19 | 2020-12-22 | Hong Kong Applied Science and Technology Institute Company, Limited | Residual quantization of bit-shift weights in an artificial neural network |
US11568200B2 (en) | 2019-10-15 | 2023-01-31 | Sandisk Technologies Llc | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference |
US11625586B2 (en) | 2019-10-15 | 2023-04-11 | Sandisk Technologies Llc | Realization of neural networks with ternary inputs and ternary weights in NAND memory arrays |
KR20220078655A (ko) | 2019-10-18 | 2022-06-10 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 오류 정정 코드를 이용한 이진 뉴런 및 이진 신경망의 설계 및 트레이닝 |
US11657259B2 (en) | 2019-12-20 | 2023-05-23 | Sandisk Technologies Llc | Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine |
US11397885B2 (en) | 2020-04-29 | 2022-07-26 | Sandisk Technologies Llc | Vertical mapping and computing for deep neural networks in non-volatile memory |
US11544547B2 (en) | 2020-06-22 | 2023-01-03 | Western Digital Technologies, Inc. | Accelerating binary neural networks within latch structure of non-volatile memory devices |
US11568228B2 (en) | 2020-06-23 | 2023-01-31 | Sandisk Technologies Llc | Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays |
US11663471B2 (en) | 2020-06-26 | 2023-05-30 | Sandisk Technologies Llc | Compute-in-memory deep neural network inference engine using low-rank approximation technique |
KR20220116757A (ko) | 2021-02-15 | 2022-08-23 | 삼성전자주식회사 | Mtj 소자를 기반으로 한 프로세싱 장치 및 그 장치를 포함하는 전자 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5073867A (en) * | 1989-06-12 | 1991-12-17 | Westinghouse Electric Corp. | Digital neural network processing elements |
US5696838A (en) * | 1993-04-27 | 1997-12-09 | Sony Corporation | Pattern searching method using neural networks and correlation |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5161203A (en) * | 1981-08-06 | 1992-11-03 | Buckley B Shawn | Self-organizing circuits |
JP2679730B2 (ja) * | 1988-08-31 | 1997-11-19 | 富士通株式会社 | 階層構造ニューラルネット |
JP2679731B2 (ja) * | 1988-08-31 | 1997-11-19 | 富士通株式会社 | パイプライン処理を用いたニューラルアーキテクチュア |
JPH02264354A (ja) * | 1989-04-05 | 1990-10-29 | Takayama:Kk | データ処理装置 |
US5553196A (en) * | 1989-04-05 | 1996-09-03 | Yozan, Inc. | Method for processing data using a neural network having a number of layers equal to an abstraction degree of the pattern to be processed |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
DE69818863T2 (de) | 1997-12-19 | 2004-09-09 | Bae Systems Plc, Farnborough | Binäre kodeumsetzer und kodevergleicher |
JP3703390B2 (ja) * | 2000-12-01 | 2005-10-05 | Necマイクロシステム株式会社 | 論理検証装置 |
JP4750313B2 (ja) * | 2001-05-31 | 2011-08-17 | キヤノン株式会社 | 信号処理回路 |
US8103606B2 (en) | 2006-12-08 | 2012-01-24 | Medhat Moussa | Architecture, system and method for artificial neural network implementation |
US9092736B2 (en) * | 2010-07-07 | 2015-07-28 | Qualcomm Incorporated | Communication and synapse training method and hardware for biologically inspired networks |
-
2016
- 2016-08-05 US US15/230,164 patent/US10089577B2/en active Active
-
2017
- 2017-07-24 CN CN201780062276.4A patent/CN109804385A/zh active Pending
- 2017-07-24 WO PCT/US2017/043515 patent/WO2018026560A1/en unknown
- 2017-07-24 EP EP17749012.5A patent/EP3494521B1/en active Active
- 2017-07-24 JP JP2019506182A patent/JP7012073B2/ja active Active
- 2017-07-24 KR KR1020197006427A patent/KR102544623B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5073867A (en) * | 1989-06-12 | 1991-12-17 | Westinghouse Electric Corp. | Digital neural network processing elements |
US5696838A (en) * | 1993-04-27 | 1997-12-09 | Sony Corporation | Pattern searching method using neural networks and correlation |
Non-Patent Citations (9)
Title |
---|
MINJE KIM: "Bitwise Neural Networks", 《CORNELL NIVERSITY LIBRARY, 201 OLIN LIBRARYCORNELL UNIVERSITY ITHACA》 * |
MINJE KIM: "Bitwise Neural Networks", 《CORNELL NIVERSITY LIBRARY, 201 OLIN LIBRARYCORNELL UNIVERSITY ITHACA》, 22 January 2016 (2016-01-22), pages 1 - 5 * |
MINJE KIM: "BitwiseNeural Networks", 《CORNELL NIVERSITY LIBRARY, 201 OLINLIBRARYCORNELL UNIVERSITY ITHACA》, pages 1 - 5 * |
STYLIANOS I. V ENIERIS: "fpgaConvNet: A Framework for Mapping Convolutional Neural Networks on FPGAs", 《2016 IEEE 24TH ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES》 * |
STYLIANOS I. V ENIERIS: "fpgaConvNet: A Framework for Mapping Convolutional Neural Networks on FPGAs", 《2016 IEEE 24TH ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES》, 1 May 2016 (2016-05-01), pages 40 - 47, XP055483439, DOI: 10.1109/FCCM.2016.22 * |
STYLIANOS I. V ENIERIS: "fpgaConvNet: A Framework for Mapping ConvolutionalNeural Networks on FPGAs", 《2016 IEEE 24TH ANNUAL INTERNATIONALSYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES》, pages 40 - 47 * |
YINGWANG等: "DeepBurning: Automatic Generator of FPGA-based Learning Accelerators for the Neural Network Family", 《DAC\'16:PROCEEDINGS OF THE 53RD ANNUAL DESIGN AUTOMATION CONFERENCE 》, pages 1 - 6 * |
杭国强: "基于多值逻辑方法的二值神经元MOS电路设计技术", 《半导体学报》 * |
杭国强: "基于多值逻辑方法的二值神经元MOS电路设计技术", 《半导体学报》, no. 07, 8 July 2006 (2006-07-08) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112263262A (zh) * | 2020-10-26 | 2021-01-26 | 生物岛实验室 | 健康监测设备 |
Also Published As
Publication number | Publication date |
---|---|
US20180039886A1 (en) | 2018-02-08 |
JP2019531535A (ja) | 2019-10-31 |
JP7012073B2 (ja) | 2022-01-27 |
EP3494521A1 (en) | 2019-06-12 |
EP3494521B1 (en) | 2024-05-01 |
KR102544623B1 (ko) | 2023-06-15 |
WO2018026560A1 (en) | 2018-02-08 |
KR20190035856A (ko) | 2019-04-03 |
US10089577B2 (en) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109804385A (zh) | 可编程集成电路上的二值神经网络 | |
US8683410B2 (en) | Operational cycle assignment in a configurable IC | |
CN109977943A (zh) | 一种基于yolo的图像目标识别方法、系统和存储介质 | |
CN108564168A (zh) | 一种对支持多精度卷积神经网络处理器的设计方法 | |
WO2019060670A1 (en) | LOW PROFOUND CONVOLUTIVE NETWORK WEIGHT COMPRESSION | |
CN104112053B (zh) | 一种面向图像处理的可重构架构平台设计方法 | |
CN106127301A (zh) | 一种随机神经网络硬件实现装置 | |
US11769040B2 (en) | Scalable multi-die deep learning system | |
US9117022B1 (en) | Hierarchical arbitration | |
CN110969260A (zh) | 不平衡数据过采样方法、装置及存储介质 | |
CN110070182A (zh) | 适合人工智能的平台芯片及其制造和设计方法 | |
CN109815545A (zh) | 基于寄存器重定时的多流水级时序电路再综合操作方法 | |
López et al. | Power-aware multi-objective evolvable hardware system on an FPGA | |
CN104809302B (zh) | Rtl电路综合中的资源共享方法及其系统 | |
CN111930504B (zh) | 处理器时钟频率的确定方法、装置及计算机可读存储介质 | |
US20150178436A1 (en) | Clock assignments for programmable logic device | |
Kadam et al. | An overview of reconfigurable hardware for efficient implementation of dsp algorithms | |
CN115204103B (zh) | 基于cb分类的快速布线方法及装置 | |
Abd El-Maksoud et al. | Hardware-Accelerated ZYNQ-NET Convolutional Neural Networks on Virtex-7 FPGA | |
Matas et al. | Parallel hardware implementation of connected component tree computation | |
US20240192918A1 (en) | Sorting | |
Plagwitz et al. | To Spike or Not to Spike? A Quantitative Comparison of SNN and CNN FPGA Implementations | |
CN106227696A (zh) | 一种快速重构高性能目标阵列的方法 | |
Fu et al. | A 593nJ/Inference DVS Hand Gesture Recognition Processor Embedded With Reconfigurable Multiple Constant Multiplication Technique | |
Dhanasekaran et al. | Fault tolerant dynamic antenna array in smart antenna system using evolved virtual reconfigurable circuit |
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 |