用于神经模拟器的共享存储器架构的制作方法

文档序号:9872471阅读:392来源:国知局
用于神经模拟器的共享存储器架构的制作方法
【专利说明】用于神经模拟器的共享存储器架构
[00011根据35U.S.C.§119的优先权要求
[0002] 本申请要求于2013年10月11日提交的美国临时专利申请S/N. 61/889,682、以及于 2014年8月5日提交的美国专利申请S/N. 14/451,954的权益,这两篇申请的全部内容通过援 引纳入于此。
[0003] 背景
[0004] 领域
[0005] 本公开的一些方面一般涉及人工神经系统,更具体地涉及可用于在硬件模拟器中 向此类人工神经系统的组件分配存储器的方法和装置。
[0006] 背景
[0007] 可包括一群互连的人工神经元(即神经处理单元)的人工神经网络是一种计算设 备或者表示将由计算设备执行的方法。人工神经网络可具有生物学神经网络中的对应的结 构和/或功能。然而,人工神经网络可为其中传统计算技术是麻烦的、不切实际的、或不胜任 的某些应用提供创新且有用的计算技术。由于人工神经网络能从观察中推断出功能,因此 这样的网络在因任务或数据的复杂度使得通过常规技术来设计该功能较为麻烦的应用中 是特别有用的。
[0008] 一种类型的人工神经网络是尖峰(spiking)神经网络,其将时间概念以及神经元 状态和突触状态纳入到其工作模型中,由此提供了丰富的行为集,在神经网络中能从该行 为集涌现出计算功能。尖峰神经网络基于以下概念:神经元基于该神经元的状态在一个或 多个特定时间激发或发放"尖峰",并且该时间对于神经元功能而言是重要的。当神经元激 发时,它生成一尖峰,该尖峰行进至其他神经元,这些其他神经元继而可基于接收到该尖峰 的时间来调整它们的状态。换言之,信息可被编码在神经网络中的尖峰的相对或绝对定时 中。
[0009] 概述
[0010] 本公开的一些方面一般涉及用于在用硬件实现的人工神经系统模拟器中分配存 储器的方法。该方法一般包括确定正被模拟的人工神经系统的一个或多个组件的存储器资 源需求以及基于该确定来向这些组件分配共享存储器池的各部分。
[0011] 本公开的某些方面还提供用于执行以上描述的操作的各种装置和程序产品。
[0012] 本公开的一些方面提供一种用于在用硬件实现的人工神经系统模拟器中分配存 储器的装置。该装置一般包括处理系统,该处理系统被配置成确定正被模拟的人工神经系 统的一个或多个组件的存储器资源需求以及基于该确定来向这些组件分配共享存储器池 的各部分。
[0013] 本公开的一些方面提供一种用于在用硬件实现的人工神经系统模拟器中分配存 储器的装备。该装备一般包括用于确定正被模拟的人工神经系统的一个或多个组件的存储 器资源需求的装置以及用于基于该确定来向这些组件分配共享存储器池的各部分的装置。
[0014] 本公开的某些方面提供一种其上存储有可由计算机执行的指令的计算机可读介 质。可执行这些指令以用于确定正被模拟的人工神经系统的一个或多个组件的存储器资源 需求并基于该确定来向这些组件分配共享存储器池的各部分。
[0015] 附图简述
[0016] 为了能详细理解本公开的以上陈述的特征所用的方式,可参照各方面来对以上简 要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说 了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效 的方面。
[0017] 图1解说了根据本公开的某些方面的示例神经元网络。
[0018] 图2解说了根据本公开的某些方面的计算网络(神经系统或神经网络)的示例处理 单元(神经元)。
[0019] 图3解说了根据本公开的某些方面的示例尖峰定时依赖可塑性(STDP)曲线。
[0020] 图4是根据本公开的某些方面的用于人工神经元的状态的示例曲线图,其解说用 于定义神经元的行为的正态相和负态相。
[0021] 图5是根据本公开的一些方面的用于为神经模型分配存储器的示例操作的流程 图。
[0022]图5A解说了能够执行图5中所示的操作的示例装置。
[0023]图6解说了根据本公开的某些方面的用于使用通用处理器来操作人工神经系统的 示例实现。
[0024] 图7解说了根据本公开的某些方面的用于操作人工神经系统的示例实现,其中存 储器可与个体分布式处理单元对接。
[0025] 图8解说了根据本公开的某些方面的用于基于分布式存储器和分布式处理单元来 操作人工神经系统的示例实现。
[0026] 图9解说根据本公开的某些方面的神经网络的示例实现。
[0027] 图10解说了根据本公开的某些方面的人工神经系统的示例硬件实现。
[0028] 详细描述
[0029] 以下参照附图更全面地描述本公开的各个方面。然而,本公开可用许多不同形式 来实施并且不应解释为被限定于本公开通篇给出的任何具体结构或功能。相反,提供这些 方面是为了使得本公开将是透彻和完整的,并且其将向本领域技术人员完全传达本公开的 范围。基于本文中的教导,本领域技术人员应领会,本公开的范围旨在覆盖本文中所披露的 本公开的任何方面,不论其是与本公开的任何其他方面相独立地实现还是组合地实现的。 例如,可以使用本文所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范围 旨在覆盖使用作为本文中所阐述的本公开的各个方面的补充或者另外的其他结构、功能 性、或者结构及功能性来实践的此类装置或方法。应当理解,本文中所披露的本公开的任何 方面可由权利要求的一个或多个元素来实施。
[0030] 措辞"示例性"在本文中用于表示"用作示例、实例或解说"。本文中描述为"示例 性"的任何方面不必被解释为优于或胜过其他方面。
[0031] 尽管本文描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之 内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、 用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协 议,其中一些作为示例在附图以及以下对优选方面的描述中解说。详细描述和附图仅仅解 说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。
[0032] 示例神经系统
[0033] 图1解说根据本公开的某些方面的具有多级神经元的示例神经系统100。神经系统 100可包括一级神经元102,该级神经元102通过突触连接网络104(即,前馈连接)来连接到 另一级神经元106。为简单起见,图1中仅解说了两级神经元,但在典型的神经系统中可存在 更少或更多级神经元。应注意,一些神经元可通过侧向连接来连接至同层中的其他神经元。 此外,一些神经元可通过反馈连接来后向连接至先前层中的神经元。
[0034] 如图1所解说的,级102中的每一神经元可接收输入信号108,输入信号108可以是 由前一级(图1中未示出)的多个神经元所生成的。信号108可表示至级102的神经元的输入 (例如,输入电流)。此类输入可在神经元膜上累积以对膜电位进行充电。当膜电位达到其阈 值时,该神经元可激发并生成输出尖峰,该输出尖峰将被传递到下一级神经元(例如,级 106)。此类行为可在硬件和/或软件(包括模拟和数字实现)中进行仿真或模拟。
[0035] 在生物学神经元中,在神经元激发时生成的输出尖峰被称为动作电位。该电信号 是相对迅速、瞬态、全有或全无的神经脉冲,其具有约为IOOmV的振幅和约为Ims的历时。在 具有一系列连通的神经元(例如,尖峰从图1中的一级神经元传递至另一级)的神经系统的 特定方面,每个动作电位都具有基本上相同的振幅和历时,因此该信号中的信息仅由尖峰 的频率和数目(或尖峰的时间)来表示,而不由振幅来表示。动作电位所携带的信息由尖峰、 发放尖峰的神经元、以及该尖峰相对于一个或多个其他尖峰的时间来决定。
[0036] 尖峰从一级神经元向另一级神经元的传递可通过突触连接(或简称"突触")网络 104来达成,如图1所解说的。突触104可从级102的神经元(相对于突触104而言的突触前神 经元)接收输出信号(即尖峰)。对于某些方面,这些信号可根据可调节突触权重 +1)、、#、-D (其中P是级102和106的神经元之间的突触连接的总数)来缩放。对于其它 方面,突触104可以不应用任何突触权重。此外,(经缩放的)信号可被组合以作为级106中每 个神经元(相对于突触104而言的突触后神经元)的输入信号。级106中的每个神经元可基于 对应的组合输入信号来生成输出尖峰110。随后可使用另一突触连接网络(图1中未示出)将 这些输出尖峰110传递到另一级神经元。
[0037] 生物学突触可被分类为电的或化学的。电突触主要用于发送兴奋性信号,而化学 突触可调停突触后神经元中的兴奋性或抑制性(超极化)动作,并且还可用于放大神经元信 号。兴奋性信号通常使膜电位去极化(即,相对于静息电位增大膜电位)。如果在某个时段内 接收到足够的兴奋性信号以使膜电位去极化到高于阈值,则在突触后神经元中发生动作电 位。相反,抑制性信号一般使膜电位超极化(即,降低膜电位)。抑制性信号如果足够强则可 抵消掉兴奋性信号之和并阻止膜电位到达阈值。除了抵消掉突触兴奋以外,突触抑制还可 对自发活跃神经元施加强力的控制。自发活动神经元是指在没有进一步输入的情况下(例 如,由于其动态或反馈而)发放尖峰的神经元。通过压制这些神经元中的动作电位的自发生 成,突触抑制可对神经元中的激发模式进行定形,这一般被称为雕刻。取决于期望的行为, 各种突触104可充当兴奋性或抑制性突触的任何组合。
[0038] 神经系统100可由通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场 可编程门阵列(FPGA)或其他可编程逻辑器件(PLD)、分立的门或晶体管逻辑、分立的硬件组 件、由处理器执行的软件模块、或其任何组合来仿真。神经系统100可用在大范围的应用中, 诸如图像和模式识别、机器学习、电机控制、及类似应用等。神经系统100中的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1