CN117194051B - 脑仿真处理方法及装置、电子设备、计算机可读存储介质 - Google Patents

脑仿真处理方法及装置、电子设备、计算机可读存储介质 Download PDF

Info

Publication number
CN117194051B
CN117194051B CN202311439403.1A CN202311439403A CN117194051B CN 117194051 B CN117194051 B CN 117194051B CN 202311439403 A CN202311439403 A CN 202311439403A CN 117194051 B CN117194051 B CN 117194051B
Authority
CN
China
Prior art keywords
cluster
target
neuron
processing
tensor
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.)
Active
Application number
CN202311439403.1A
Other languages
English (en)
Other versions
CN117194051A (zh
Inventor
吴臻志
祝夭龙
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.)
Beijing Lynxi Technology Co Ltd
Original Assignee
Beijing Lynxi Technology Co Ltd
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 Beijing Lynxi Technology Co Ltd filed Critical Beijing Lynxi Technology Co Ltd
Priority to CN202311439403.1A priority Critical patent/CN117194051B/zh
Publication of CN117194051A publication Critical patent/CN117194051A/zh
Application granted granted Critical
Publication of CN117194051B publication Critical patent/CN117194051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提供了一种脑仿真处理方法及装置、电子设备、计算机可读存储介质。该方法应用于众核系统,用于脑仿真的神经网络包括多个神经元簇,每个神经元簇对应众核系统的部分处理核,该方法包括:将神经网络的目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核;每个权重子张量集合包括多个权重子张量,权重子张量是由簇突触矩阵经分解得到的,簇突触矩阵用于表征目标神经元簇和与其相连接的互连神经元簇之间的突触权重,权重子张量的尺寸是根据处理核的参数确定的;通过多个目标处理核对来自互连神经元簇的输入数据处理,得到目标神经元簇的输出数据。根据本公开的实施例能够提高脑仿真的效率。

Description

脑仿真处理方法及装置、电子设备、计算机可读存储介质
技术领域
本公开涉及计算机技术领域,特别涉及一种脑仿真处理方法及装置、电子设备、计算机可读存储介质。
背景技术
随着人工智能(AI)技术,尤其是深度学习技术的不断发展,深度神经网络模型在多个领域内得到了广泛应用,但深度神经网络模型的规模也在不断增大。深度神经网络模型参数量大,结构复杂的特点会使内存成本增高,这导致许多深度神经网络难以在一些存储受限的嵌入式设备上部署实现。例如,脉冲神经网络(SNN,Spiking Neural Network)受生物大脑结构与计算模式所启发,能够被部署在专用神经形态芯片上以极低功耗运行具有实现高效智能计算的潜力。然而,专用神经形态硬件芯片在计算以及存储方面的资源往往有限,大量的网络参数会消耗比较多的硬件资源。
相关技术中,在通过众核系统(例如神经形态芯片)对神经网络进行脑仿真时,需要将规模较大的网络参数阵列拆分到各个处理核中,以便分别进行处理,占用的核资源和存储空间均较多。
发明内容
本公开提供一种基于众核系统的脑仿真处理方法及装置、电子设备、计算机可读存储介质。
第一方面,本公开提供了一种脑仿真处理方法,该方法应用于众核系统,众核系统包括多个处理核,用于脑仿真的神经网络包括多个神经元簇,每个神经元簇对应众核系统的部分处理核,该方法包括:针对神经网络的目标神经元簇,将目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核;目标神经元簇为神经网络中的任一神经元簇,目标处理核是众核系统中与目标神经元簇对应的处理核;其中,神经网络的神经元簇包括多个神经元,神经元之间的连接通过突触权重来表征;每个权重子张量集合中包括多个权重子张量,每个权重子张量集合的多个权重子张量是由簇突触矩阵经分解得到的,簇突触矩阵用于表征目标神经元簇和神经网络中与目标神经元簇相连接的互连神经元簇之间的突触权重,权重子张量的尺寸是根据处理核的参数确定的;通过多个目标处理核对来自互连神经元簇的输入数据进行处理,得到目标神经元簇的输出数据。
第二方面,本公开提供了一种脑仿真处理装置,该装置应用于众核系统,众核系统包括多个处理核,用于脑仿真的神经网络包括多个神经元簇,每个神经元簇对应众核系统的部分处理核,该装置包括:张量存储模块,用于针对神经网络的目标神经元簇,将目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核;目标神经元簇为神经网络中的任一神经元簇,目标处理核是众核系统中与目标神经元簇对应的处理核;其中,神经网络的神经元簇包括多个神经元,神经元之间的连接通过突触权重来表征;每个权重子张量集合中包括多个权重子张量,每个权重子张量集合的多个权重子张量是由簇突触矩阵经分解得到的,簇突触矩阵用于表征目标神经元簇和神经网络中与目标神经元簇相连接的互连神经元簇之间的突触权重,权重子张量的尺寸是根据处理核的参数确定的;数据处理模块,用于通过多个目标处理核对来自互连神经元簇的输入数据进行处理,得到目标神经元簇的输出数据。
第三方面,本公开提供了一种电子设备,该电子设备包括:多个处理核;以及,片上网络,被配置为交互多个处理核间的数据和外部数据;其中,一个或多个处理核中存储有一个或多个指令,一个或多个指令被一个或多个处理核执行,以使一个或多个处理核能够执行上述的脑仿真处理方法。
第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的脑仿真处理方法。
本公开所提供的实施例,能够通过众核系统来运行用于脑仿真的神经网络,通过与神经元簇对应的处理核分别存储神经元簇的簇突触矩阵经分解得到的权重子张量,并通过处理核对神经元簇的输入数据进行处理以得到输出数据,从而显著降低所存储的参数量,降低神经网络的参数存储成本,并提高神经网络在众核系统中的执行效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1a为本公开实施例提供的神经元簇的示意图;
图1b为本公开实施例提供的多簇模型的示意图;
图2为本公开实施例提供的一种脑仿真处理方法的流程图;
图3a和图3b为本公开实施例提供的簇突触矩阵分解的示意图;
图4为本公开实施例提供的簇突触矩阵分解的示意图;
图5a和图5b为本公开实施例中通过目标处理核进行处理的示意图;
图6为本公开实施例提供的一种脑仿真处理装置的框图;
图7为本公开实施例提供的一种电子设备的框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在该特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
在一些可能的实现方式中,可通过神经网络进行脑仿真处理,以实现相应的处理任务。该神经网络可例如为脉冲神经网络SNN、人工神经网络ANN等;相应的处理任务例如为图像处理任务、文本处理任务、音频处理任务等,本公开对神经网络的具体网络类型和处理任务的具体任务类型均不做限制。
其中,该神经网络可包括多个神经元,神经元之间的连接通过突触权重来表征,无连接的神经元之间的突触权重为0,有连接的神经元之间的突触权重大于0,突触权重的取值表示神经元之间的连接强度,例如取值为0~1之间的数。本公开对突触权重的具体取值不做限制。
在一些可能的实现方式中,可构建神经网络的多簇模型,也即将神经网络的神经元划分为多个神经元簇,每个神经元簇包括一个或多个神经元。可例如通过神经元之间的连接数量、连接强度、连接密度等划分神经元簇,本公开对神经元簇的具体划分方式不做限制。
其中,神经网络中的任意一个神经元簇(称为目标神经元簇)可与多个前继神经元簇相连,每个前继神经元簇与目标神经元簇之间具有簇间突触矩阵,簇间突触矩阵中的元素为前继神经元簇与目标神经元簇的神经元之间的突触权重;并且,目标神经元簇自身具有簇内突触矩阵,簇内突触矩阵中的元素为目标神经元簇的神经元之间的突触权重。这样,可以由众多神经元簇通过簇间互连组成神经网络。
图1a为本公开实施例提供的神经元簇的示意图。如图1a所示,神经元簇E有两个前继神经元簇,即前继神经元簇B和前继神经元簇C,相应地,前继神经元簇B通过簇间突触矩阵B1与神经元簇E连接,前继神经元簇C通过簇间突触矩阵C1与神经元簇E连接;神经元簇E自身通过簇内突触矩阵E0实现簇内的神经元的连接。其中,实线箭头表示神经元的轴突,虚线箭头表示神经元的树突。
图1b为本公开实施例提供的多簇模型的示意图。如图1b所示,在由B、C、E三个神经元簇相互连接组成的多簇模型中,B、C、E之间均存在簇间突触矩阵和簇内突触矩阵,神经元簇B通过簇间突触矩阵B1和B2分别连接神经元簇E和神经元簇C,自身具有簇内突触矩阵B0;神经元簇C通过簇间突触矩阵C1和C2分别连接神经元簇E和神经元簇B,自身具有簇内突触矩阵C0;神经元簇E通过簇间突触矩阵E1和E2分别连接神经元簇B和神经元簇C,自身具有簇内突触矩阵E0。其中,可将簇间突触矩阵和簇内突触矩阵统称为簇突触矩阵。可见,各个神经元簇都可与其它神经元簇产生互连。当具有多个神经元簇互连时,可认为簇间的互连是可配置的、稀疏的连接,即一个神经元簇只有少量的前继神经元簇。
应当理解,本领域技术人员可根据实际情况设置多簇模型中神经元簇的数量,本公开对神经元簇的数量以及簇突触矩阵的数量和尺寸等均不做限制。
在神经网络中神经元簇的数量较多,簇突触矩阵的数量较多且尺寸较大的情况下,神经网络的参数量较大,脑仿真处理时的计算开销也较大,难以在计算资源和存储资源受限的设备(例如基于神经形态芯片的众核系统)上部署实现。因此,需要对神经网络进行压缩,以减少参数量和计算量。
相关技术中,通常通过剪枝和量化等方式对ANN(人工神经网络)或SNN进行压缩,这些方式往往需要进行繁琐的预训练微调,或者复杂的超参选择过程,处理效率较低,对处理精度的损失也较大。例如,SNN的剪枝分解方法往往需要确定很多超参,设计繁琐,往往需要专门的底层支持及优化;而SNN的量化压缩方法,精度往往损失较大,或者对于网络中的每一次操作都需要再针对化的设计一个较短数据类型的版本,需要底层算子的短数据版本的支持,导致其普适性弱,给芯片工具链等开发人员带来困难。
并且,相关技术中通过众核系统对神经网络进行脑仿真时,对于比较大的簇突触矩阵,需要将簇突触矩阵拆分到各个处理核中,占用的核资源多,占用的存储空间也多;并且,在簇突触矩阵的尺寸较大时,仿真电流值也很大,在采用低精度数据(例如fp16)时,数据有可能不准确或溢出,导致仿真精度下降或脑仿真不工作。
根据本公开的实施例,提供了一种脑仿真处理方法,能够通过众核系统来运行用于脑仿真的神经网络,通过与神经元簇对应的处理核分别存储由神经元簇的簇突触矩阵经分解得到的权重子张量,并通过处理核对来自互连神经元簇的输入数据进行处理以得到输出数据,从而显著减少处理核的使用量并降低片上存储的参数量,从而降低神经网络的参数存储成本和处理成本,并能够节省计算量,提高神经网络在众核系统中的执行效率。
根据本公开的实施例的众核系统可包括一个或多个神经形态芯片,神经形态芯片包括采用全交叉阵列(crossbar)方式布置的多个处理核以及片上网络,处理核用于根据指令/指令流来执行相应的处理任务,片上网络用于交互多个处理核间的数据和外部数据。其中,处理核可包括核内的存储空间和/或与处理核对应的片上存储空间,用于存储处理指令、神经元之间的突触权重等,以便处理核对相应神经元/神经元簇的输入数据进行处理。
在一些可能的实现方式中,每个神经元簇对应众核系统的部分处理核。
图2为本公开实施例提供的一种脑仿真处理方法的流程图。如图2所示,根据本公开实施例的脑仿真处理方法包括:
在步骤S21中,针对神经网络的目标神经元簇,将目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核;目标神经元簇为神经网络中的任一神经元簇,目标处理核是众核系统中与目标神经元簇对应的处理核;
其中,神经网络的神经元簇包括多个神经元,神经元之间的连接通过突触权重来表征;每个权重子张量集合中包括多个权重子张量,每个权重子张量集合的多个权重子张量是由簇突触矩阵经分解得到的,簇突触矩阵用于表征目标神经元簇和神经网络中与目标神经元簇相连接的互连神经元簇之间的突触权重,权重子张量的尺寸是根据处理核的参数确定的;
在步骤S22中,通过多个目标处理核对来自互连神经元簇的输入数据进行处理,得到目标神经元簇的输出数据。
举例来说,在执行步骤S21之前,可先确定神经网络的各个神经元簇之间的簇突触矩阵。对于神经网络的任意一个神经元簇(称为目标神经元簇),目标神经元簇的簇突触矩阵可包括与目标神经元簇的前继神经元簇对应簇间突触矩阵,和与目标神经元簇对应的簇内突触矩阵,用于表征目标神经元簇和神经网络中与目标神经元簇相连接的互连神经元簇之间的突触权重。
在一些可能的实现方式中,可通过TT(Tensor Train,张量序列)分解、CP(Canonical Polyadic,正则多项式)分解、Tucker分解(塔克分解,也称为高阶奇异值分解(High Order Sigular Value Decompsition,HOSVD))等方式,根据处理核的参数,对目标神经元簇的簇突触矩阵进行分解,得到与簇突触矩阵对应的多个权重子张量,组成一个权重子张量集合。对目标神经元簇的各个簇突触矩阵分别进行分解,即可得到目标神经元簇的多个权重子张量集合。其中,处理核的参数可包括处理核的运算参数和存储空间尺寸等,本公开对簇突触矩阵分解的具体方式、处理核的参数类型和限制条件等均不做限制。
在一些可能的实现方式中,在脑仿真处理前,可分别确定各个神经元簇对应的处理核。对于目标神经元簇,其对应的处理核称为目标处理核;在开始脑仿真处理时,可在步骤S21中,将目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核。其中,可以是一个目标处理核存储一个权重子张量,也可以是一个目标处理核存储多个权重子张量,还可以是多个目标处理核存储一个权重子张量,本公开对此不做限制。
在一些可能的实现方式中,对于脑仿真处理的任意一个时间步,可在步骤S22中,通过多个目标处理核对来自互连神经元簇的输入数据进行处理,得到目标神经元簇的输出数据。其中,在一个目标处理核存储一个权重子张量的情况下,目标神经元簇的任一互连神经元簇的输入数据,由多个目标处理核中的K个目标处理核处理,K为针对该互连神经元簇的权重子张量集合的权重子张量的数量,K为大于1的整数。
在一些可能的实现方式中,可将该互连神经元簇的输入数据输入到相应的K个目标处理核的第1个目标处理核,与第1个目标处理核中的权重子张量相乘,得到第1级的输出张量;再将第1级的输出张量重变形(reshape)后输入到下一个目标处理核中处理;以此类推,经第K个目标处理核处理后,输出该互连神经元簇的结果数据。进而,将目标神经元簇的各个互连神经元簇的结果数据合并,即可得到目标神经元簇在该时间步的输出数据。
在一些可能的实现方式中,对神经网络的各个神经元簇分别进行处理,可得到神经网络的各个神经元簇在该时间步的输出数据。该输出数据中可包括神经网络在该时间步输出到外部的数据,还可包括各个神经元簇在下一个时间步输入相连接的其它神经元簇的数据等,本公开对此不做限制。
根据本公开的实施例,能够通过众核系统的多个处理核分别存储神经元簇的权重子张量,从而显著降低突触权重的参数量,降低了神经网络的存储成本;通过多个处理核分别进行小尺寸张量的相乘处理,显著减少了计算开销、数据搬运的次数和搬运的数据量,大幅提高了神经网络的执行效率和脑仿真效率,并且本公开的实施例通过张量乘的方式实现,不需要特殊的底层算子支持,提高了方案的普适性。
下面对根据本公开实施例的脑仿真处理方法进行展开说明。
如前所述,在步骤S21之前,可先确定神经网络的各个神经元簇之间的簇突触矩阵并进行分解。
在一些可能的实现方式中,在步骤S21之前,根据本公开实施例的脑仿真处理方法还包括:
在步骤S23中,针对神经网络的目标神经元簇,确定神经网络中与目标神经元簇相连接的互连神经元簇,以及目标神经元簇与互连神经元簇之间的簇突触矩阵;
在步骤S24中,根据预设的分解规则,对簇突触矩阵进行分解,得到簇突触矩阵的权重子张量集合的多个权重子张量;
在步骤S25中,将权重子张量集合存储到预设存储空间。
举例来说,目标神经元簇的互连神经元簇包括目标神经元簇的前继神经元簇和目标神经元簇自身。例如图1a中,目标神经元簇E的互连神经元簇包括神经元簇B、C以及E自身。相应地,簇突触矩阵包括与目标神经元簇的前继神经元簇对应的簇间突触矩阵(例如B1、C1)和与目标神经元簇对应的簇内突触矩阵(例如E0)。
在一些可能的实现方式中,可在步骤S23中确定出神经网络中与目标神经元簇相连接的互连神经元簇,以及目标神经元簇与互连神经元簇之间的簇突触矩阵。进而,对神经网络的各个神经元簇进行处理,可得到各个神经元簇的互连神经元簇以及相应的簇突触矩阵。本公开对互连神经元簇及簇突触矩阵的具体确定方式不做限制。
在一些可能的实现方式中,可在步骤S24中根据预设的分解规则对簇突触矩阵进行分解,得到簇突触矩阵的权重子张量集合的多个权重子张量。
在一些可能的实现方式中,在对簇突触矩阵进行分解之前,根据本公开实施例的脑仿真处理方法还包括:
根据众核系统的处理核的参数以及脑仿真的时延参数,确定权重子张量的尺寸阈值;处理核的参数包括处理核的运算参数和存储空间尺寸,分解规则包括尺寸阈值。
举例来说,根据处理核的存储空间的尺寸,可确定每个权重子张量的第一尺寸阈值。例如,存储空间(或可用的存储空间)为256位,则第一尺寸阈值为256位,权重子张量需小于或等于256位,例如权重子张量为16×16或8×32的矩阵。根据处理核的运算参数和脑仿真的时延参数,可确定每个权重子张量的第二尺寸阈值。例如,运算参数为处理核在单位时间内的最大乘加次数,时延参数为脑仿真的每个时间步对应的单位时间数量,则第二尺寸阈值为最大乘加次数×单位时间数量,权重子张量需小于或等于第二尺寸阈值。
在一些可能的实现方式中,可将第一尺寸阈值与第二尺寸阈值中最小的值确定为权重子张量的尺寸阈值,以便同时满足存储和处理的要求。应当理解,本领域技术人员可根据实际情况确定权重子张量的尺寸阈值,本公开对此不做限制。
通过这种方式,能够对权重子张量的尺寸进行限制,以便能够通过单个处理核来存储权重子张量并执行相应的处理,从而提高脑仿真处理的效率。
在一些可能的实现方式中,分解规则还可包括簇突触矩阵的分解方式,例如TT分解、CP分解、Tucker分解等。本公开对此不做限制。
在一些可能的实现方式中,可在步骤S24中根据预设的分解规则对簇突触矩阵进行分解。其中,步骤S24可包括:根据预设的分解规则,对簇突触矩阵进行多次奇异值分解处理或正交三角分解处理,得到簇突触矩阵的多个权重子张量。
举例来说,在采用TT分解进行处理时,可根据待分解的簇突触矩阵的尺寸,以及权重子张量的尺寸阈值,对簇突触矩阵进行多次奇异值分解处理或多次正交三角分解处理,从而得到簇突触矩阵的多个权重子张量。
图3a和图3b为本公开实施例提供的簇突触矩阵分解的示意图。如图3a所示,簇突触矩阵A可分解为d个权重子张量,在后续处理中,可将输入数据(图中未示出)经重变形(reshape)后与权重子张量/>相乘;相乘结果经重变形后与权重子张量/>相乘;以此类推,与权重子张量/>的相乘结果经重变形后,输出作为最终的输出数据(图中未示出)。
在示例中,针对簇突触矩阵A(,M和N分别为簇突触矩阵的输入和输出维度),可将簇突触矩阵A的维度M和N分别进行因数分解,分解为/>,/>,则分解后得到的d个权重子张量中第i个权重子张量/>的大小可以设置为/>,其中/>为TT分解的秩。如图3b所示,根据每个权重子张量的尺寸,依次进行分解(例如奇异值分解或正交三角分解),即可得到d个权重子张量/>。这样,经分解后,d个权重子张量的总数据量(/>)远远小于簇突触矩阵A的总数据量(M × N),显著降低了突触权重的参数量。
在示例中,设簇突触矩阵,权重子张量的数量d=4,分别将矩阵的两个维度进行因数分解:/>,TT秩设为16,即/>。该情况下,4个权重子张量的大小分别为
在示例中,d个权重子张量中的元素(即权重)可由簇突触矩阵A计算而来。将d个权重子张量依次进行缩并运算即可恢复得到簇突触矩阵A。参见公式(1)
(1)
在公式(1)中,表示缩并符号。应当理解,本领域技术人员可根据实际情况设置簇突触矩阵的分解方式和分解中的各个参数,本公开对此均不做限制。
通过这种方式,能够将尺寸较大的簇突触矩阵分解为尺寸较小的级联的多个权重子张量,从而显著降低突触权重的参数量,降低神经网络的存储成本,并大幅提高后续脑仿真处理的仿真效率。
在一些可能的实现方式中,还可以将簇突触矩阵分解为并行级联的多个权重子张量,以便进一步提高处理效率。其中,步骤S24可包括:
根据预设的分解规则,将簇突触矩阵分割为多个簇突触子矩阵;对每个簇突触子矩阵分别进行分解,得到每个簇突触子矩阵对应的一组权重子张量;根据多个簇突触子矩阵对应的多组权重子张量,得到簇突触矩阵的权重子张量集合。
举例来说,根据待分解的簇突触矩阵的尺寸,可将簇突触矩阵分割为多个簇突触子矩阵,例如在列方向上分割为3个簇突触子矩阵,或者在行方向上分割为4个簇突触子矩阵,本公开对具体的分割方式不做限制。其中,各个簇突触子矩阵的尺寸可以相同,也可以不同。
在一些可能的实现方式中,可对每个簇突触子矩阵分别进行分解,得到每个簇突触子矩阵对应的一组权重子张量;进而,根据多个簇突触子矩阵对应的多组权重子张量,即可得到簇突触矩阵的权重子张量集合。
其中,在采用TT分解进行处理时,可对簇突触子矩阵进行多次奇异值分解处理或多次正交三角分解处理,从而得到簇突触子矩阵的一组权重子张量。本公开对具体的分解方式不做限制。
图4为本公开实施例提供的簇突触矩阵分解的示意图。如图4所示,簇突触矩阵A被分割为3个簇突触子矩阵;第1个簇突触子矩阵被分解为一组权重子张量;第2个簇突触子矩阵被分解为一组权重子张量/>;第3个簇突触子矩阵被分解为一组权重子张量/>。x、y、z为整数且x<y<z。
这样,在后续处理中,可将输入数据(图中未示出)经重变形(reshape)及拆分,得到多个输入子张量,每个输入子张量分别与对应组的第1个权重子张量相乘;各组的相乘结果经重变形后,分别与对应的权重子张量/>相乘;以此类推,与对应的权重子张量/>的相乘结果经重变形及合并后,输出作为最终的输出数据(图中未示出)。
在示例中,多组权重子张量中的元素(即权重)可由簇突触矩阵A的多个簇突触子矩阵计算而来。将多组权重子张量依次进行缩并运算并相乘或合并后,即可恢复得到簇突触矩阵A。参见公式(2)
(2)
在公式(2)中,表示缩并符号。应当理解,本领域技术人员可根据实际情况设置簇突触矩阵的分割方式和分割数量,以及簇突触子矩阵的分解方式和分解中的各个参数,本公开对此均不做限制。
通过这种方式,能够将尺寸较大的簇突触矩阵进一步分解为尺寸较小的、并行且级联的多个权重子张量,从而进一步降低突触权重的参数量;并且能够在后续的脑仿真处理中实现并行处理,从而进一步提高脑仿真的效率。
需要说明的是,上面以TT分解为例说明了簇突触矩阵的分解过程,但将簇突触矩阵分解成一系列尺寸较小的权重子张量的方法可以多种多样,包括但不限于将簇突触矩阵分解成一系列权重子张量的串级联、并级联,还可以包括将簇突触矩阵分解成串级联和并级联组合成的混级联等,本公开对此不做限制。
在一些可能的实现方式中,在对簇突触矩阵分解得到权重子张量集合的多个权重子张量后,可在步骤S25中将权重子张量集合存储到预设存储空间,以供后续脑仿真处理时使用。该预设存储空间可以为众核系统外部的片外存储空间,也可以为众核系统内部的片内存储空间,本公开对此不做限制。
在一些可能的实现方式中,在对神经网络进行脑仿真处理前,可分别确定神经网络的各个神经元簇对应的处理核。对于目标神经元簇,其对应的处理核称为目标处理核。在开始脑仿真处理时,可从预设存储空间分别读取神经网络的各个神经元簇的权重子张量集合。
对于目标神经元簇,在步骤S21中,可将目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核。其中,可以是一个目标处理核存储一个权重子张量,也可以是一个目标处理核存储多个权重子张量,还可以是多个目标处理核存储一个权重子张量,本公开对此不做限制。
在一些可能的实现方式中,对于脑仿真处理的任意一个时间步,可在步骤S22中,通过多个目标处理核对来自目标神经元簇的互连神经元簇的输入数据进行处理,得到目标神经元簇的输出数据。其中,该输入数据可例如为脉冲(spike)事件。
在一些可能的实现方式中,在一个目标处理核存储一个权重子张量的情况下,目标神经元簇的任一互连神经元簇的输入数据,由多个目标处理核中的K个目标处理核处理,K为针对该互连神经元簇的权重子张量集合的权重子张量的数量,K为大于1的整数。
在一些可能的实现方式中,步骤S22可包括:
通过K个目标处理核对互连神经元簇的输入数据进行处理,得到目标神经元簇针对互连神经元簇的结果数据;
根据目标神经元簇的各个互连神经元簇的结果数据,确定目标神经元簇的输出数据。
也就是说,任一互连神经元簇的输入数据,可输入相应的K个目标处理核中处理,得到目标神经元簇针对该互连神经元簇的结果数据。
在一些可能的实现方式中,通过K个目标处理核对互连神经元簇的输入数据进行处理的步骤,可包括:
对互连神经元簇的输入数据进行张量化处理,得到输入张量;
通过第k个目标处理核对第k-1级第一输出张量与第k个权重子张量相乘,得到第k级第二输出张量,其中,第0级第一输出张量为输入张量,且1≤k≤K;
在k<K的情况下,通过第k个目标处理核对第k级第二输出张量进行重变形处理,得到第k级第一输出张量;
在k=K的情况下,通过第K个目标处理核根据第K级第二输出张量,输出目标神经元簇针对互连神经元簇的结果数据。
举例来说,K个目标处理核中分别存储有第1个至第K个权重子张量,可根据第1个权重子张量的尺寸,对该互连神经元簇的输入数据进行张量化处理,得到输入张量,使得输入张量的尺寸与第1个权重子张量的尺寸相匹配,以便后续能够与第1个权重子张量相乘。该张量化处理过程可通过额外的目标处理核实现,也可以通过K个目标处理核中的第1个目标处理核实现,本公开对此不做限制。
在一些可能的实现方式中,可将输入张量输入到K个目标处理核中的第1个目标处理核中,与第1个目标处理核中存储的第1个权重子张量相乘,得到相乘结果,即第1级第二输出张量;进而,可根据第2个权重子张量的尺寸,对第1级第二输出张量进行重变形处理,得到第1级第一输出张量,使得第1级第一输出张量的尺寸与第2个权重子张量的尺寸相匹配,以便后续能够与第2个权重子张量相乘。其中,该重变形处理过程可以是直接对第1级第二输出张量进行重变形(reshape);也可以是对第1级第二输出张量进行重变形后,再经由目标函数(例如线性函数或非线性函数)处理,最终得到第1级第一输出张量,本公开对具体的处理方式不做限制。
在一些可能的实现方式中,可将第1级第一输出张量缓存在第1个目标处理核的FIFO(先进先出存储器)中,作为一个批次(batch)的数据(例如每个数据为长度16的一维数组),依次输出到第2个目标处理核中进行后续处理,本公开对具体的缓存和输出方式不做限制。
在一些可能的实现方式中,对于任意的第k个目标处理核(1≤k≤K),可将第k-1级第一输出张量输入到第k个目标处理核中,与第k个目标处理核中存储的第k个权重子张量相乘,得到相乘结果,即第k级第二输出张量。其中,在k=1的情况下,k-1=0,第0级第一输出张量即为输入张量。
在一些可能的实现方式中,如果k<K,则可根据第k+1个权重子张量的尺寸,对第k级第二输出张量进行重变形处理,得到第k级第一输出张量,使得第k级第一输出张量的尺寸与第k+1个权重子张量的尺寸相匹配,以便后续能够与第k+1个权重子张量相乘。其中,该重变形处理过程可以是直接对第k级第二输出张量进行重变形(reshape);也可以是对第k级第二输出张量进行重变形后,再经由目标函数(例如线性函数或非线性函数)处理,最终得到第k级第一输出张量,本公开对具体的处理方式不做限制。
在一些可能的实现方式中,在k<K的情况下,通过第k个目标处理核对第k级第二输出张量进行重变形处理,得到第k级第一输出张量的步骤,可包括:
对第k级第二输出张量进行重变形,得到第k级第三输出张量;
通过预设的目标函数对第k级第三输出张量进行处理,得到第k级第一输出张量,目标函数包括线性函数或非线性函数。
在该情况下,可先根据第k+1个权重子张量的尺寸,对第k级第二输出张量进行重变形,得到一个中间结果,称为第k级第三输出张量。进而,通过目标函数对第k级第三输出张量进行处理,得到第k级第一输出张量。该目标函数可为线性函数,例如y=alpha×(x),其中alpha为常数标量;也可为非线性函数,例如y=SiLU(x)、y=tanh(x)等,本公开对目标函数的具体函数类型不做限制。
通过这种方式,能够减少脑仿真过程中的过拟合等现象,提高神经网络的处理效果。
在一些可能的实现方式中,在k<K的情况下,可将第k级第一输出张量缓存在第k个目标处理核的FIFO中,作为一个批次的数据,依次输出到第k+1个目标处理核中进行后续处理,本公开对具体的缓存和输出方式不做限制。
在一些可能的实现方式中,如果k=K,则第k个目标处理核已经是K个目标处理核中的最后一个,即第K个目标处理核。该情况下,第K个目标处理核可根据对结果数据的预设的尺寸要求,对第K级第二输出张量进行重变形等处理,缓存并输出目标神经元簇针对该互连神经元簇的结果数据。
图5a和图5b为本公开实施例中通过目标处理核进行处理的示意图。如图5a所示,可将输入张量输入到目标处理核1,与权重子张量W1相乘并对相乘结果重变形处理;处理后的输出张量输入到目标处理核2,与权重子张量W2相乘并对相乘结果重变形处理;……;以此类推,K-1级输出张量输入到目标处理核K,与权重子张量WK相乘并对相乘结果重变形处理,得到结果数据。
在示例中,如图5b所示,在神经网络为SNN的情况下,输入数据为图5b中的一组输入脉冲(spike,也可称为事件),权重子张量为小的权重矩阵。输入脉冲经尺寸调整后输入到目标处理核1,与目标处理核1中存储的权重矩阵a1×b1相乘得到一组电流值,再通过目标处理核1进行数据转置,得到转置结果;转置结果通过众核系统的全交叉阵列(crossbar),以模拟信号的形式路由传输到目标处理核2;……;以此类推,目标处理核K-1输出的脉冲信号输入到目标处理核K,与目标处理核K中存储的权重矩阵aK×bK相乘得到一组电流值,再通过目标处理核K进行神经元计算,得到输出脉冲(即结果数据)。
应当理解,本领域技术人员可根据实际情况设置输入输出数据的具体形式、权重子张量的具体类型和尺寸、神经元计算的具体计算类型等,本公开均不做限制。
通过多个目标处理核分别进行小尺寸张量依次相乘的处理方式,能够显著减少脑仿真处理中的计算量,大幅提高神经网络的执行效率和脑仿真效率。并且,该处理方式通过张量乘实现,不需要特殊的底层算子支持,提高了方案的普适性。
在一些可能的实现方式中,互连神经元簇可包括目标神经元簇的前继神经元簇和目标神经元簇自身,簇突触矩阵可包括与目标神经元簇的前继神经元簇对应的簇间突触矩阵和与目标神经元簇对应的簇内突触矩阵。
在该情况下,可以对目标神经元簇的各个互连神经元簇分别进行上述处理,即可得到目标神经元簇的各个互连神经元簇的结果数据。
在一些可能的实现方式中,根据目标神经元簇的各个互连神经元簇的结果数据,确定目标神经元簇的输出数据的步骤,可包括:将目标神经元簇的各个互连神经元簇的结果数据合并,得到目标神经元簇的输出数据。
也就是说,可将目标神经元簇的各个互连神经元簇的结果数据合并,得到目标神经元簇最终的输出数据。该输出数据可作为目标神经元簇在下一个时间步输入到后继神经元簇及目标神经元簇自身的输入数据,以便进行后续的处理。
这样,通过众核系统的多个处理核分别对神经网络的各个神经元簇进行上述处理,即可得到神经网络的各个神经元簇的输出数据,从而完成该时间步的整个处理过程。
通过这种方式,能够提高神经网络在众核系统中的执行效率。
如前所述,在对簇突触矩阵的分解时,可将簇突触矩阵分解为级联的多个权重子张量(如图3a和图3b所示),还可将簇突触矩阵分解为并行且级联的多个权重子张量(如图4所示),以便进一步提高处理效率。
在将簇突触矩阵分解为并行且级联的多个权重子张量的情况下,簇突触矩阵被分割为多个簇突触子矩阵,权重子张量集合的多个权重子张量是由多个簇突触子矩阵分别经分解得到的,每个簇突触子矩阵对应多个权重子张量中的一组权重子张量。
在示例中,可设簇突触矩阵被分割为Q个簇突触子矩阵,对应Q组权重子张量,Q为大于1的整数;第q组权重子张量的数量为Kq个,1≤q≤Q,则有K1+K2+…+KQ=K。相应地,K个目标处理核也被分为Q组,各组目标处理核分别为K1、K2、…、KQ个。
在该情况下,通过K个目标处理核对互连神经元簇的输入数据进行处理,得到目标神经元簇针对互连神经元簇的结果数据的步骤,可包括:
对互连神经元簇的输入数据进行张量化处理,得到输入张量;
根据与互连神经元簇对应的Q组权重子张量,将输入张量拆分为与Q组权重子张量对应的Q个输入子张量,Q为大于1的整数;
通过第q组的第j个目标处理核,对第q组的第j-1级第一输出张量与第q组的第j个权重子张量相乘,得到第q组的第j级第二输出张量,其中,第q组的第0级第一输出张量为第q个输入张量,且1≤q≤Q,1≤j≤Kq,K1+K2+…+KQ=K;
在j<Kq的情况下,通过第q组的第j个目标处理核对第q组的第j级第二输出张量进行重变形处理,得到第q组的第j级第一输出张量;
在j=Kq的情况下,通过第q组的第Kq个目标处理核根据第q组的第Kq级第二输出张量,输出第q组的结果子数据;
根据Q组的结果子数据,确定目标神经元簇针对互连神经元簇的结果数据。
举例来说,K个目标处理核被分为Q组,分别存储与互连神经元簇对应的Q组权重子张量,每组的第1个目标处理核中存储有该组的第1个权重子张量,可根据Q组的第1个权重子张量的尺寸,对该互连神经元簇的输入数据进行张量化处理,得到输入张量;进而将输入张量拆分为与Q组权重子张量对应的Q个输入子张量,使得Q个输入子张量的尺寸分别与Q组的第1个权重子张量的尺寸相匹配,以便后续能够分别与Q组的第1个权重子张量相乘。该张量化处理过程可通过额外的目标处理核实现,也可以通过Q组目标处理核中的第1个目标处理核中的任意一个来实现,本公开对此不做限制。
在一些可能的实现方式中,可将Q个输入子张量分别输入到Q组的第1个目标处理核中,实现并行处理。对于Q组中的任意一组(第q组),将第q个输入子张量输入到第q组的第1个目标处理核中,与该目标处理核中存储的第q组第1个权重子张量相乘,得到相乘结果,即第q组第1级第二输出张量;进而,可根据第q组第2个权重子张量的尺寸,对第q组第1级第二输出张量进行重变形处理,得到第q组第1级第一输出张量,使得第q组第1级第一输出张量的尺寸与第q组第2个权重子张量的尺寸相匹配,以便后续能够与第q组第2个权重子张量相乘。其中,该重变形处理过程可以是直接对第1级第二输出张量进行重变形(reshape);也可以是对第1级第二输出张量进行重变形后,再经由目标函数(例如线性函数或非线性函数)处理,最终得到第1级第一输出张量,本公开对具体的处理方式不做限制。
在一些可能的实现方式中,可将第q组第1级第一输出张量缓存在第q组第1个目标处理核的FIFO中,作为一个批次的数据,依次输出到第q组第2个目标处理核中进行后续处理,本公开对具体的缓存和输出方式不做限制。
在一些可能的实现方式中,对于第q组的第j个目标处理核(1≤j≤Kq),可将第q组的第j-1级第一输出张量输入到第q组的第j个目标处理核中,与该目标处理核中存储的第q组第j个权重子张量相乘,得到相乘结果,即第q组第j级第二输出张量。其中,在j=1的情况下,j-1=0,第q组的第0级第一输出张量即为第q组输入子张量。
在一些可能的实现方式中,如果j<Kq,则可根据第q组第j+1个权重子张量的尺寸,对第q组第j级第二输出张量进行重变形处理,得到第q组第j级第一输出张量,使得第q组第j级第一输出张量的尺寸与第q组第j+1个权重子张量的尺寸相匹配,以便后续能够与第j+1个权重子张量相乘。
在一些可能的实现方式中,在j<Kq的情况下,可将第q组第j级第一输出张量缓存在第q组第j个目标处理核的FIFO中,作为一个批次的数据,依次输出到第q组第j+1个目标处理核中进行后续处理,本公开对具体的缓存和输出方式不做限制。
在一些可能的实现方式中,如果j=Kq,则第q组的第j个目标处理核已经是第q组的Kq个目标处理核中的最后一个,即第q组的第Kq个目标处理核。该情况下,第Kq个目标处理核可根据第q组的第Kq级第二输出张量,输出第q组的结果子数据。其中,可将第Kq级第二输出张量直接作为第q组的结果子数据输出;也可对第q组的结果子数据进行重变形等处理,将处理结果作为第q组的结果子数据输出,本公开对此不做限制。
这样,Q组目标处理核按照上述方式并行处理,可以得到Q组的结果子数据。进而,可根据对结果数据的预设的尺寸要求,将Q组的结果子数据进行拼接、合并、重变形等处理,缓存并输出目标神经元簇针对该互连神经元簇的结果数据。本公开对Q组的结果子数据的具体的处理方式不做限制。
通过这种方式,能够实现多组小尺寸张量相乘的并行处理,进一步减少脑仿真处理中的计算量,进一步提高神经网络的执行效率和脑仿真效率。
在一些可能的实现方式中,可将目标神经元簇的各个互连神经元簇的结果数据合并,得到目标神经元簇最终的输出数据。该输出数据可作为目标神经元簇在下一个时间步输入到后继神经元簇及目标神经元簇自身的输入数据,以便进行后续的处理。这样,通过众核系统的多个处理核分别对神经网络的各个神经元簇进行上述的处理,即可得到神经网络的各个神经元簇的输出数据,从而完成该时间步的整个处理过程。
通过这种方式,能够进一步提高神经网络在众核系统中的执行效率。
在一些可能的实现方式中,脑仿真包括神经网络的训练过程和执行过程。在神经网络的执行过程中,可通过步骤S21-S22的处理方式,通过众核系统的处理核,对各个神经元簇的输入数据分别进行处理以得到各个神经元簇的输出数据。在训练过程中,还包括反向调整神经元之间的突触权重的过程。
在一些可能的实现方式中,根据本公开实施例的脑仿真处理方法还包括:
在神经网络的训练过程中,根据神经网络的网络损失,调整目标神经元簇的权重子张量集合中的多个权重子张量;根据调整后的权重子张量集合的多个权重子张量,分别更新多个目标处理核中存储的权重子张量。
举例来说,对于神经网络训练过程中的任意一轮迭代,可将训练集中的样本数据输入神经网络,经由众核系统的处理核处理后,得到样本输出结果;根据样本输出结果、样本数据的标注结果以及预设的损失函数,可确定神经网络的网络损失;根据神经网络的网络损失,可分别调整神经网络的各个神经元簇的权重子张量。针对目标神经元簇,可根据该网络损失,反向调整目标神经元簇的权重子张量集合中的多个权重子张量,本公开对反向调整的具体方式不做限制。
在一些可能的实现方式中,根据调整后的权重子张量集合的多个权重子张量,可分别更新多个目标处理核中存储的权重子张量,以便进行下一轮的迭代;在满足训练条件(例如网络收敛)的情况下,可得到与训练后的神经网络对应的、最终调整后的权重子张量集合。
在一些可能的实现方式中,可将最终调整后的权重子张量集合存储到预设存储空间(例如片外存储器);也可根据各轮迭代中调整后的权重子张量集合,多次更新预设存储空间中的权重子张量集合,本公开对此不做限制。
这样,对神经网络的各个神经元簇的权重子张量集合分别进行处理,可以实现神经网络中以权重子张量形式表示的突触权重更新过程。
通过这种方式,能够实现在簇突触矩阵分解为权重子张量情况下的神经网络训练过程,减少训练过程中存储的数据量和计算量,从而提高脑仿真的效率。
根据本公开实施例的脑仿真处理方法,能够通过包括一个或多个神经形态芯片的众核系统来运行用于脑仿真的神经网络。由于神经形态芯片包括采用全交叉阵列(crossbar)方式布置的多个处理核,更适合计算小型张量(例如矩阵)的相乘,因此本公开实施例将簇突触矩阵分解为权重子张量的处理方式,在众核系统中具有更高的执行效率。
并且,本公开的实施例能够通过多个处理核分别存储神经元簇的权重子张量,从而显著降低突触权重的参数量,降低神经网络的存储成本;通过多个处理核分别进行小尺寸张量的相乘处理,显著减少了计算开销,数据搬运的次数和数据量,从而大幅提高神经网络的执行效率和脑仿真效率,并且本公开的实施例通过张量乘的方式实现,不需要特殊的底层算子支持,提高了方案的普适性。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了脑仿真处理装置、电子设备、计算机可读存储介质,上述均可用来实现本公开提供的任一种脑仿真处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图6为本公开实施例提供的一种脑仿真处理装置的框图。
参照图6,本公开实施例提供了一种脑仿真处理装置,该装置应用于众核系统,众核系统包括多个处理核,用于脑仿真的神经网络包括多个神经元簇,每个神经元簇对应众核系统的部分处理核,该装置包括:
张量存储模块61,用于针对神经网络的目标神经元簇,将目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核;目标神经元簇为神经网络中的任一神经元簇,目标处理核是众核系统中与目标神经元簇对应的处理核;
其中,神经网络的神经元簇包括多个神经元,神经元之间的连接通过突触权重来表征;每个权重子张量集合中包括多个权重子张量,每个权重子张量集合的多个权重子张量是由簇突触矩阵经分解得到的,簇突触矩阵用于表征目标神经元簇和神经网络中与目标神经元簇相连接的互连神经元簇之间的突触权重,权重子张量的尺寸是根据处理核的参数确定的;
数据处理模块62,用于通过多个目标处理核对来自互连神经元簇的输入数据进行处理,得到目标神经元簇的输出数据。
在一些可能的实现方式中,目标神经元簇的任一互连神经元簇的输入数据由多个目标处理核中的K个目标处理核处理,K为针对互连神经元簇的权重子张量集合的权重子张量的数量,K为大于1的整数,
其中,数据处理模块,用于:通过K个目标处理核对互连神经元簇的输入数据进行处理,得到目标神经元簇针对互连神经元簇的结果数据;根据目标神经元簇的各个互连神经元簇的结果数据,确定目标神经元簇的输出数据。
在一些可能的实现方式中,数据处理模块,用于:对互连神经元簇的输入数据进行张量化处理,得到输入张量;通过第k个目标处理核对第k-1级第一输出张量与第k个权重子张量相乘,得到第k级第二输出张量,其中,第0级第一输出张量为输入张量,且1≤k≤K;在k<K的情况下,通过第k个目标处理核对第k级第二输出张量进行重变形处理,得到第k级第一输出张量;在k=K的情况下,通过第K个目标处理核根据第K级第二输出张量,输出目标神经元簇针对互连神经元簇的结果数据。
在一些可能的实现方式中,通过第k个目标处理核对第k级第二输出张量进行重变形处理,得到第k级第一输出张量,包括:对第k级第二输出张量进行重变形,得到第k级第三输出张量;通过预设的目标函数对第k级第三输出张量进行处理,得到第k级第一输出张量,目标函数包括线性函数或非线性函数。
在一些可能的实现方式中,簇突触矩阵被分割为多个簇突触子矩阵,权重子张量集合的多个权重子张量是由多个簇突触子矩阵分别经分解得到的,每个簇突触子矩阵对应多个权重子张量中的一组权重子张量;其中,数据处理模块,用于:对互连神经元簇的输入数据进行张量化处理,得到输入张量;根据与互连神经元簇对应的Q组权重子张量,将输入张量拆分为与Q组权重子张量对应的Q个输入子张量,Q为大于1的整数;通过第q组的第j个目标处理核,对第q组的第j-1级第一输出张量与第q组的第j个权重子张量相乘,得到第q组的第j级第二输出张量,其中,第q组的第0级第一输出张量为第q个输入张量,且1≤q≤Q,1≤j≤Kq,K1+K2+…+KQ=K;在j<Kq的情况下,通过第q组的第j个目标处理核对第q组的第j级第二输出张量进行重变形处理,得到第q组的第j级第一输出张量;在j=Kq的情况下,通过第q组的第Kq个目标处理核根据第q组的第Kq级第二输出张量,输出第q组的结果子数据;根据Q组的结果子数据,确定目标神经元簇针对互连神经元簇的结果数据。
在一些可能的实现方式中,互连神经元簇包括目标神经元簇的前继神经元簇和目标神经元簇自身,簇突触矩阵包括与目标神经元簇的前继神经元簇对应的簇间突触矩阵和与目标神经元簇对应的簇内突触矩阵,其中,数据处理模块,用于:将目标神经元簇的各个互连神经元簇的结果数据合并,得到目标神经元簇的输出数据。
在一些可能的实现方式中,张量存储模块之前,该装置还包括:第一确定模块,用于针对神经网络的目标神经元簇,确定神经网络中与目标神经元簇相连接的互连神经元簇,以及目标神经元簇与互连神经元簇之间的簇突触矩阵;矩阵分解模块,用于根据预设的分解规则,对簇突触矩阵进行分解,得到簇突触矩阵的权重子张量集合的多个权重子张量;集合存储模块,用于将权重子张量集合存储到预设存储空间。
在一些可能的实现方式中,该装置还包括:阈值确定模块,用于根据众核系统的处理核的参数以及脑仿真的时延参数,确定权重子张量的尺寸阈值;处理核的参数包括处理核的运算参数和存储空间尺寸,分解规则包括该尺寸阈值。
在一些可能的实现方式中,矩阵分解模块,用于:根据预设的分解规则,将簇突触矩阵分割为多个簇突触子矩阵;对每个簇突触子矩阵分别进行分解,得到每个簇突触子矩阵对应的一组权重子张量;根据多个簇突触子矩阵对应的多组权重子张量,得到簇突触矩阵的权重子张量集合。
在一些可能的实现方式中,矩阵分解模块,用于:根据预设的分解规则,对簇突触矩阵进行多次奇异值分解处理或正交三角分解处理,得到簇突触矩阵的多个权重子张量。
在一些可能的实现方式中,脑仿真包括神经网络的训练过程和执行过程,该装置还包括:网络调整模块,用于在神经网络的训练过程中,根据神经网络的网络损失,调整目标神经元簇的权重子张量集合中的多个权重子张量;张量更新模块,用于根据调整后的权重子张量集合的多个权重子张量,分别更新多个目标处理核中存储的权重子张量。
图7为本公开实施例提供的一种电子设备的框图。
参照图7,本公开实施例提供了一种电子设备,该电子设备包括多个处理核1001以及片上网络1002,其中,多个处理核1001均与片上网络1002连接,片上网络1002用于交互多个处理核间的数据和外部数据。
其中,一个或多个处理核1001中存储有一个或多个指令,一个或多个指令被一个或多个处理核1001执行,以使一个或多个处理核1001能够执行上述的脑仿真处理方法。
在一些实施例中,该电子设备可以是包括一个或多个神经形态芯片(或称为类脑芯片)的众核系统,由于神经形态芯片可以采用向量化计算方式,且需要通过外部内存例如双倍速率(Double Data Rate,DDR)同步动态随机存储器调入神经网络模型的权重信息等参数。因此,本公开实施例采用批处理的运算效率较高。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的脑仿真处理方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述脑仿真处理方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

Claims (14)

1.一种脑仿真处理方法,其特征在于,应用于众核系统,所述众核系统包括多个处理核,用于脑仿真的神经网络包括多个神经元簇,每个神经元簇对应所述众核系统的部分处理核,所述方法包括:
针对所述神经网络的目标神经元簇,将所述目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核;所述目标神经元簇为所述神经网络中的任一神经元簇,所述目标处理核是所述众核系统中与所述目标神经元簇对应的处理核;
其中,所述神经网络的神经元簇包括多个神经元,所述神经元之间的连接通过突触权重来表征;每个权重子张量集合中包括多个权重子张量,每个权重子张量集合的多个权重子张量是由簇突触矩阵经分解得到的,所述簇突触矩阵用于表征所述目标神经元簇和所述神经网络中与所述目标神经元簇相连接的互连神经元簇之间的突触权重,所述权重子张量的尺寸是根据所述处理核的参数确定的,所述多个权重子张量的总数据量小于所述簇突触矩阵的总数据量;
通过所述多个目标处理核对来自所述互连神经元簇的输入数据进行多个权重子张量的依次相乘处理,得到所述目标神经元簇的输出数据。
2.根据权利要求1所述的方法,其特征在于,所述目标神经元簇的任一互连神经元簇的输入数据由所述多个目标处理核中的K个目标处理核处理,K为针对所述互连神经元簇的权重子张量集合的权重子张量的数量,K为大于1的整数,
其中,所述通过所述多个目标处理核对来自所述互连神经元簇的输入数据进行处理,得到所述目标神经元簇的输出数据,包括:
通过所述K个目标处理核对所述互连神经元簇的输入数据进行处理,得到所述目标神经元簇针对所述互连神经元簇的结果数据;
根据所述目标神经元簇的各个互连神经元簇的结果数据,确定所述目标神经元簇的输出数据。
3.根据权利要求2所述的方法,其特征在于,所述通过所述K个目标处理核对所述互连神经元簇的输入数据进行处理,得到所述目标神经元簇针对所述互连神经元簇的结果数据,包括:
对所述互连神经元簇的输入数据进行张量化处理,得到输入张量;
通过第k个目标处理核对第k-1级第一输出张量与第k个权重子张量相乘,得到第k级第二输出张量,其中,第0级第一输出张量为所述输入张量,且1≤k≤K;
在k<K的情况下,通过第k个目标处理核对所述第k级第二输出张量进行重变形处理,得到第k级第一输出张量;
在k=K的情况下,通过第K个目标处理核根据第K级第二输出张量,输出所述目标神经元簇针对所述互连神经元簇的结果数据。
4.根据权利要求3所述的方法,其特征在于,所述通过第k个目标处理核对所述第k级第二输出张量进行重变形处理,得到第k级第一输出张量,包括:
对所述第k级第二输出张量进行重变形,得到第k级第三输出张量;
通过预设的目标函数对所述第k级第三输出张量进行处理,得到所述第k级第一输出张量,所述目标函数包括线性函数或非线性函数。
5.根据权利要求2所述的方法,其特征在于,所述簇突触矩阵被分割为多个簇突触子矩阵,所述权重子张量集合的多个权重子张量是由多个簇突触子矩阵分别经分解得到的,每个簇突触子矩阵对应所述多个权重子张量中的一组权重子张量;
其中,所述通过所述K个目标处理核对所述互连神经元簇的输入数据进行处理,得到所述目标神经元簇针对所述互连神经元簇的结果数据,包括:
对所述互连神经元簇的输入数据进行张量化处理,得到输入张量;
根据与所述互连神经元簇对应的Q组权重子张量,将所述输入张量拆分为与所述Q组权重子张量对应的Q个输入子张量,Q为大于1的整数;
通过第q组的第j个目标处理核,对第q组的第j-1级第一输出张量与第q组的第j个权重子张量相乘,得到第q组的第j级第二输出张量,其中,第q组的第0级第一输出张量为第q个输入张量,且1≤q≤Q,1≤j≤Kq,K1+K2+…+KQ=K;
在j<Kq的情况下,通过第q组的第j个目标处理核对所述第q组的第j级第二输出张量进行重变形处理,得到第q组的第j级第一输出张量;
在j=Kq的情况下,通过第q组的第Kq个目标处理核根据第q组的第Kq级第二输出张量,输出第q组的结果子数据;
根据Q组的结果子数据,确定所述目标神经元簇针对所述互连神经元簇的结果数据。
6.根据权利要求2所述的方法,其特征在于,所述互连神经元簇包括所述目标神经元簇的前继神经元簇和所述目标神经元簇自身,所述簇突触矩阵包括与所述目标神经元簇的前继神经元簇对应的簇间突触矩阵和与所述目标神经元簇对应的簇内突触矩阵,
其中,所述根据所述目标神经元簇的各个互连神经元簇的结果数据,确定所述目标神经元簇的输出数据,包括:
将所述目标神经元簇的各个互连神经元簇的结果数据合并,得到目标神经元簇的输出数据。
7.根据权利要求1所述的方法,其特征在于,所述将所述目标神经元簇的一个或多个权重子张量集合中的权重子张量,分别存储到多个目标处理核之前,所述方法还包括:
针对所述神经网络的目标神经元簇,确定所述神经网络中与所述目标神经元簇相连接的互连神经元簇,以及所述目标神经元簇与所述互连神经元簇之间的簇突触矩阵;
根据预设的分解规则,对所述簇突触矩阵进行分解,得到所述簇突触矩阵的权重子张量集合的多个权重子张量;
将所述权重子张量集合存储到预设存储空间。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
根据所述众核系统的处理核的参数以及脑仿真的时延参数,确定权重子张量的尺寸阈值;所述处理核的参数包括所述处理核的运算参数和存储空间尺寸,所述分解规则包括所述尺寸阈值。
9.根据权利要求7所述的方法,其特征在于,所述对所述簇突触矩阵进行分解,得到所述簇突触矩阵的权重子张量集合的多个权重子张量,包括:
根据预设的分解规则,将所述簇突触矩阵分割为多个簇突触子矩阵;
对每个簇突触子矩阵分别进行分解,得到每个簇突触子矩阵对应的一组权重子张量;
根据所述多个簇突触子矩阵对应的多组权重子张量,得到所述簇突触矩阵的权重子张量集合。
10.根据权利要求7所述的方法,其特征在于,对所述簇突触矩阵进行分解,得到所述簇突触矩阵的权重子张量集合的多个权重子张量,包括:
根据预设的分解规则,对所述簇突触矩阵进行多次奇异值分解处理或正交三角分解处理,得到所述簇突触矩阵的多个权重子张量。
11.根据权利要求1所述的方法,其特征在于,所述脑仿真包括所述神经网络的训练过程和执行过程,所述方法还包括:
在所述神经网络的训练过程中,根据所述神经网络的网络损失,调整所述目标神经元簇的权重子张量集合中的多个权重子张量;
根据调整后的权重子张量集合的多个权重子张量,分别更新所述多个目标处理核中存储的权重子张量。
12.一种脑仿真处理装置,其特征在于,应用于众核系统,所述众核系统包括多个处理核,用于脑仿真的神经网络包括多个神经元簇,每个神经元簇对应所述众核系统的部分处理核,所述装置包括:
张量存储模块,用于针对所述神经网络的目标神经元簇,将所述目标神经元簇的多个权重子张量集合中的权重子张量,分别存储到多个目标处理核;所述目标神经元簇为所述神经网络中的任一神经元簇,所述目标处理核是所述众核系统中与所述目标神经元簇对应的处理核;
其中,所述神经网络的神经元簇包括多个神经元,所述神经元之间的连接通过突触权重来表征;每个权重子张量集合中包括多个权重子张量,每个权重子张量集合的多个权重子张量是由簇突触矩阵经分解得到的,所述簇突触矩阵用于表征所述目标神经元簇和所述神经网络中与所述目标神经元簇相连接的互连神经元簇之间的突触权重,所述权重子张量的尺寸是根据所述处理核的参数确定的,所述多个权重子张量的总数据量小于所述簇突触矩阵的总数据量;
数据处理模块,用于通过所述多个目标处理核对来自所述互连神经元簇的输入数据进行多个权重子张量的依次相乘处理,得到所述目标神经元簇的输出数据。
13.一种电子设备,其特征在于,包括:
多个处理核;以及
片上网络,被配置为交互所述多个处理核间的数据和外部数据;其中,一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行如权利要求1-11中任一项所述的脑仿真处理方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-11中任一项所述的脑仿真处理方法。
CN202311439403.1A 2023-11-01 2023-11-01 脑仿真处理方法及装置、电子设备、计算机可读存储介质 Active CN117194051B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311439403.1A CN117194051B (zh) 2023-11-01 2023-11-01 脑仿真处理方法及装置、电子设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311439403.1A CN117194051B (zh) 2023-11-01 2023-11-01 脑仿真处理方法及装置、电子设备、计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN117194051A CN117194051A (zh) 2023-12-08
CN117194051B true CN117194051B (zh) 2024-01-23

Family

ID=88996454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311439403.1A Active CN117194051B (zh) 2023-11-01 2023-11-01 脑仿真处理方法及装置、电子设备、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117194051B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021082746A1 (zh) * 2019-11-01 2021-05-06 中科寒武纪科技股份有限公司 运算装置及相关产品
CN114912594A (zh) * 2022-05-16 2022-08-16 北京灵汐科技有限公司 神经元发放控制方法、众核系统、处理核和介质
CN115099395A (zh) * 2022-08-25 2022-09-23 北京灵汐科技有限公司 神经网络构建方法及装置、设备、介质
WO2023059723A1 (en) * 2021-10-05 2023-04-13 Qualcomm Incorporated Model compression via quantized sparse principal component analysis
CN116306843A (zh) * 2022-12-31 2023-06-23 北京灵汐科技有限公司 数据处理方法及装置、电子设备、计算机可读存储介质
WO2023134561A1 (zh) * 2022-01-11 2023-07-20 北京灵汐科技有限公司 数据处理方法及装置、电子设备、计算机可读介质
CN116502683A (zh) * 2023-03-29 2023-07-28 中国电子科技南湖研究院 一种全流程并行加速脑仿真方法及系统
CN116861972A (zh) * 2023-07-04 2023-10-10 北京灵汐科技有限公司 用于网络仿真的神经元簇分配方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220101108A1 (en) * 2020-09-30 2022-03-31 International Business Machines Corporation Memory-mapped neural network accelerator for deployable inference systems
US20230108248A1 (en) * 2021-10-05 2023-04-06 Qualcomm Incorporated Model compression via quantized sparse principal component analysis

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021082746A1 (zh) * 2019-11-01 2021-05-06 中科寒武纪科技股份有限公司 运算装置及相关产品
WO2023059723A1 (en) * 2021-10-05 2023-04-13 Qualcomm Incorporated Model compression via quantized sparse principal component analysis
WO2023134561A1 (zh) * 2022-01-11 2023-07-20 北京灵汐科技有限公司 数据处理方法及装置、电子设备、计算机可读介质
CN114912594A (zh) * 2022-05-16 2022-08-16 北京灵汐科技有限公司 神经元发放控制方法、众核系统、处理核和介质
CN115099395A (zh) * 2022-08-25 2022-09-23 北京灵汐科技有限公司 神经网络构建方法及装置、设备、介质
CN116306843A (zh) * 2022-12-31 2023-06-23 北京灵汐科技有限公司 数据处理方法及装置、电子设备、计算机可读存储介质
CN116502683A (zh) * 2023-03-29 2023-07-28 中国电子科技南湖研究院 一种全流程并行加速脑仿真方法及系统
CN116861972A (zh) * 2023-07-04 2023-10-10 北京灵汐科技有限公司 用于网络仿真的神经元簇分配方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
深度学习认知计算综述;陈伟宏;安吉尧;李仁发;李万里;;自动化学报(第11期);全文 *

Also Published As

Publication number Publication date
CN117194051A (zh) 2023-12-08

Similar Documents

Publication Publication Date Title
Liang et al. Pruning and quantization for deep neural network acceleration: A survey
Deng et al. Model compression and hardware acceleration for neural networks: A comprehensive survey
Sung et al. Resiliency of deep neural networks under quantization
US20200026992A1 (en) Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
US20210224640A1 (en) Neural network circuit device, neural network processingmethod, and neural network execution program
US11062208B2 (en) Update management for RPU array
Penkovsky et al. Efficient design of hardware-enabled reservoir computing in FPGAs
CN114764549B (zh) 基于矩阵乘积态的量子线路模拟计算方法、装置
EP4341862A1 (en) Low-rank adaptation of neural network models
US11544542B2 (en) Computing device and method
CN110309847A (zh) 一种模型压缩方法及装置
KR102592585B1 (ko) 번역 모델 구축 방법 및 장치
KR102396447B1 (ko) 파이프라인 구조를 가지는 인공신경망용 연산 가속 장치
CN114358295B (zh) 基于机器学习框架的二分类方法及相关装置
US20190378013A1 (en) Self-tuning model compression methodology for reconfiguring deep neural network and electronic device
EP4035273B1 (en) Design and training of binary neurons and binary neural networks with error correcting codes
CN114358317B (zh) 基于机器学习框架的数据分类方法及相关设备
CN117194051B (zh) 脑仿真处理方法及装置、电子设备、计算机可读存储介质
CN114372539B (zh) 基于机器学习框架的分类方法及相关设备
CN114742036B (zh) 一种预训练语言模型的组合式模型压缩方法及系统
Kang et al. Weight partitioning for dynamic fixed-point neuromorphic computing systems
CN115952847A (zh) 神经网络模型的处理方法及处理装置
Chitty-Venkata et al. Array aware training/pruning: Methods for efficient forward propagation on array-based neural network accelerators
US20230004351A1 (en) Method and device for additive coding of signals in order to implement digital mac operations with dynamic precision
CN110659731B (zh) 一种神经网络训练方法及装置

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