神经形态芯片的模拟器的制作方法

文档序号:11949725阅读:408来源:国知局
神经形态芯片的模拟器的制作方法与工艺
本发明涉及神经形态芯片
技术领域
,特别涉及一种神经形态芯片的模拟器。
背景技术
:大脑与传统的冯·诺伊曼计算机相比,具有超低功耗,高容错性的特点,在处理非结构化信息和智能方面,大脑具有显著优势。随着脑科学的发展,借鉴大脑的计算模式构建新型计算系统已经成为一个新兴的发展方向。大脑的基本组成单元是神经元,神经元之间通过突触相互连接,通过收发动作电位(称为脉冲,spike)来进行通信。每个神经元通常连接着100到10000个突触,大量神经元通过突触相互连接形成复杂的神经网络。模拟神经形态网络是一种非常重要、有效的研究和实现新型计算系统的方法(被称为神经形态工程),为了加速神经形态网络的模拟,利用大规模集成电路实现神经形态网络的模拟和仿真是神经形态工程常用的实现方法,实现的芯片被称为神经形态芯片。神经形态芯片一般具有如下特点:(1)内部模拟了大量的神经元及其间的连接,具有高度的并行性和密集的通信,其神经元间通过脉冲来进行通信,因此这类神经网络被称为SNN(spikingneuralnetwork,脉冲神经网络);(2)神经元与突触具有多种不同的类型,进行芯片功能与结构设计时需要充分考虑不同类型的神经元与突触所能带来的不同程度的神经网络计算能力,同时也需要充分考虑不同类型的硬件资源开销,以取得计算能力与开销的均衡;(3)神经突触具有多种不同的实现工艺,如采用SRAM(StaticRandomAccessMemory,静态随机存取存储器)来存储权重、或者采用忆阻器等技术实现突触计算与权重存储相融合;(4)即便采用相同的实现工艺与类型,不同的硬件实现约束(比如一个神经元能够连接的其他神经元最大个数、突触权重的位宽等)也会使得该芯片的神经网络计算能力有所不同,同时也需要考虑不同的实现约束的硬件开销。所以神经形态芯片的设计空间是很大的,需要有灵活的方法来在具体的芯片设计前进行芯片结构模拟:即在模拟器上模拟不同配置、不同规模、不同工艺、不同类型神经元/突触、不同硬件约束的芯片结构,并以此结构来运行具有代表性的神经网络应用,并进行考虑运行性能、功耗以及神经网络误差等的综合评估,以确定优化的芯片结构。针对上述的问题,目前相关的技术方案有:一、2012年,IBM设计了一个多线程的大规模并行模拟器——Compass,它模拟了IBM的类脑芯片TrueNorth的架构。后者是一个可扩展的模拟神经元与突触的计算机体系结构,该架构能够实现类人脑功能,即低功耗、低容量地模拟人脑实时反应,即模拟发生于大脑等生物系统中神经细胞和突触之间的现象,进行认知并积累学习。具体的,TrueNorth是用CMOS电路器件组成生物学中的神经元的轴突、树突、突触;其关键模块核心是neurosynaptic核(即神经元突触内核),它通过通信网络连接到系统中的其他TrueNorth核心。Compass与TrueNorth的功能原理是相同的,采用的软件模拟方法可模拟的神经元数量可与人类大脑皮层的神经元数量相媲美,突触数目可与猴子大脑皮层的突触数目相媲美。Compass的主要作用在于能够验证TrueNorth结构的功能、并在芯片生产之前在该模拟器上开发验证神经网络应用。该方案的缺点在于:Compass是一个行为级模拟器,可以从功能上验证芯片,但是无法提供结构这一级的具体信息,比如运行性能、功耗之类。也就是说该方案无法满足神经形态芯片的上述四个特点对应的需求。二、SPINNAKER神经形态系统的仿真器。SPINNAKER(SpikingNeuralNetworkArchitecture,尖峰神经网络架构)是英国政府资助的一个大规模并行计算机,试图模拟人类大脑的工作方式。其目标是使用100万个ARM处理器来模拟大脑(人脑中有大约1000亿个神经元和多达1000万亿个连接,即使是一百万颗处理器也只能模拟人脑的1%)。每个神经形态芯片上整合了18个ARM处理器核心和一个用于路由节点互联的通信层,以及55个32KBSRAM内存块,约有1亿个晶体管。为配合在SPINNAKER系统上开发应用,该课题组提供了一个SPINNAKER系统的API(应用开发接口)仿真器。这是一个功能级的实现,只是模拟了SPINNAKER对外提供的功能,而具体的功能实现与底层硬件的结构是没有任何关系的。也就是说,该类方案的缺点在于只能从功能上验证所开发的应用是可以工作的,但无法提供其他任何信息。三、在发明“一种处理器模拟方法”(申请号:201310108537)中提出了一种处理器模拟方法,首先建立体系结构模拟层、指令集模拟层、和处理器模拟层;所述体系结构模拟层由处理器配置文件模块实现,所述指令集模拟层由处理器指令译码模块和处理器指令执行模块组成,所述处理器模拟层由处理器存储模块和处理器片内设备模块组成。该发明仅通过三个层次的模拟接口实现,便快速完成处理器的模拟,缩短了处理器模拟研发时间和周期,提升处理器模拟器研发效率,同时建立了处理器模拟平台统一性,可以使多个航天中常用的不同种类处理器模拟集成于相同模拟平台上,便于处理器模拟的集成、扩展及应用。四、在发明“多处理器结构的模拟方法及模拟器”(申请号:201010537156.5)中,提出了一种多处理器结构的模拟方法及模拟器,利用多处理器宿主机对多处理器结构目标机的多个处理器的行为进行模拟,包括:创建多个宿主进程,其中,每个宿主进程采用轮转的方式对所分配的目标机处理器执行目标机处理器节拍的行为模拟,并行执行多个宿主进程,每个宿主进程对所分配的目标机处理器的一个目标机处理器节拍的行为模拟后,该宿主进程的节拍数加1;根据每个宿主进程的节拍数及当前的全局时钟值,实现多个进程之间的松散同步,所述当前的全局时钟值为目标机处理器节拍数。该发明的多处理器结构的模拟方法及模拟器提高了并行模拟的速度,有效控制了目标机各个处理器模拟进度的差异,能够保持目标机多处理器结构行为模拟的真实性。上述的方案三和方案四均是针对现有的传统处理器芯片(及其应用)进行模拟,这些模拟的实质是指令的硬件流水线解释执行过程,不论是对于单处理器结构还是多处理器结构均是如此。而对于神经形态芯片的模拟则完全不同,它模拟的是大脑对于神经脉冲信号的处理过程。此外,神经形态芯片及其应用具有一个现有的传统处理器芯片(及其应用)所不具备的特点,即:同一个神经网络应用,可以通过一定的软件方式转换为不同硬件约束条件下的不同神经网络(主要体现在神经元的连接度以及突触权重的位宽表示上),同时完成的还是一样的功能,但是精度会有所差别。因此,这就给予了软件模拟新的要求(即灵活的配置以仿真不同的神经元的连接度以及突触权重的位宽表示)以及新的协同设计探索空间(误差与硬件开销、模拟性能间的关系),而目前的相关技术显然无法满足上述要求。技术实现要素:本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。为此,本发明的目的在于提出一种神经形态芯片的模拟器,该模拟器能够保障神经形态芯片设计过程的质量和效率,便于设计人员更快地设计更高质量的神经形态芯片。为了实现上述目的,本发明的实施例提出了一种神经形态芯片的模拟器,包括:多个处理核和多个路由器,所述多个处理核与所述多个路由器通过片上网络一一对应相连,其中,每个所述处理核包括:输入缓冲区,用于存储输入数据,其中,所述输入数据为预定的数据或来自其他处理核的数据;处理模块,所述处理模块用于从所述输入缓冲区中读取一组输入数据,并根据所模拟的目标神经元的计算类型对所述输入数据进行处理后得到一组M个目标轴突输入,其中,M为大于0的整数;树突计算单元,所述树突计算单元中包含N个模拟神经元和一个内存阵列,每个所述模拟神经元中包括M个轴突输入,所述内存阵列用于存储所述M个轴突输入的突触权重,所述树突计算单元用于将每个模拟神经元上每个位置的轴突输入和对应位置的突触权重进行相乘,并在所述模拟神经元上将每个位置的轴突输入和对应位置的突触权重相乘得到的结果进行累加,并将所有的模拟神经元经过上述乘加操作得到的结果组合起来作为所述树突计算单元的输出数据,其中,N为大于0的整数;胞体计算单元,所述胞体计算单元包括与所述树突计算单元对应的N个模拟神经元,每个所述模拟神经元将所述树突计算单元中乘加操作得到的结果与之前所述模拟神经元所累积的数值进行累加,当累加后的数值超过预设阈值时,所述模拟神经元产生一个脉冲;输出缓冲区,所述输出缓冲区用于存储包含所述脉冲的数据包,并根据N个模拟神经元之间的连接关系将所述脉冲发送到对应的目的地。另外,根据本发明上述实施例的神经形态芯片的模拟器还可以具有如下附加的技术特征:在一些示例中,在将所述脉冲发送到对应的目的地时,所述模拟神经元将自身的状态重置为复位状态。在一些示例中,还包括:调节模块,所述调节模块用于修改所述神经形态芯片的细节以进行所述神经形态芯片硬件设计空间的探索。在一些示例中,所述调节模块用于修改所述神经形态芯片的配置,以得到不同的神经网络模型。在一些示例中,所述调节模块还用于修改所述神经形态芯片的规模,以描述不同的单芯片大小。在一些示例中,所述调节模块还用于修改所述神经形态芯片的工艺,以描述不同的制作过程及采用的存储类型。在一些示例中,所述调节模块还用于修改所述模拟神经元的类型和/突触类型,以描述不同的计算模式。在一些示例中,所述调节模块还用于修改所述模拟神经元的连接数设置和突触权重位宽,以描述不同的硬件约束条件。在一些示例中,还包括:信息收集模块,所述信息收集模块用于收集所述神经形态新品运行特定应用时的运行信息,并根据所述运行信息估计不同参数和实现细节下神经形态芯片对应的硬件信息。在一些示例中,所述神经形态芯片对应的硬件信息包括:所述神经形态芯片对应的硬件的性能和功耗。根据本发明实施例的神经形态芯片的模拟器,在神经形态芯片的设计过程中,可以通过软件来模拟硬件行为,既可以在硬件设计前确定设计思路;又可以在硬件设计中通过添加、统计各类参数及修改模拟器细节,从而探索巨大设计空间,以指导神经形态芯片硬件的设计与改进;还可以在硬件设计的各个阶段收集模拟硬件运行时的各种信息来估算硬件的实际性能、功耗等信息。也即本发明能够从多个方面保障神经形态芯片设计过程的质量和效率,便于设计人员更快地设计更高质量的神经形态芯片。本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1是根据本发明实施例的神经形态芯片的模拟器的系统框图;图2是本发明一个实施例的神经形态芯片的模拟器的结构示意图;图3是本发明一个具体实施例的有效芯片速度和活跃度之间的关系探索结果示意图;图4是本发明一个具体实施例的不同情况下有效芯片速度对比示意图;以及图5是本发明一个具体实施例的相同数据的功耗对比示意图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。以下结合附图描述根据本发明实施例的神经形态芯片的模拟器。图1是根据本发明一个实施例的神经形态芯片的模拟器的系统框图。图2是根据本发明一个实施例的神经形态芯片的模拟器的结构示意图。如图1所示,并结合图2,该神经形态芯片的模拟器100,包括:多个处理核110和多个路由器120。其中,如图2所示,多个处理核110(即图2中的模块C)与多个路由器120(即图2中的模块R)通过片上网络一一对应相连。具体地,每个处理核110包括:输入缓冲区111、处理模块112、树突计算单元113、胞体计算单元114和输出缓冲区115。其中,输入缓冲区111用于存储输入数据,其中,输入数据为预定的数据或来自其他处理核的数据。处理模块112用于从输入缓冲区中读取一组输入数据,并根据所模拟的目标神经元的计算类型对输入数据进行处理后得到一组M个目标轴突输入,其中,M为大于0的整数。具体地说,在每个模拟周期中,处理模块112首先从输入缓冲区111中读取一组数据,根据所模拟的神经元计算类型来进行处理后形成一组M个轴突输入,并将轴突输入传送给树突计算单元113。树突计算单元113中包含N个模拟神经元和一个内存阵列,每个模拟神经元中包括M个轴突输入,内存阵列用于存储M个轴突输入的突触权重,对于一组轴突输入,树突计算单元113用于将每个模拟神经元上每个位置的轴突输入和对应位置的突触权重进行相乘,并在这个模拟神经元上将每个位置的轴突输入和对应位置的突触权重相乘得到的结果进行累加,并将所有的模拟神经元经过上述乘加操作得到的结果组合起来作为树突计算单元113的输出数据,并传送给胞体计算单元114,其中,N为大于0的整数。胞体计算单元114中包括与树突计算单元113中完全对应的N个模拟神经元,每个模拟神经元根据输入数据来更新神经元状态,即:将树突计算单元113中乘加操作得到的结果与之前模拟神经元所累积的数值进行累加,当累加后的数值超过预设阈值时,该模拟神经元产生一个脉冲(Spike)。输出缓冲区115用来向其他的处理核发送输出数据。具体地说,输出缓冲区115用于存储包含脉冲(Spike)对应信息的数据包,并根据N个模拟神经元之间的连接关系将脉冲(Spike)发送到对应的目的地。在本发明的一个实施例中,在将脉冲(Spike)发送到对应的目的地时,该模拟神经元同时将自身的状态重置为复位状态。进一步地,在本发明的一个实施例中,该神经形态芯片的模拟器100还包括:调节模块。调节模块用于修改神经形态芯片的细节以进行神经形态芯片硬件设计空间的探索。在本发明的一些实施例中,例如:调节模块用于修改神经形态芯片的配置,以得到不同的神经网络模型。调节模块还用于修改神经形态芯片的规模,以描述不同的单芯片大小。调节模块还用于修改神经形态芯片的工艺,以描述不同的制作过程及采用的存储类型。调节模块还用于修改模拟神经元的类型和/突触类型(对应胞体计算单元114/树突计算单元113),以描述不同的计算模式。调节模块还用于修改模拟神经元的连接数设置和突触权重位宽,以描述不同的硬件约束条件。需要说明的是,上述调节模块修改大多可以通过修改少数参数来完成,少数较为复杂的修改也可以通过修改模拟器的少量相关代码来完成。通过这些不复杂的修改,可以精确模拟现有神经形态芯片的准确行为,还可以快速探索神经形态芯片硬件的巨大设计空间,有利于方便快捷地指导芯片的设计过程。进一步地,在本发明的一个实施例中,该神经形态芯片的模拟器100,还包括:信息收集模块,信息收集模块用于收集神经形态芯片运行特定应用时的运行信息,并根据运行信息估计不同参数和实现细节下神经形态芯片对应的硬件信息。其中,神经形态芯片对应的硬件信息例如包括:神经形态芯片对应的硬件的性能和功耗。具体地说,相比于直接在硬件上收集信息,在软件上收集各种信息要方便很多。在本发明的实施例中,通过信息收集模块可以在任何模拟器上的任意神经网络应用运行收集各种信息,从而方便地估计不同参数和实现细节的神经形态芯片硬件的各种信息,例如性能、功耗等关键信息。为了便于更好地理解本发明,以下结合附图和具体的实施例对本发明上述实施例的神经形态芯片的模拟器100做进一步详细描述。在本实施例中,神经形态芯片100例如选取天机芯片,即本具体实施例是对天机芯片的模拟。天机芯片是清华大学设计开发制作的神经形态芯片,通过合理修改模拟器细节可以让模拟器准确模拟天机芯片的行为,下表1展示了部分实现细节:名称实现单芯片规模2x3制程45nm存储类型SRAM/DigitalMemristor/AnalogMemristor突触类型乘加操作神经元类型LIF连接数限制(每个处理核)256权重位宽8表1同时,模拟器还可以收集芯片运行特定应用(如MNIST数据集)时的各类信息,从而估算天机芯片在实际运行时的功耗与性能。例如,在基于天机芯片的应用之中,以MNIST数据集为输入,通过模拟器得到了对应的输出,并与天机芯片的输出进行了精确的对比,两者的输出完全一致,从而说明模拟器可以准确模拟天机芯片的行为。另外,还可以利用模拟器得到天机芯片在各种不同场景下的各方面信息,这些场景包括不同的输入数据、硬件上难以便捷修改的配置参数等。例如,在本实施例中,探索了天机芯片中有效芯片速度和活跃度之间的关系,还对比了基于MNIST数据集进行训练后的不同输入下利用不同配置后的性能和有效芯片速度。其中,有效芯片速度指的是在保证所有的脉冲(Spike)数据包都能得到准确及时处理的情况下,芯片在一秒钟之内可以完整模拟的SNN周期数。得到有效芯片速度的方式是将相邻的两个SNN周期的间隔设置足够大,在这样的设置下对于输入数据进行模拟,通过统计在每个SNN周期中最后被处理的Spike数据包可以得到处理数据的过程在所有SNN周期中所占的时间比例,通过这个时间比例就可以计算出可以设置的最小SNN周期间隔,从而得出一秒钟之内可以模拟的最多SNN周期数,这个数字便是有效芯片速度。在本实施例中,对于有效芯片速度和活跃度之间的关系探索结果如图3所示。在图3(A)中,通过修改模拟器中每个处理核心的连接数限制来影响整个模拟器的神经元活跃度,随着连接数增加神经元的活跃度也相应增加。在这种场景下,随着模拟器的神经元活跃度增加,模拟器的有效芯片速度会随之下降。在图3(B)中,通过修改模拟器中神经元的突触权重与阈值的比值来影响整个模拟器的神经元活跃度,这个比值越高,神经元也就有更大的可能产生Spike,从而神经元活跃度也会提升。在这种场景下,随着模拟器的神经元活跃度增加,模拟器的有效芯片速度会随之下降。除了进行以上描述的探索之外,本实施例还对原始的MNIST数据集做了各种处理,并使用处理后的数据作为模拟器的输入,同时还修改了模拟器中的存储类型,并对这些不同情况下的有效芯片速度进行了对比,对比结果如图4所示。在图4中,Layer(1,1,1)代表的是原始的MNIST数据集数据,Layer(2,1,1)代表的是对于MNIST数据集进行加层训练处理后的数据,通过加层训练处理可以使得基于数据集的识别错误率下降。横坐标中,Type1/2/3分别对应存储类型为SRAM/DigitalMemristor/AnalogMemristor,数字代表神经元规模。通过模拟器对输入数据进行模拟,可以对比得到,经过加层训练后,识别错误率会下降不少,有效芯片速度也会下降不少。在神经元规模一定时,Type1/2的处理核的有效芯片速度要比Type3处理核慢很多。另外,对于相同的数据,本实施例还对功耗进行了对比,对比结果如图5所示。从图5中可以看出,加层训练后会带来错误率的下降,同时也会使得芯片的功耗产生较大的提升。在神经元规模一定时,Type1处理核的功耗最高,Type2处理核的功耗次之,Type3处理核的功耗最小。综上,本发明实施例的神经形态芯片的模拟器的主要原理可概述为:利用软件来实现神经形态芯片的模拟器并模拟其准确行为,并支持添加、统计各类参数及修改模拟器细节,从而指导神经形态芯片硬件的设计与改进。例如,可以方便地调节模拟器的配置、规模、工艺、神经元/突触类型、芯片结构的硬件约束,以快速探索神经形态芯片设计的巨大设计空间,从而指导芯片的设计过程;还可以方便地收集神经形态芯片运行时的各类信息(如性能、功耗等关键信息),便于确认硬件的设计正确性与可用性。根据本发明实施例的神经形态芯片的模拟器,在神经形态芯片的设计过程中,可以通过软件来模拟硬件行为,既可以在硬件设计前确定设计思路;又可以在硬件设计中通过添加、统计各类参数及修改模拟器细节,从而探索巨大设计空间,以指导神经形态芯片硬件的设计与改进;还可以在硬件设计的各个阶段收集模拟硬件运行时的各种信息来估算硬件的实际性能、功耗等信息。也即本发明能够从多个方面保障神经形态芯片设计过程的质量和效率,便于设计人员更快地设计更高质量的神经形态芯片。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1