CN109804385A - 可编程集成电路上的二值神经网络 - Google Patents

可编程集成电路上的二值神经网络 Download PDF

Info

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
Application number
CN201780062276.4A
Other languages
English (en)
Inventor
Y·乌穆罗格卢
M·伯洛特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of CN109804385A publication Critical patent/CN109804385A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17724Structural details of logic blocks
    • H03K19/17732Macroblocks

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所述的方法,其特征在于,所述硬件神经元层是第一硬件神经元层,其中所述多个输入、所述多个输出、所述多个权重和所述多个阈值是第一多个输入、第一多个输出、第一多个权重和第一多个阈值,其中所述方法还包括:
实现第二硬件神经元层,所述第二层包括第二多个输入、第二多个输出、第二多个权重和第二多个阈值;
其中所述第二硬件神经元层的所述第二多个输入为所述第一层的所述第一多个输出。
CN201780062276.4A 2016-08-05 2017-07-24 可编程集成电路上的二值神经网络 Pending CN109804385A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112263262A (zh) * 2020-10-26 2021-01-26 生物岛实验室 健康监测设备

Families Citing this family (40)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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