CN116050491A - 数据处理装置、计算机系统及其操作方法 - Google Patents
数据处理装置、计算机系统及其操作方法 Download PDFInfo
- Publication number
- CN116050491A CN116050491A CN202211639655.4A CN202211639655A CN116050491A CN 116050491 A CN116050491 A CN 116050491A CN 202211639655 A CN202211639655 A CN 202211639655A CN 116050491 A CN116050491 A CN 116050491A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- backbone network
- data processing
- network base
- 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
Images
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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0009—RRAM elements whose operation depends upon chemical change
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
Abstract
公开了一种数据处理装置、计算机系统及其操作方法。该数据处理装置包括多个主干网络基础模块、时分复用仲裁模块、数据处理与存储模块、装置内总线,其中,多个主干网络基础模块、时分复用仲裁模块、数据处理与存储模块通过装置内总线通信连接。每个主干网络基础模块基于存算一体架构且配置为实现可复用的单个神经网络层或包括多个神经网络层的组合的操作,时分复用仲裁模块配置为对装置内总线的使用进行调度,数据处理与存储模块配置为对于来自多个主干网络基础模块中任一的输出数据进行处理和存储。数据处理装置具有改善的数据处理性能。
Description
技术领域
本公开的实施例涉及一种数据处理装置、计算机系统及其操作方法。
背景技术
近年来,卷积神经网络(CNN)已经成为图像处理任务中的主要机器学习方法。相较传统的多层感知机(MLP),CNN更具有空间意义的卷积模式,即通过卷积核在特征图上的滑动提取特征,因此更适合图像处理任务。在基于神经网络的计算机视觉领域,通常都会先利用CNN对图像进行特征提取,这部分特征提取的网络即为网络的主干部分(Backbone)。主干网络在整体网络任务中占主要部分,而后续神经网络会在主干提取的信息的基础上,进一步执行分类、检测等目标任务。目前,使用以例如ResNet、EfficientNet等为代表的主干神经网络提取多维度信息后,附加多种目标识别、检测、分类等功能网络,在面向图像处理的深度神经网络中发挥出重大的作用。随着算法研究中对于主干网络的分析也在不断深入。最新的研究表明,在网络规模较大且主干网络外的功能网络足够强大的情况下,图像处理任务网络中通过“冻结”预训练的主干网络,可以在提升算法表现的同时极大的节约运算资源。这为迁移学习的研究提供了新的思路,也为设计面向神经网络的硬件系统提供了新的启发。
深层的主干神经网络需要大量的计算和存储资源,负责计算的硬件系统需要提供更高的算力和性能支持。在硬件架构层面,目前为了给深度神经网络(DNN)(尤其是CNN)提供支持,传统的基于冯诺依曼架构计算芯片,在存储上,因为存算分离的特性,面临了严重的“存储墙”问题;在性能上,在硬件资源、通用性等约束下,并行度不足,计算速度也受到了制约;在功耗上,大量的访存操作与计算也带来了巨大功耗开销。存算一体芯片设计通过直接利用欧姆定律和串联的基尔霍夫定律,可以在存储单元内部在模拟域直接进行矩阵向量乘等操作,整个过程不需要数据的搬运;再结合忆阻器阵列对于高并行度数据处理的支持,已经实现算力、能效的爆炸式突破,在器件、原理和范式上彻底颠覆传统计算芯片。
发明内容
本公开的至少一个实施例提供了一种数据处理装置,所述数据处理装置包括多个主干网络基础模块、时分复用仲裁模块、数据处理与存储模块、装置内总线,其中,所述多个主干网络基础模块、所述时分复用仲裁模块、所述数据处理与存储模块通过所述装置内总线通信连接。每个所述主干网络基础模块基于存算一体架构且配置为实现可复用的单个神经网络层或包括多个神经网络层的组合的操作,所述时分复用仲裁模块配置为对所述装置内总线的使用进行调度,所述数据处理与存储模块配置为对于来自所述多个主干网络基础模块中任一的输出数据进行处理和存储。
例如,在至少一个示例中,所述多个主干网络基础模块包括第一主干网络基础模块和第二主干网络基础模块,所述第一主干网络基础模块输出的输出数据将通过所述装置内总线被提供至所述第二主干网络基础模块,作为所述第二主干网络基础模块的输入数据。
例如,在至少一个示例中,所述第一主干网络基础模块输出的输出数据在被提供至所述第二主干网络基础模块之前,将被发送至所述数据处理与存储模块暂存,所述时分复用仲裁模块还配置为判断所述输出数据是否需要被进行中间处理并进行调度。
例如,在至少一个示例中,所述数据处理与存储模块包括数据处理子模块和数据存储子模块,响应于所述时分复用仲裁模块判断所述输出数据需要被进行所述中间处理,得到中间结果,并将所述中间结果存入所述数据存储子模块,之后所述中间结果被提供至所述第二主干网络基础模块,或者,响应于所述时分复用仲裁模块判断所述输出数据不需要进行所述中间处理,所述数据处理子模块还配置为将所述输出数据存入所述数据存储子模块,之后所述输出数据被提供至所述第二主干网络基础模块。
例如,在至少一个示例中,所述数据存储子模块还配置为存储已有数据,所述数据处理子模块还配置为使用所述输出数据和所述已有数据进行所述中间处理以得到所述中间结果。
例如,在至少一个示例中,所述数据处理与存储模块还配置为通过系统总线与所述数据处理装置之外通信,获取所述已有数据并将所述已有数据存储在所述数据存储子模块。
例如,在至少一个示例中,所述数据处理装置还包括系统输入接口和系统输出接口,其中,所述系统输入接口和所述系统输出接口配置为与系统总线通信。
例如,在至少一个示例中,所述多个主干网络基础模块彼此级联,彼此相邻的两个主干网络基础模块中,在前的主干网络基础模块的输出数据将被提供至在后的主干网络基础模块作为所述在后的主干网络基础模块的输入数据,所述多个主干网络基础模块包括起始主干网络基础模块和结尾主干网络基础模块,所述起始主干网络基础模块配置为通过所述系统输入接口接收来自所述数据处理装置之外的外部输入数据并进行处理,所述结尾主干网络基础模块配置为通过所述系统输出接口输出处理后需要提供至所述数据处理装置之外的对外输出数据。
例如,在至少一个示例中,所述时分复用仲裁模块还配置为根据接收的配置信息对所述多个主干网络基础模块、数据处理与存储模块进行配置。
例如,在至少一个示例中,所述多个主干网络基础模块中至少一个包括多个级联的存算一体组合,在彼此相邻的两个存算一体组合中,在前的存算一体组合的输出数据将被提供至在后的存算一体组合作为所述在后的存算一体组合的输入数据,每个存算一体组合包括存算一体阵列和后处理单元,所述后处理单元配置为对所述存算一体阵列的计算结果进行处理,并将处理后的计算结果输出。
本公开的至少一个实施例提供了一种计算机系统,所述计算机系统包括:控制单元、系统总线以及多个上述实施例的数据处理装置,其中,所述控制单元、所述多个数据处理装置通过所述系统总线通信,所述控制单元配置为接收配置信息并将所述配置信息提供至所述数据处理装置中至少一个,并配置为进行数据流调度。
本公开的至少一个实施例提供了一种上述实施例的计算机系统的操作方法,所述操作方法包括:由所述控制单元获取所述配置信息和用于计算的输入数据,并且将所述配置信息和所述用于计算的输入数据提供至所述多个数据处理装置中至少一个,由所述多个数据处理装置根据所述配置信息各自进行配置,并且对所述用于计算的输入数据进行处理。
例如,在至少一个示例中,所述配置信息包括配置所述多个数据处理装置中被选择的数据处理装置的主干网络基础模块的数据流和中间特征图的信息。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A示出了一种具有1T1R结构的忆阻器单元的示意图。
图1B示出了一种具有2T2R结构的忆阻器单元的示意图。
图2示出了一种示例性忆阻器阵列结构的示意图。
图3示出了根据本公开至少一实施例的主干网络基础模块的示例性示意图。
图4A示出了ResNet神经网络中的一种残差连接块。
图4B示出了与图4A对应的主干网络基础模块的硬件模型。
图5示出了根据本公开至少一实施例提供的数据处理装置示意图。
图6示出了根据本公开至少一实施例的数据处理装置的示意图。
图7示出了根据本公开的至少一个实施例提供了一种计算机系统的示意图。
图8示出了根据本公开实施例的一种计算机系统的操作方法的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另作定义,此处使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在目前的基于冯诺依曼的神经网络硬件和系统中,计算硬件面临了极大压力:因为存储资源和访存带宽的限制,卷积运算的两个操作数(权重和特征图)需要频繁地在有限的存储和计算模块中来回搬运,所以计算效率也受到了硬件资源的限制。但是,现有存算一体芯片设计或为支持通用场景,互联、存储、逻辑开销大;而且,因为模拟计算和数字计算的耗时比例,导致互联上的带宽占用极低;现有存算一体芯片设计或是针对特定场景ASIC设计,不能满足通用的需要,或需要复杂的调度才能满足主干网络对于灵活调度多尺度特征输出的需求。
如上所述,现在基于CMOS的通用加速器(如GPU)和领域通用处理架构(DSA),除了面临存储墙、性能功耗等问题外,并没有做针对主干神经网络进行优化,或没有利用“冷冻主干”的新理念进行更具有针对性的设计。基于存算一体的硬件系统也未能进一步针对主干网络,或利用“冷冻主干”的新思路,进行特殊设计,从系统级别(软件、硬件兼顾)针对主干网络进行存算一提芯片与系统的设计。
忆阻器(例如,阻变存储器、相变存储器、导电桥存储器等)是一种可以通过施加外部激励,调节其电导状态的非易失型器件。忆阻器作为一种二端器件,具有电阻可调节且非挥发的特性,因此被广泛应用于存算一体运用,例如用于人工神经网络的前向计算(推理)等。根据基尔霍夫电流定律和欧姆定律,由忆阻器构成的阵列可以用于并行的完成矩阵向量乘法(乘累加)计算,且存储和计算都发生在阵列各器件中。基于这种计算架构,可以实现不需要大量数据搬移的存算一体计算。
本公开的一个或多个实施例提供了一种针对主干网络优化的存算一体芯片架构设计和系统设计方法,并且例如至少一个示例支持多尺度特征图输出,并且例如至少一个示例还支持可以将主干网络灵活迁移在不同应用场景之中。
本公开的一个或多个实施例基于面向神经网络中的冷冻主干的思路,提供了基于存算一体的处理器架构与硬件系统。例如,在架构层面上,针对主干网络提供了各种适用的基本运算单元(或基础模块),由此可以进一步在此基础上提供可配置的、支持多尺度特征图输出的存算一体架构;在系统层面上,提供一种针对主干网络的存算一体硬件的数据调度模式。
本公开的这些实施例可以解决目前神经网络计算系统中的“存储墙”问题,并且其中一些实施例还可以解决芯片设计额外开销大、带宽占用低、不支持或难以灵活支持多尺度特征图输出的问题。
图1A示出了一种具有1T1R结构的忆阻器单元的示意图。如图1A所示,1T1R结构的忆阻器单元包括一个晶体管M1和一个忆阻器R1。例如,当晶体管M1采用N型晶体管时,其栅极和字线WL连接,例如字线WL输入高电平时晶体管M1导通;晶体管M1的第一极可以是源极并被配置为和源线SL连接;晶体管M1的第二极可以是漏极并被配置为和忆阻器R1的第二端连接,忆阻器R1的第一端和位线BL连接。
图1B示出了一种具有2T2R结构的忆阻器单元的示意图。如图1B所示,2T2R结构的忆阻器单元包括两个晶体管M1和M2以及两个忆阻器R1和R2。
图2示出了一种示例性忆阻器阵列结构的示意图。如图2所示,该忆阻器阵列由多个忆阻器单元构成,该多个忆阻器单元构成一个M行N列的阵列,M和N均为正整数(例如大于2,可以为100或更多)。每个忆阻器单元包括开关元件和一个或多个忆阻器。在图2中,WL<1>、WL<2>……WL<M>分别表示第一行、第二行……第M行的字线,每一行的忆阻器单元电路中的开关元件的控制极(例如晶体管的栅极)和该行对应的字线连接;BL<1>、BL<2>……BL<M>分别表示第一行、第二行……第M行的位线,每行的忆阻器单元电路中的忆阻器和该行对应的位线连接;SL<1>、SL<2>……SL<N>分别表示第一列、第二列……第N列的源线,每一列的忆阻器单元电路中的晶体管的源极和该列对应的源线连接。
图2的忆阻器阵列中的忆阻器单元例如可以为1T1R结构或者2T2R结构。对于2T2R结构,如果两个晶体管是同一类型,则两个晶体管的栅极可以连接到同一条字线,而两个忆阻器连接不同的两条位线,即阵列中一行具有一条字线和两条位线;如果两个晶体管是不同类型,则两个晶体管的栅极可以连接到不同的两条字线,而两个忆阻器连接不同的两条位线,即阵列中一行具有两条字线和两条位线。
例如,神经网络层的权重矩阵可以映射为忆阻器阵列的电导值矩阵,待处理的数据作为输入映射为阵列字线的输入电压,处理结果则由阵列源线的输出电流表示。通过输入小于忆阻器阵列中各个忆阻器的阈值电压的电压差,就可以利用忆阻器的电导进行前向计算(例如矩阵向量乘法运算)。
为了进行矩阵向量乘法计算,首先,将矩阵元素的值(例如神经网络的权重值)映射为忆阻器阵列中对应的忆阻器单元中的忆阻器的阻值;其次,向量的各个数据元素在经数模转换后作为输入电压施加到各条位线上,对各条字线施加晶体管开启电压使得各晶体管一同导通且工作在线性区,在各条源线上施加固定电压(例如接地电压)。因此,对于忆阻器阵列中的各个忆阻器上施加了电压差(即对应的一行共用的位线BL上施加的输入电压减去在对应的源线SL上施加的固定电压),由此在忆阻器上有电流产生,一列忆阻器单元产生的电流在对应的源线SL上汇聚作为输出电流。该矩阵向量乘法计算具体如下进行。根据基尔霍夫定律,忆阻器阵列的输出电流可以根据下述公式得出:
其中,Vi为忆阻器阵列中第i行的位线上BL的输入电压,Gij为忆阻器阵列的第i行第j列的忆阻器的电导值,Ij为忆阻器阵列第j列源线SL上的输出电流,Vsl计算过程中在忆阻器阵列的源线SL上施加的固定电压。
根据本公开的至少一个实施例,每个主干网络基础模块基于存算一体架构且配置为实现可复用的单个神经网络层或包括多个神经网络层的组合的操作。
图3示出了根据本公开至少一实施例的主干网络基础模块的示例性示意图。如图3所示,在至少一个实施例中,主干网络基础模块300包括多个(2或以上)级联的存算一体组合,例如存算一体组合301~30n(n大于等于2),对输入数据根据配置的神经网络算法逐级进行处理。如图所示,在彼此相邻的两个存算一体组合中,例如,对于存算一体组合301和302,在前的存算一体组合301的输出数据将被提供至在后的存算一体组合302作为在后的存算一体组合302的输入数据,以进行进一步处理。
在至少一个示例中,每个存算一体组合包括存算一体阵列和后处理单元,后处理单元配置为对存算一体阵列的计算结果进行处理,并将处理后的计算结果输出;存算一体阵列例如为忆阻器阵列。在主干网络基础模块300中,存算一体组合301~30n每个中的存算一体阵列的配置(例如矩阵规模大小、代表权重的电导值等)可以根据要完成的计算设置,可以相同或不同。
在至少一个示例中,主干网络基础模块被实现为可复用的基本功能模块,如ResNet中的残差连接块,例如EfficientNet中的MBConv模块等,本公开的实施例对此不作限制。本公开这里以ResNet中的一种残差连接块为例进行说明。
图4A示出了ResNet中的一种残差连接块,该残差连接块包括三个卷积层,每个卷积层的激活函数均为线性整流函数(ReLu,Rectified Linear Unit)。输入数据为256个通道,第一卷积层采用大小为1*1、通道数为64的卷积核进行卷积操作;第二卷积层采用大小为3*3、通道数为64的卷积核进行卷积操作;第三卷积层采用大小为1*1、通道数为256的卷积核进行卷积操作;并且,如图所示。输入数据与第三卷积层的输出数据相加之后再进入后续处理。
图4B示出了与图4A对应的主干网络基础模块的硬件模型。如图4B所示,对应于ResNet的残差连接块,主干网络基础模块400包括三个子模块(对应于上述存算一体组合)401~403,它们分别对应于图4A所示的三个卷积层,三个子模块401~403的互联方式与算法中的三个卷积层对应。主干网络基础模块400中的每个子模块的卷积计算单元通过存算一体计算阵列实现,三个子模块401~403中设置的三个阵列分别实现算法中的三层卷积。并且,对应于采用3*3卷积核的第二卷积层,子模块402中的计算阵列子前还设有行缓冲器(LineBuffer)进行数据缓存和展平,即这里将输入特征图中的数据按照3*3的卷积核取出,并进行排布展开后送入阵列计算。行缓冲器的尺寸定制为刚好能存放下供3*3卷积核启动运算的特征图大小即可。另一方面,对应于分别采用1*1卷积核的第一卷积层和第三卷积层,子模块401和403的计算阵列前可无需配置行缓冲器以节省硬件资源。此外,在每个子模块中,在计算阵列后还设有一个后处理单元,该后处理单元负责对计算阵列进行计算后的结果,根据需要再进行例如移位、累加、激活函数等处理操作。
在本公开的至少一个示例中,由于ResNet的主干网络基础模块需要支持跳层相加,即第一层的输入数据要和最后一层的输出数据进行相加(如图4A中的曲线箭头所示的数据流),在图4B中,子模块403的输出数据和来自输入数据流的这两部分数据通过同一接口向外传输。如图4B所示,在至少一个示例中,主干网络基础模块400还在出口处包括时分复用仲裁单元404,该分复用仲裁单元404确定如何处理这两部分数据。如果时分复用仲裁单元404确定只有一路数据流有效,那么根据数据流携带的身份信息(即是来自第一层输入还是最后一层输出),将该数据流的数据直接输出到主干网络基础模块400外;如果时分复用仲裁单元404确定两路数据同时有效,则采用轮询的策略依次转发这两部分数据到主干网络基础模块400外,并且例如同步传输其身份信息。
本公开的至少一实施例提供一种数据处理装置,该数据处理装置使用多个主干网络基础模块以实现数据处理功能。
图5示出了根据本公开至少一实施例提供的数据处理装置示意图;如图5所示,该数据处理装置500包括多个主干网络基础模块501-1~501-n(n大于等于2)、时分复用仲裁模块502、数据处理与存储模块503、装置内总线504。多个主干网络基础模块501-1~501-n、时分复用仲裁模块502、数据处理与存储模块503通过装置内总线505互联,从而实现通信连接。例如每个主干网络基础模块参见如上所述的实施例,例如一个具体示例为对应于图4B所示的情形,每个主干网络基础模块基于存算一体架构且配置为实现可复用的单个神经网络层或包括多个神经网络层的组合的操作。
时分复用仲裁模块502配置为对装置内总线的使用进行调度,例如,还可以与主干网络基础模块中的时分复用仲裁单元(如图4B所示的时分复用仲裁单元404)进行交互。
数据处理与存储模块503配置为对于来自多个主干网络基础模块中任一的输出数据进行处理和存储。
在至少一个示例的数据处理装置中,在多个主干网络基础模块中任两个主干网络基础模块之中,例如主干网络基础模块501-1和主干网络基础模块501-2(但不限于这两个模块,而且也不限于在级联中彼此相邻的两个模块),其中一个主干网络基础模块(例如主干网络基础模块501-1)输出的输出数据将通过装置内总线505被提供至另一个(例如主干网络基础模块501-2),作为该另一个主干网络基础模块的输入数据。
在至少一个示例的数据处理装置中,相邻的两个主干网络基础模块之中,例如,其中一个(例如主干网络基础模块501-1)输出的输出数据在被提供至另一个(例如主干网络基础模块501-2)之前,将被发送至数据处理与存储模块503暂存,时分复用仲裁模块502判断该输出数据是否需要被进行中间处理并进行调度。
在至少一个示例的数据处理装置中,数据处理与存储模块503包括数据处理子模块5031和数据存储子模块5032,响应于时分复用仲裁模块502判断一个主干网络基础模块(例如模块501-1)输出的输出数据需要被进行中间处理,得到中间结果,并将中间结果存入数据存储子模块5032,之后中间结果被提供至另一个主干网络基础模块(例如模块501-2),或者,响应于时分复用仲裁模块502判断一个主干网络基础模块(例如模块501-1)输出的输出数据不需要进行中间处理,数据处理子模块5031将该输出数据存入数据存储子模块5032,之后输出数据被提供至另一个主干网络基础模块(例如模块501-2)。
在至少一个示例的数据处理装置中,数据存储子模块5032可以存储例如来自数据处理装置之外的已有数据,数据处理子模块5031可以使用从主干网络基础模块(例如模块501-1)获得的输出数据和该已有数据进行中间处理以得到中间结果。
在至少一个示例的数据处理装置中,数据处理与存储模块503可以通过系统总线505与数据处理装置之外通信,获取已有数据并将已有数据存储在数据存储子模块5032。
在至少一个示例中,如图5所示,示例性的数据处理装置还包括系统输入接口506和系统输出接口507,其中,系统输入接口506和系统输出接口507可以系统总线(如下所述)通信。
在至少一个示例的数据处理装置中,多个主干网络基础模块501-1~501-n彼此级联,彼此相邻的两个主干网络基础模块中,在前的主干网络基础模块的输出数据将被提供至在后的主干网络基础模块作为在后的主干网络基础模块的输入数据。并且,多个主干网络基础模块包括起始主干网络基础模块和结尾主干网络基础模块,起始主干网络基础模块配置为通过系统输入接口接收来自数据处理装置之外的外部输入数据并进行处理,结尾主干网络基础模块配置为通过系统输出接口输出处理后需要提供至数据处理装置之外的对外输出数据。在图5所示的实施例中,起始主干网络基础模块为模块501-1,而结尾主干网络基础模块为模块501-n。
在至少一个示例的数据处理装置中,时分复用仲裁模块502还配置为根据接收的配置信息对多个主干网络基础模块501-1~501-n、数据处理与存储模块503进行配置。例如,对于多个主干网络基础模块501-1~501-n例如对于这些基础模块的中间特征输出的操作配置、读写使能、读写地址等进行配置。
图6示出了根据本公开至少一实施例的数据处理装置的示意图,该数据处理装置例如实现为计算块(Tile)600。如图6所示,该计算块600包括多个主干网络基础模块n1、n2、n3.....,这些主干网络基础模块根据各自要实现的计算功能而可以具有相同或不同的具体结构,例如可以参考图4A和图4B所述,根据神经网络的主干网络确定,例如上述ResNet中的残差连接块、EfficientNet中的MBConv等,本公开的实施例对此不作限制。例如,每个计算块内可部署的主干网络基础模块的数量可以根据目标带宽占用情况等因素确定,本公开的实施例对此不作限制。
该计算块600还包括时分复用仲裁模块602、数据处理与存储模块603、子总线(装置内总线)605。该子总线605为硬件资源开销小的时分复用类型的总线,但也可以采用AXI总线等实现,本公开的实施例对此不作限制。多个主干网络基础模块、时分复用仲裁模块602、数据处理与存储模块603通过子总线605通信连接。时分复用仲裁模块602配置为对子总线605的使用进行调度;数据处理与存储模块603配置为对于来自多个主干网络基础模块中任一的输出数据进行处理和存储。
如图6所示,各个存算一体主干模块之间通过子总线的互联,由时分复用仲裁模块602进行调度。时分复用仲裁模块602根据主干网络基础模块的输出带宽占用情况和输入数据带宽要求,分时批准各个主干网络基础模块利用子总线605传输数据。
这些主干模块中根据要实现的神经网络的功能彼此级联,对于彼此相邻的任意两个主干网络基础模块中,例如对于主干网络基础模块n1和n2,在前的主干网络基础模块n1的输出数据将被提供至在后的主干网络基础模块n2作为在后的主干网络基础模块n2的输入数据。同样地,这些主干网络基础模块包括在级联中作为起始的主干网络基础模块n1和作为结尾的主干网络基础模块(图中未示出)。起始主干网络基础模块n1通过系统输入接口接收来自数据处理装置之外的外部输入数据(例如图6中的输入数据流)并进行处理,结尾主干网络基础模块通过系统输出接口输出处理后需要提供至数据处理装置之外的对外输出数据(例如图6中的输出数据流且输出至系统总线)。
同样地,对于这些主干网络基础模块中任意两个,如上所述,例如主干网络基础模块n1和主干网络基础模块n2,主干网络基础模块n1输出的输出数据将通过子总线605被提供至主干网络基础模块n2,作为主干网络基础模块n2的输入数据。
而且,主干网络基础模块n1输出的输出数据在被提供至主干网络基础模块n2之前,被发送至数据处理与存储模块603暂存,而且时分复用仲裁模块602判断输出数据是否需要被进行中间处理并进行调度。
如图6所示,数据处理与存储模块603包括数据处理子模块6031和数据存储子模块6032。数据处理子模块6031例如具有“直连”和“计算”两种功能,前者表示将接收的数据直接转发(未做任何处理)至数据存储子模块6032,而后者表示使用接收的数据和从数据存储子模块6032获取的数据进行中间处理以得到中间结果,然后再发送中间结果。数据存储子模块6032用于存储中间结果或其他中间数据,例如可以通过静态随机存储器(SRAM)实现。
下面进一步结合图6对上述计算块600的工作方式进行说明,图6中的虚线箭头代表控制流,实线箭头代表数据流。一个示例性的数据流描述如下:
1)①表示一个主干网络基础模块(例如起始的主干网络基础模块n1)的输出数据,该输出数据例如包括数据流信息与实际数据,由主干网络基础模块中的时分复用仲裁单元(例如参见图4B)调度后发送出;
2.各个主干网络基础模块的输出数据都经过计算块600中的时分复用仲裁模块602调度后,依次使用总线605;
3.②表示获得总线605的资源的数据(例如上述输出数据)会传入数据处理与存储模块603;
4.时分复用仲裁模块602根据②表示的数据是否需要和已有数据进行处理(例如上述残差连接块中的跳层相加),而且进行相应的调度。如果需要进行处理,则③表示从数据处理与存储模块603中的存储子模块6032(例如SRAM)提取的已有数据,③表示的已有数据与②表示的数据在处理子模块6031中被进行处理(例如计算)之后,④表示的处理后的处理结果被写入存储子模块6032;反之,如过不需要处理,则②表示的数据则从处理子模块6031直接写入存储子模块6032,这种情形④表示被直接转发的数据。
5.⑤表示在存储子模块6032存储的中间结果(例如前面的处理结果)可以经计算块600内的总线605,且经过时分复用仲裁模块602调度后被传输,且以⑥表示的输入数据送入目的主干网络基础模块。
并且如图所示,存储子模块6032可以将其中暂存的中间结果经系统总线向计算块外提供,或者经系统总线从计算块600外获取计算块600需要使用的数据(例如上述已有数据)。
如上所述,数据处理与存储模块603在上述流程中,既承担了中间结果的处理功能,也同时支持了将中间结果的存储(暂存)。通过以上步骤直至整个计算块600内的所有主干网络基础模块都进行了数据传输。例如,输出的数据可以分为两部分,其中,第一部分由计算块600内的最后一个主干网络基础模块在运算处理后,通过系统总线例如直接送入下一个计算块进行后续神经网络运算;第二部分为保存在数据处理与存储模块603中的中间结果,这些中间结果在需要被读出使用时,通过时分复用仲裁模块602配置了读操作之后,通过系统总线例如以DMA方式读出。
本公开的至少一个实施例提供了一种计算机系统,图7给出了该计算机系统的示意图,如图7所示,计算机系统700包括:控制单元703、系统总线702以及多个数据处理装置701。控制单元702、多个数据处理装置701通过系统总线702互连并通信,控制单元702配置为接收配置信息并将配置信息提供至数据处理装置701中至少一个,并配置为进行数据流调度。计算机系统700还可以包括内存704、DMA控制器705等,内存704、DMA控制器705也通过系统总线702与控制单元703、多个数据处理装置701互连并通信。该计算机系统700根据需要还可以包括其他一个或多个功能模块,本公开的实施例对此不作限制。
多个数据处理装置701例如如图5或图6所示的数据处理装置,每个数据处理装置701可以包括多个如图3所示的主干网络基础模块,各个数据处理装置701通过系统总线进行互联。该计算机系统系统根据所部署的神经网络的规模,可以包括多个数据处理装置,每个数据处理装置根据各自要实现的计算功能而可以具有相同或不同的具体结构。例如,控制单元可以是微控制单元(MCU)、CPU等,用于接受外部配置并进行数据流调度;直接存储访问(DMA)控制器、内存(例如DDR)用于实现高效的数据搬运。系统总线702可以为AXI总线、PCIe总线等。
本公开上述实施例中的各种驱动器、处理电路和输入电路可以通过数字电路、模拟电路或它们的任意组合实现。
本公开的至少一个实施例还提供了一种上述计算机系统的操作方法,该操作方法包括:由控制单元获取配置信息和用于计算的输入数据,并且将配置信息和用于计算的输入数据提供至多个数据处理装置中至少一个,由多个数据处理装置根据配置信息各自进行配置,并且对用于计算的输入数据进行处理。
在至少一个示例中,上述配置信息包括配置多个数据处理装置中被选择的数据处理装置的主干网络基础模块的数据流和中间特征图的信息等。
图8示出了根据本公开实施例的一种计算机系统的操作方法的示意图,如图8所示,本公开实施例中,基于主干网络的存算一体硬件的计算机系统的工作流程包括如下的步骤801~803。
步骤801,在工作时先由控制单元获取系统输入,该系统输入包括根据神经网络对于计算机系统的硬件进行配置的配置数据以及用于执行计算任务(例如训练或推理)的输入数据。
步骤802,根据神经网络对于计算机系统硬件进行配置的配置数据配置存算一体主干网络基础模块的数据流、定义需要取出的各尺度中间特征图等,使用输入数据根据提前部署有预训练权重的计算块(存算一体计算阵列)进行运算,输出中间特征(例如多尺度特征)。
步骤803,针对输出的中间特征进行后续处理。例如,根据需求为多尺度特征输出添加其他算子,例如目标检测算法中的检测、分类、排序等后续算子,并且再通过刘如GPU/CPU等计算后,得到最后所需的计算结果。
例如,本公开的至少一实施例还提供了一种电子装置,该电子装置包括上述数据处理装置或计算机系统,例如,该电子装置可以实现为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪、家用电器、通信基站、工业控制器、服务器等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。
Claims (13)
1.一种数据处理装置,包括多个主干网络基础模块、时分复用仲裁模块、数据处理与存储模块、装置内总线,
其中,所述多个主干网络基础模块、所述时分复用仲裁模块、所述数据处理与存储模块通过所述装置内总线通信连接,
每个所述主干网络基础模块基于存算一体架构且配置为实现可复用的单个神经网络层或包括多个神经网络层的组合的操作,
所述时分复用仲裁模块配置为对所述装置内总线的使用进行调度,
所述数据处理与存储模块配置为对于来自所述多个主干网络基础模块中任一的输出数据进行处理和存储。
2.根据权利要求1所述的数据处理装置,其中,所述多个主干网络基础模块包括第一主干网络基础模块和第二主干网络基础模块,
所述第一主干网络基础模块输出的输出数据将通过所述装置内总线被提供至所述第二主干网络基础模块,作为所述第二主干网络基础模块的输入数据。
3.根据权利要求2所述的数据处理装置,其中,所述第一主干网络基础模块输出的输出数据在被提供至所述第二主干网络基础模块之前,将被发送至所述数据处理与存储模块暂存,
所述时分复用仲裁模块还配置为判断所述输出数据是否需要被进行中间处理并进行调度。
4.根据权利要求3所述的数据处理装置,其中,所述数据处理与存储模块包括数据处理子模块和数据存储子模块,
响应于所述时分复用仲裁模块判断所述输出数据需要被进行所述中间处理,得到中间结果,并将所述中间结果存入所述数据存储子模块,之后所述中间结果被提供至所述第二主干网络基础模块,或者
响应于所述时分复用仲裁模块判断所述输出数据不需要进行所述中间处理,所述数据处理子模块还配置为将所述输出数据存入所述数据存储子模块,之后所述输出数据被提供至所述第二主干网络基础模块。
5.根据权利要求4所述的数据处理装置,其中,所述数据存储子模块还配置为存储已有数据,
所述数据处理子模块还配置为使用所述输出数据和所述已有数据进行所述中间处理以得到所述中间结果。
6.根据权利要求5所述的数据处理装置,其中,所述数据处理与存储模块还配置为通过系统总线与所述数据处理装置之外通信,获取所述已有数据并将所述已有数据存储在所述数据存储子模块。
7.根据权利要求1所述的数据处理装置,还包括系统输入接口和系统输出接口,
其中,所述系统输入接口和所述系统输出接口配置为与系统总线通信。
8.根据权利要求7所述的数据处理装置,其中,所述多个主干网络基础模块彼此级联,彼此相邻的两个主干网络基础模块中,在前的主干网络基础模块的输出数据将被提供至在后的主干网络基础模块作为所述在后的主干网络基础模块的输入数据,
所述多个主干网络基础模块包括起始主干网络基础模块和结尾主干网络基础模块,
所述起始主干网络基础模块配置为通过所述系统输入接口接收来自所述数据处理装置之外的外部输入数据并进行处理,所述结尾主干网络基础模块配置为通过所述系统输出接口输出处理后需要提供至所述数据处理装置之外的对外输出数据。
9.根据权利要求1所述的数据处理装置,其中,所述时分复用仲裁模块还配置为根据接收的配置信息对所述多个主干网络基础模块、数据处理与存储模块进行配置。
10.根据权利要求1所述的数据处理装置,其中,所述多个主干网络基础模块中至少一个包括多个级联的存算一体组合,
在彼此相邻的两个存算一体组合中,在前的存算一体组合的输出数据将被提供至在后的存算一体组合作为所述在后的存算一体组合的输入数据,
每个存算一体组合包括存算一体阵列和后处理单元,所述后处理单元配置为对所述存算一体阵列的计算结果进行处理,并将处理后的计算结果输出。
11.一种计算机系统,包括:控制单元、系统总线以及多个根据权利要求1所述的数据处理装置,
其中,所述控制单元、所述多个数据处理装置通过所述系统总线通信,
所述控制单元配置为接收配置信息并将所述配置信息提供至所述数据处理装置中至少一个,并配置为进行数据流调度。
12.一种根据权利要求11的计算机系统的操作方法,包括:
由所述控制单元获取所述配置信息和用于计算的输入数据,并且将所述配置信息和所述用于计算的输入数据提供至所述多个数据处理装置中至少一个,
由所述多个数据处理装置根据所述配置信息各自进行配置,并且对所述用于计算的输入数据进行处理。
13.根据权利要求12的操作方法,其中,所述配置信息包括配置所述多个数据处理装置中被选择的数据处理装置的主干网络基础模块的数据流和中间特征图的信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211639655.4A CN116050491A (zh) | 2022-12-19 | 2022-12-19 | 数据处理装置、计算机系统及其操作方法 |
PCT/CN2023/076167 WO2024130830A1 (zh) | 2022-12-19 | 2023-02-15 | 数据处理装置、计算机系统及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211639655.4A CN116050491A (zh) | 2022-12-19 | 2022-12-19 | 数据处理装置、计算机系统及其操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116050491A true CN116050491A (zh) | 2023-05-02 |
Family
ID=86126579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211639655.4A Pending CN116050491A (zh) | 2022-12-19 | 2022-12-19 | 数据处理装置、计算机系统及其操作方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116050491A (zh) |
WO (1) | WO2024130830A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109409510B (zh) * | 2018-09-14 | 2022-12-23 | 深圳市中科元物芯科技有限公司 | 神经元电路、芯片、系统及其方法、存储介质 |
CN110334799B (zh) * | 2019-07-12 | 2022-05-24 | 电子科技大学 | 基于存算一体的神经网络推理与训练加速器及其运行方法 |
CN112836814B (zh) * | 2021-03-02 | 2024-06-25 | 清华大学 | 存算一体处理器、处理系统以及算法模型的部署方法 |
-
2022
- 2022-12-19 CN CN202211639655.4A patent/CN116050491A/zh active Pending
-
2023
- 2023-02-15 WO PCT/CN2023/076167 patent/WO2024130830A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024130830A1 (zh) | 2024-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11164074B2 (en) | Multi-core systolic processor system for neural network processing | |
CN109034373B (zh) | 卷积神经网络的并行处理器及处理方法 | |
US11126549B2 (en) | Processing in-memory architectures for performing logical operations | |
CN109409510B (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
WO2020133317A1 (zh) | 计算资源分配技术及神经网络系统 | |
CN110738308B (zh) | 一种神经网络加速器 | |
EP3685319A1 (en) | Direct access, hardware acceleration in neural network | |
CN113792010A (zh) | 存算一体芯片及数据处理方法 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
CN112119459A (zh) | 用于张量数据的存储器布置 | |
CN108804973B (zh) | 基于深度学习的目标检测算法的硬件架构及其执行方法 | |
CN111210019B (zh) | 一种基于软硬件协同加速的神经网络推断方法 | |
WO2020133463A1 (zh) | 神经网络系统及数据处理技术 | |
JP2022539662A (ja) | 分散処理を加速させるパイプライン並列化のためのシステムおよび方法 | |
CN111048135A (zh) | 一种基于忆阻器内存计算的cnn处理装置及其工作方法 | |
US20220328099A1 (en) | Method and apparatus for performing a mac operation in a memory array | |
CN114519425A (zh) | 一种规模可扩展的卷积神经网络加速系统 | |
CN116050491A (zh) | 数据处理装置、计算机系统及其操作方法 | |
CN111886605B (zh) | 针对多个输入数据集的处理 | |
US20220335283A1 (en) | Systems and methods for accelerated neural-network convolution and training | |
CN109583577B (zh) | 运算装置及方法 | |
KR20240025540A (ko) | 깊이별 콘볼루션을 위한 메모리 아키텍처에서의 컴퓨테이션 | |
US12106822B2 (en) | Memory array with programmable number of filters | |
Oh et al. | Hardware-Specific Optimization for Mapping of Convolutional Neural Networks to Memristor Crossbars | |
CN111126582B (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 |