CN114564429A - 轻量级智能计算紧耦合结构及其数据处理方法 - Google Patents
轻量级智能计算紧耦合结构及其数据处理方法 Download PDFInfo
- Publication number
- CN114564429A CN114564429A CN202210129546.1A CN202210129546A CN114564429A CN 114564429 A CN114564429 A CN 114564429A CN 202210129546 A CN202210129546 A CN 202210129546A CN 114564429 A CN114564429 A CN 114564429A
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- intelligent
- input data
- unit
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/08—Learning methods
-
- 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
Abstract
本申请提供一种轻量级智能计算紧耦合结构和数据处理方法。轻量级智能计算紧耦合结构包括:内存、主处理器及协处理器。内存包括内核空间和用户空间,用户空间设有共享区;主处理器用于对输入数据进行预处理,以对输入数据进行格式转换;协处理器用于对格式转换后的输入数据进行智能加速运算,协处理器、内存及主处理器挂载在同一总线上,协处理器与主处理器通过共享区进行输入数据的访问,输入数据依次通过总线、内核空间传输至共享区。本申请的轻量级智能计算紧耦合结构和数据处理方法中,主处理器和协处理器形成紧耦合模式,提高数据的存取效率、减少访存能耗。
Description
技术领域
本申请涉及嵌入式人工智能领域,更具体而言,涉及一种轻量级智能计算紧耦合结构和应用轻量级智能计算紧耦合结构的数据处理方法。
背景技术
人工神经网络被广泛应用于负荷的分类识别,但是目前的硬件加速器的研究大多面向服务器或高性能计算中心,主要关注点是加速性能而忽略了资源消耗和功耗预算,虽然有着很高的计算加速性能,但是无法在资源受限的电力终端设备中应用。同时,它们的灵活性很难支持变化的电力负荷的分析。
在加速器模式下,需要做来回的数据迁移,需要将数据从用户空间搬到内核空间,调用系统模式的驱动方式启动加速器,再从内核空间将数据搬移到用户空间。松耦合的加速器和主处理器导致数据空间独立,需要解决在内核空间和用户空间的数据搬移问题。
发明内容
本申请实施方式提供一种轻量级智能计算紧耦合结构及应用轻量级智能计算紧耦合结构的数据处理方法,至少用于解决在内核空间和用户空间的数据搬移问题。
本申请实施方式的轻量级智能计算紧耦合结构包括内存、主处理器、及协处理器。所述内存包括内核空间和用户空间,所述用户空间设有共享区。所述主处理器用于对输入数据进行预处理,以对所述输入数据进行格式转换;所述协处理器用于对格式转换后的所述输入数据进行智能加速运算,所述协处理器、所述内存及所述主处理器挂载在同一总线上,所述协处理器与所述主处理器通过所述共享区进行所述输入数据的访问,所述输入数据依次通过所述总线、所述内核空间传输至所述共享区。
本申请实施方式的应用轻量级智能计算紧耦合结构的数据处理方法包括:从图像传感器中读取输入数据,以将所述输入数据存储到内存中的共享区,所述共享区设于所述内存的用户空间,所述输入数据的读取由主处理器控制通过总线传输到所述内存的内核空间,再将所述输入数据搬移至所述共享区。根据所述输入数据进行预处理,以使所述主处理器对所述输入数据进行格式转换。从所述共享区获取所述输入数据,并通过协处理器对格式转换后的所述输入数据进行智能加速运算,所述协处理器、所述内存及所述主处理器挂载在所述总线上。
本申请的轻量级智能计算紧耦合结构及其数据处理方法中,主处理器、协处理器和内存均挂载在同一总线上,且内存的用户空间设置共享区,主处理器和协处理器形成紧耦合模式,主处理器和协处理器可通过共享区进行数据的访问,避免出现协处理器和主处理器需要不停地进行来回的数据迁移的情况,解决在内核空间和用户空间之间的数据来回搬移的问题,从而提高数据的存取效率、减少访存能耗。
本申请的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实施方式的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1是本申请某些实施方式的轻量级智能计算紧耦合结构的示意图;
图2是本申请某些实施方式的轻量级智能计算紧耦合结构中的数据寄存单元的示意图;
图3和图4是本申请某些实施方式的数据处理方法的流程图;
图5是本申请某些实施方式的数据处理方法中根据输入数据和权重数据获取输出数据的示意图;
图6和图7是本申请某些实施方式的数据处理方法的流程图。
具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请的实施方式,而不能理解为对本申请的实施方式的限制。
请参阅图1,本申请提供一种轻量级智能计算紧耦合结构100,该轻量级智能计算紧耦合结构100包括内存10、主处理器30及协处理器50。内存10包括内核空间11和用户空间13,用户空间13设有共享区131。主处理器30用于对输入数据进行预处理,以对输入数据进行格式转换。协处理器50用于进行智能加速运算。协处理器50、内存10及主处理器30挂载在同一总线上,协处理器50与主处理器30通过共享区131进行输入数据的访问,输入数据依次通过总线、内核空间11传输至共享区131。
通常,在加速器模式下,需要做来回的数据迁移,需要将数据从用户空间搬到内核空间,调用系统模式的驱动方式启动加速器,再从内核空间将数据搬移到用户空间。松耦合的加速器和主处理器导致数据空间独立,需要解决在内核空间和用户空间的数据搬移问题。
本申请的轻量级智能计算紧耦合结构100中,主处理器30、协处理器50和内存10均挂载在同一总线上,且内存10的用户空间13设置共享区131,主处理器30和协处理器50形成紧耦合模式,主处理器30和协处理器50可通过共享区131进行数据的访问,避免出现协处理器50和主处理器30需要不停地进行来回的数据迁移的情况,解决在内核空间11和用户空间13之间的数据来回搬移的问题,从而提高数据的存取效率、减少访存能耗。
具体地,在轻量级智能计算紧耦合结构100中,智能加速部件以协处理器50的形式整合到主处理器30的主流水线中。输入数据可为图像传感器200获取得到的图像数据,图像传感器200同主处理器30、协处理器50、内存10一起挂载在同一总线上,使得图像传感器200的图像数据可先依次经过总线、内核空间11传输至共享区131。更具体地,在进行智能加速运算过程中,由主处理器30先控制图像传感器200的输入数据通过总线传输到内存10中的内核空间11,再将输入数据搬移至用户空间13中的共享区131。后续,主处理器30便可经总线后从共享区131直接读取输入数据,并对输入数据进行预处理,以对输入数据进行格式转换等操作,实现输入数据的存储访问和数据流维护的性能提升,提高内存访问的数据存储效率。当主处理器30控制启动协处理器50时,协处理器50可经总线直接从共享区131中读取经主处理器30进行预处理后的输入数据对预处理后的输入数据进行智能加速运算,而不用协处理器50在执行智能加速运算时需要等待更长的内存访问时间,提高智能加速运算过程中对协处理器50的利用率。。
主处理器30可包括通用寄存器31,通用寄存器31用于存储运算(普通指令执行)过程中和译码过程中产生的中间数据或者格式转换后的输入数据。
在某些实施方式中,轻量级智能计算紧耦合结构100还可包括第一存储管理单元20和第二存储管理单元40,主处理器30通过第一存储管理单元20对内存10进行访问,协处理器50通过第二存储管理单元40对内存10进行访问。
具体地,第一存储管理单元20和第二存储管理单元40均为内存管理单元(MemoryManagement Unit,MMU),用于将虚拟地址转换成物理地址。其中,第一存储管理单元20用于将在内存10访问的数据的虚拟地址映射为主处理器30中的物理地址。第二存储管理单元40用于将在内存10访问的数据的虚拟地址映射为协处理器50中的物理地址。主处理器30访问内存10时,主处理器30执行访问内存10的指令自动引发第一存储管理单元20做查表和地址转换操作。如,主处理器30发出的虚拟地址(该虚拟地址为将要在内存10中访问的数据的虚拟地址)被第一存储管理单元20截获,第一存储管理单元20通过查找页表确定该虚地址应该映射到哪一个物理地址,第一存储管理单元20将映射得到的物理地址发给主处理器30,主处理器30根据该物理地址对通用寄存器31进行访问,以获取存储在通用寄存器31中与该物理地址对应的操作数。同样地,协处理器50访问内存10时,协处理器50执行访问内存10的指令自动引发第二存储管理单元40做查表和地址转换操作,将虚拟地址转换为协处理器50中的物理地址,协处理器50根据该物理地址对协处理器50中的层次化存储结构59进行访问,以获取存储在层次化存储结构59中与该物理地址对应的操作数。
请继续参阅图1,协处理器50可包括指令队列单元51、智能计算指令译码单元53、智能计算单元55、参数寄存单元57及层次化存储结构59。
其中,指令队列单元51用于暂存智能计算指令。智能计算指令译码单元53用于对从指令队列单元51取出的智能计算指令进行译码以输出第一控制信息。智能计算指令由智能计算指令译码单元53进行译码,并利用译码后的第一控制信息实现对智能计算单元55或层次化存储结构59的控制,例如,译码后的第一控制信息可包括访问类控制信息和智能运算类控制信息,智能计算指令译码单元53可根据访问类控制信息对存储在层次化存储结构59中的数据进行访问,而智能计算单元55则可根据智能运算类控制信息执行智能加速运算。参数寄存单元57用于存储固定参数以供智能计算单元55调用,即,智能计算单元55可从参数寄存单元57中读取固定参数,并利用读取的固定参数与传输至智能计算单元55中的第一控制信息(智能运算类)进行智能加速运算。层次化存储结构59用于存储智能计算单元55进行智能加速运算后的数据,层次化存储结构59还用于暂存智能计算指令译码单元译码后得到的第一控制信息。
本实施方式中,智能计算单元55可包括核心计算单元551、激活计算单元553和池化计算单元555。智能计算单元55实现的智能加速运算为对输入数据执行的卷积计算,智能计算单元55可通过第二存储管理单元40、总线在共享区131中访问提前存储的图像传感器200的输入(图像)数据,并实现对输入数据的卷积运算。
具体地,核心计算单元551用于实现智能计算过程中的卷积层、全连接层和归一化(Batch Normalization,BN)层的计算。激活计算单元553用于实现智能计算过程中的激活函数计算,激活函数可包括Relu、Relu6以及Lrelu等,具体可通过层次化存储结构59完成激活函数的计算。池化计算单元555主要实现智能加速运算过程中的池化计算,对输入数据进行降维压缩,以加快运算速度。
更具体地,在本申请中,输入数据为图像传感器200获得的输入特征图,池化计算过程中,核心计算单元551依次计算输入特征图中一行中所有像素点的池化中间结果,并将输入特征图中一个像素点对应的池化中间结果以行存储的方式暂存起来,计算完输入特征图中一行中所有像素点的池化中间结果后,读取存储在层次化存储结构59中的池化中间结果与当前输入特征图(计算完一行后的输入特征图)对应行的数据进行计算,得到更新后的池化中间结果,以此类推,直到计算得到池化输出特征图中某个像素点的输出通道对应的计算结果。
在某些实施方式中,协处理器50的层次化存储结构59可包括片(协处理器50)外的内存10、片上的全局数据缓冲单元591、以及数据寄存单元593。
其中,全局数据缓冲单元591作为片内的第一级缓冲区域,暂存从片外的内存10访存获取的输入数据、权重数据以及即将存储到内存10的输出数据,是片外访存数据的中间缓冲单元。全局数据缓冲单元591可实现数据的边写边读。数据寄存单元593用于存储智能计算单元55进行智能加速运算时计算现场的数据,例如,可用于存储从全局数据缓冲单元591读取的输入数据、存储从全局数据缓冲单元591读取的权重数据、存储智能计算单元55进行智能加速运算中产生的中间数据、及存储经智能计算单元55进行智能加速运算后得到的输出数据。数据寄存单元593还用于将输出数据按照组织形式收集到全局数据缓冲单元591中。
如图1所示,在一个实施例中,智能计算单元55进行智能加速运算中用到的输入数据、权重数据,以及智能加速运算中产生的中间数据和输出数据均可统一暂存在数据寄存单元593中。由此,使得数据寄存单元593结构简单,保证输入数据、权重数据,以及智能加速运算中产生的中间数据和输出数据的存储集成度较高,数据访问路径简单。
如图2所示,在另一个实施例中,数据寄存单元593可包括输入数据向量寄存器5931、部分和向量寄存器5933、权重向量寄存器5935和结果向量寄存器5937。请结合图1,输入数据向量寄存器5931用于存储从全局数据缓冲单元591中读取的输入数据。部分和向量寄存器5933用于存储智能计算单元55进行智能加速运算中产生的中间数据(如部分和)。权重向量寄存器5935用于存储从全局数据缓冲单元591中读取的权重数据。结果向量寄存器5937用于存储智能计算单元55进行智能加速运算最终输出的输出数据。由此,针对不同的数据类型将不同的数据分别存储到不同的寄存器中,提高智能计算单元55对不同类型的数据的访存效率,从而提高智能计算单元55的计算效率。
在一个实施方式中,当智能计算单元55需要从内存10中获取输入数据时,输入数据从内存10到智能计算单元55的传输过程为:输入数据首先从内存10中的共享区131依次经总线和第二存储管理单元40传输至全局数据缓冲单元591中暂存,再由全局数据缓冲单元591传输至数据寄存单元593中,最后传输至智能计算单元55中进行智能加速运算。
在某些实施方式中,当智能计算单元55对输入数据执行智能加速运算完成后得到输出数据,在智能计算单元55进行智能加速运算中用到的输入数据、权重数据,以及智能加速运算中产生的中间数据和输出数据均统一暂存在数据寄存单元593中的情况下,该输出数据从智能计算单元55到内存10的传输过程为:输出数据首先从智能计算单元55传输至数据寄存单元593,再由数据寄存单元593按照组织形式传输至全局数据缓冲单元591中,最后从全局数据缓冲单元591通过第二存储管理单元40和总线传输至内存10的共享区131中。
在其他实施方式中,在数据寄存单元593包括输入数据向量寄存器5931、部分和向量寄存器5933、权重向量寄存器5935和结果向量寄存器5937的情况下,结果向量寄存器5937中的输出数据先传输至全局数据缓冲单元591中,再从全局数据缓冲单元591通过第二存储管理单元40和总线传输至内存10的共享区131中。
请继续参阅图1,轻量级智能计算紧耦合结构100还可包括指令高速缓存(Instruction Cache,Icache)60、数据高速缓存(Data Cache,Dcache)70和编译器80。Icache60可连接在总线和第一存储管理单元20之间。Dcache70也可连接在总线和第一存储管理单元20之间。
编译器80与总线连接,编译器80用于将智能计算程序对应的目标代码进行统一编译,以生成指令。在一个例子中,编译器80编译后得到的指令可经过总线传输至并存储在Icache60中。在另一个例子中,此时,编译器80编译后得到的指令可通过总线传输至内存10中,再从内存10通过总线传输至Icache60中。
Dcache70可用于存储从内存10(尤其是共享区131)经总线传输而来的输入数据(解释同前),也可以存储从内存10经总线传输而来的普通指令对应的操作数(如下文所述)。主处理器30用于从Icache60中读取指令、从Dcache70中读取数据(可为共享区131中的输入数据)、对指令进行译码以生成第二控制信息、以及根据译码后的第二控制信息执行运算。本申请由于设置Icache60存储指令,便于主处理器30直接从Icache60中读取指令,相较于主处理器30从内存10中读取指令而言,有助于提高轻量级智能计算紧耦合结构100的运行速度。
主处理器30执行指令时,可同时从Icache60中读取指令和从Dcache70中读取数据(如共享区131中的输入数据、与指令对应的操作数等),实现取指令和读数据的并行,从而提升数据处理的整体性能。在本申请的实施例中,指令的类型包括普通指令和智能计算指令,普通指令可为算术逻辑运算指令、转移指令等,用于对输入数据进行除卷积运算之外的初步计算。智能计算指令可为自定义扩展指令集,如卷积指令、数据搬移数据等用于卷积运算的指令。在本申请中,普通指令为除了自定义扩展指令集之外的指令。
在指令的具体执行过程中,主处理器30可直接从Icache60中读取指令或经过第一存储管理单元20从内存10中读取指令,并对指令进行一级译码,以区分指令的类型。当指令的类型为普通指令的情况下,主处理器30对普通指令进行二级译码并根据译码后的第二控制信息执行初步运算。主处理器30还用于执行智能计算程序的预处理程序编译后的指令,以对智能计算程序中的数据进行格式转换,如对数据进行归一化转换、定浮点转换等预处理操作,转换成统一的格式以供协处理器50进行智能加速运算。其中,预处理操作可以是初步运算中的一种操作,或者预处理操作时独立于初步运算之外的操作。
主处理器30实现普通指令的执行过程时,可根据普通指令的需要对通用寄存器31进行访存操作,以读取与普通指令对应的操作数,进而用于执行初步运算。其中,普通指令对应的操作数可来自共享区131,普通指令对应的操作数从内存10的共享区131到通用寄存器31的传输路径可以是:先从共享区131经总线传输至第一存储管理单元20,再通过第一存储管理单元20映射传输至通用寄存器31中;或者,先从共享区131经总线传输至Dcache70,再由第一存储管理单元20从Dcache70映射传输至通用寄存器31中。
通常,内存访问能耗占协处理器50运行能耗的主要部分,内存访问的高延迟和低带宽限制了协处理器50中的智能计算单元55的利用率。本申请的实施例中,主处理器30执行完初步运算后,再将初步运算得到的数据(结果)写回到共享区131,使得协处理器30执行智能加速运算时能够从共享区131读取数据(结果),避免协处理器50对内存10中的数据(结果)进行访问时,需要在用户空间13和内核空间11之间进行来回的数据迁移,提高协处理器50对数据的存取效率,减少协处理器50的访存能耗。
当主处理器30对指令进行一级译码得到的指令的类型为智能计算指令时,则将智能计算指令传输至协处理器50的指令队列单元51等待处理。协处理器50接收到智能计算指令后,智能计算指令译码单元53从指令队列单元51中进行取指,并对智能计算指令进行译码,译码得到的第一控制信息将分发给智能计算单元55实现智能计算指令的执行以及根据第一控制信息对协处理器50中的参数寄存单元57、全局数据缓冲单元591和数据寄存单元593进行数据访存。
其中,协处理器50进行智能加速运算过程中用到的数据(如输入数据、权重数据),由智能计算指令译码单元53根据第一控制信息从共享区131按需读取数据到全局数据缓冲单元591,全局数据缓冲单元591对数据进行串并转换、维度变换等处理后分发到数据寄存单元593中。当智能计算单元55进行智能加速运算需要用到主处理器30执行普通指令产生的数据(结果)时,主处理器30可先将普通指令执行过程中产生的数据(结果)暂存到通用寄存器31中,再由智能计算指令译码单元53通过参数寄存单元57对通用寄存器31进行数据访问获取到该数据(结果),实现指令级并行性和数据级并行性。智能计算单元55对输入数据(智能计算指令中包含输入数据的第一控制信息)完成运算后,智能计算单元55将计算得到的输出数据放回数据寄存单元593(或结果向量寄存器5937)中,输出数据在数据寄存单元593中经数据维度变换后写回至全局数据缓冲单元591中,最终,输出数据从全局数据缓冲单元591传回至共享区131中。
通常,智能计算结构多数依赖于硬件动态调度,通过修改寄存器实现数据通路的调整,这导致智能计算结构整体产生了大量硬件调度逻辑,从而引入了非常大的硬件复杂度。
在本申请的实施例中,主处理器30通过分析智能流水线的无关操作,将多个互相无依赖的智能计算指令封装到一条超长的指令字中,即,采用超长指令字架构(Very LongInstruction Word,VLIW)将多个互相无依赖的智能计算指令进行封装,通过在指令执行过程中进行控制,实现了由软件实现控制的静态调度,减少了硬件动态调度的复杂控制逻辑和能耗。在指令的执行过程中,由编译器80来控制当前计算和前一次计算的关系,控制数据的搬移,控制方式简单化,使得轻量级智能计算紧耦合结构100能够获得较高的能耗效率。
对于智能计算指令而言,主处理器30采用RISC-V指令集对智能计算指令进行封装、及对智能计算指令进行扩展,实现适应性结构映射和数据流维护,从而最大程度地降低硬件复杂度和计算能耗,提高计算能效比。
进一步地,对于具有大量数据级并行的指令而言,主处理器30和协处理器50采用单指令流多数据流(Single Instruction Multiple Data,SIMD)结构实现对指令的执行,以在一个指令周期内同时计算多组数据,提高指令执行过程中的运算效率,实现算法适应性和计算性能的平衡。
综上所述,轻量级智能计算紧耦合结构100通过对指令的控制,使得轻量级智能计算紧耦合结构100支持不同数据流、不同计算结构的映射,并且通过控制指令的方法可以实现轻量级智能计算紧耦合结构100中的硬件可重构,使得轻量级智能计算紧耦合结构100的结构灵活,具有可适应性。且轻量级智能计算紧耦合结构100通过使用VLIW+SIMD结构对指令进行封装,进一步实现指令级并行性和数据级并行性,既能够提高执行效率,又保障了计算的灵活性。
基于VLIW和SIMD的轻量级智能计算紧耦合结构100,极大降低了计算能耗,并提升了智能计算性能,且轻量级智能计算紧耦合结构100的结构灵活并具有可适应性,可以实现功耗受限较大场景下的终端智能计算模型的部署和终端智能计算模型的高效计算。
请参阅图1及图3,本申请实施方式还提供一种应用轻量级智能计算紧耦合结构100的数据处理方法,数据处理方法包括:
05:从图像传感器200中读取输入数据,以将输入数据存储到内存10中的共享区131,共享区131设于内存10的用户空间13,输入数据的读取由主处理器30控制通过总线传输到内存10的内核空间11,再将输入数据搬移至共享区131;
06:根据输入数据进行预处理,以使主处理器30对输入数据进行格式转换;及
07:从共享区131获取输入数据,并通过协处理器50对格式转换后的输入数据进行智能加速运算,协处理器50、内存10及主处理器30均挂载在总线上。
方法05中,主处理器30控制将图像传感器200得到的输入数据,通过总线传输至内核空间11中,再将输入数据搬移至用户空间13中的共享区131,主处理器30和协处理器50可直接对共享区131进行访问,避免主处理器30和协处理器50对输入数据进行访问时,需要在内存10中进行输入数据的来回搬移,提高输入数据的存取效率,减少访存能耗。
方法06中,在对输入数据进行智能加速运算前,由主处理器30对输入数据进行预处理,将输入数据进行统一的格式转换后再传输至协处理器50中进行智能加速运算。其中,主处理器30对输入数据进行格式转换后,将输入数据放回到共享区131中,便于协处理器50可从共享区131中直接读取格式转换后的输入数据,提高协处理器50对输入数据的存取效率,减少协处理器50的访存能耗。
本申请的数据处理方法中,主处理器30和协处理器50通过共享区131实现数据(如输入数据)的共享,形成紧耦合模式,解决内核空11间和用户空间13的数据搬移问题,从而提高数据的存取效率、减少访存能耗。
请参阅图1及图4,在某些实施方式中,07:从共享区131获取输入数据,包括:
071:控制输入数据按需读取至协处理器50的全局数据缓冲单元591;
072:对输入数据进行变换处理后传输至协处理器50的数据寄存单元593;
073:从数据寄存单元593中读取变换处理后的输入数据至协处理器50的智能计算单元55。
具体地,协处理器50控制按需读取格式转换后的输入数据至全局数据缓冲单元591,全局数据缓冲单元591对数据进行串并转换、维度变换等变换处理后分发到数据寄存单元593中,智能计算单元55可直接对数据寄存单元593进行数据访问,从而对输入数据进行智能加速运算。
请继续参阅图1及图4,在某些实施方式中,07:通过协处理器50对输入数据进行智能加速运算,包括:
074:获取存储于协处理器50的数据寄存单元593中的权重数据;及
075:根据输入数据及权重数据进行智能加速运算,以获取输出数据。
在一个实施例中,数据寄存单元593可包括权重向量寄存器5935,权重向量寄存器5935仅用于存储权重数据,以提高智能计算单元55对权重数据的读取效率,减少智能计算单元55对权重数据的等待,从而提高智能计算单元55根据权重数据和输入数据进行智能加速运算的效率。
请结合图5,方法075中,输入数据(输入特征图,输入特征图大小为8*8)以像素阵列A呈现,权重数据为预设大小(如3*3)的卷积窗口K中的多个数据,如图5所示。其中,像素阵列A中的“a00、a01、a02、……、a77”为输入特征图中的各个像素点,卷积窗口K中的“k00、k01、k02、……、k22”分别为多种权重数据。核心计算单元551利用该卷积窗口K对像素阵列A进行卷积计算,以获取多个部分和,再将多个部分和进行求和,以获取输出数据。例如,当卷积窗口K的位置对应像素阵列A中的“a00、a01、a02、a10、a11、a12、a20、a21、a22”进行卷积计算时,计算得到一个部分和,卷积窗口K对应该位置时的部分和为a00*k00+a01*k01+a02*k02+a10*k10+a11*k11++a12*k12+a20*k20+a21*k21+a22*k22;再将卷积窗口K移动至下一个位置“a01、a02、a03、a11、a12、a13、a21、a22、a23”,并进行卷积计算,获取该位置对应的部分和;以此类推,直至卷积窗口对应像素阵列A中最后一个位置“a55、a56、a57、a65、a66、a67、a75、a76、a77”,并计算得到该位置对应的部分和。其中,核心计算单元551计算得到的多个部分和将传输至部分和向量寄存器5933(或数据寄存单元593)中。核心计算单元551对计算得到的多个部分和进行求和时,再从部分和向量寄存器5933(或数据寄存单元593)中读取多个部分和以进行求和,以获取输出数据,并将输出数据传输至结果向量寄存器5937(或数据寄存单元593)中暂存。输出数据在数据寄存单元593中经数据维度变换后写回至全局数据缓冲单元591中,最终从全局数据缓冲单元591传回至共享区131中。
请参阅图1及图6,在某些实施方式中,数据处理方法还包括:
01:获取指令,指令由运行在主处理器30和协处理器50上的智能计算程序对应的目标代码统一编译得到;
02:对指令进行一级译码,以区分指令的类型,指令的类型包括普通指令和智能计算指令;
03:当指令的类型为普通指令的情况下,对普通指令进行二级译码,并根据二级译码后的第二控制信息执行运算;及
04:当指令的类型为智能计算指令的情况下,将智能计算指令传输至协处理器的指令队列单元。
具体地,指令的编译、指令的一级译码、指令的二级译码的具体实现过程与前述的轻量级智能计算紧耦合结构100中编译器80对指令的编译过程、主处理器30对指令的一级译码、主处理器30对普通指令的二级译码的具体过程相同,在此不再赘述。
请参阅图1及图7,在某些实施方式中,04:将智能计算指令传输至协处理器50的指令队列单元51,包括:
041:对智能计算指令进行译码,以将译码后的第一控制信息传输至协处理50的智能计算单元55。
具体地,方法041中的具体过程与前述的轻量级智能计算紧耦合结构100中智能计算指令译码单元51的具体执行过程相同,在此不再赘述。
综上所述,本申请的轻量级智能计算紧耦合结构100和数据处理方法中,主处理器30、协处理器50和内存10均挂载在同一总线上,且内存10的用户空间13设置共享区131,主处理器30和协处理器50形成紧耦合模式,主处理器30和协处理器50可通过共享区131进行数据的访问,避免出现协处理器50和主处理器30需要不停地进行来回的数据迁移的情况,解决在内核空间11和用户空间13之间的数据来回搬移的问题,从而提高数据的存取效率、减少访存能耗。且,轻量级智能计算紧耦合结构100通过对指令的控制,使得轻量级智能计算紧耦合结构100支持不同数据流、不同计算结构的映射,并且通过控制指令的方法可以实现轻量级智能计算紧耦合结构100中的硬件可重构,使得轻量级智能计算紧耦合结构100的结构灵活并具有可适应性。且轻量级智能计算紧耦合结构100通过使用VLIW+SIMD结构对指令进行封装,进一步实现指令级并行性和数据级并行性,既能够提高执行效率,又保障了计算的灵活性。
在本说明书的描述中,参考术语“某些实施方式”、“一个例子中”、“示例地”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型。
Claims (15)
1.一种轻量级智能计算紧耦合结构,其特征在于,包括:
内存,包括内核空间和用户空间,所述用户空间设有共享区;
主处理器,用于对输入数据进行预处理,以对所述输入数据进行格式转换;及
协处理器,用于对格式转换后的所述输入数据进行智能加速运算,所述协处理器、所述内存及所述主处理器挂载在同一总线上,所述协处理器与所述主处理器通过所述共享区进行所述输入数据的访问,所述输入数据依次通过所述总线、所述内核空间传输至所述共享区。
2.根据权利要求1所述的轻量级智能计算紧耦合结构,其特征在于,所述轻量级智能计算紧耦合结构还包括第一存储管理单元和第二存储管理单元,所述主处理器通过所述第一存储管理单元对所述内存进行访问,所述协处理器通过所述第二存储管理单元对所述内存进行访问。
3.根据权利要求1所述的轻量级智能计算紧耦合结构,其特征在于,所述协处理器包括:
指令队列单元,用于暂存智能计算指令;
智能计算指令译码单元,用于对所述智能计算指令进行译码以输出第一控制信息;
智能计算单元,用于根据所述第一控制信息进行智能加速运算;
参数寄存单元,用于存储固定参数以供所述智能计算单元调用;及
层次化存储结构,用于存储所述智能计算单元进行智能加速运算的数据。
4.根据权利要求3所述的轻量级智能计算紧耦合结构,其特征在于,所述智能计算单元包括:
核心计算单元,用于实现智能计算过程中的卷积层、全连接层和归一化层BN的计算;
激活计算单元,用于实现智能计算过程中的激活函数计算;及
池化计算单元,用于实现智能计算过程中的池化计算。
5.根据权利要求3所述的轻量级智能计算紧耦合结构,其特征在于,所述层次化存储结构包括:
全局数据缓冲单元,用于暂存从所述内存中获取的输入数据、权重数据以及即将存储到所述内存中的输出数据;及
数据寄存单元,用于将所述输入数据及所述权重数据分发到所述智能计算单元、存储所述智能加速运算中产生的输出数据及将所述输出数据按照组织形式收集到所述全局数据缓冲单元。
6.根据权利要求5所述的轻量级智能计算紧耦合结构,其特征在于,所述数据寄存单元包括:
输入数据向量寄存器,用于存储从所述全局数据缓冲单元读取的所述输入数据;
部分和向量寄存器,用于存储所述智能加速运算中产生的中间数据;
权重向量寄存器,用于存储从所述全局数据缓冲单元读取的所述权重数据;及
结果向量寄存器,用于存储从所述智能加速运算中输出的所述输出数据。
7.根据权利要求1所述的轻量级智能计算紧耦合结构,其特征在于,所述轻量级智能计算紧耦合结构还包括指令高速缓存和数据高速缓存;所述主处理器用于从所述指令高速缓存中进行指令读取、从所述数据高速缓存中进行数据读取,对所述指令进行译码,以及根据译码后的第二控制信息执行运算;所述主处理器包括通用寄存器,所述通用寄存器用于存储运算过程和译码过程中产生的数据。
8.根据权利要求7所述的轻量级智能计算紧耦合结构,其特征在于,所述主处理器用于对所述指令进行一级译码,以区分所述指令的类型,所述指令的类型包括普通指令和智能计算指令;
当所述指令的类型为所述普通指令的情况下,所述主处理器还用于对所述普通指令进行二级译码,并根据所述二级译码后的第二控制信息执行运算;
当所述指令的类型为所述智能计算指令的情况下,所述主处理器还用于将所述智能计算指令传输至所述协处理器的指令队列单元。
9.根据权利要求7所述的轻量级智能计算紧耦合结构,其特征在于,所述主处理器还用于执行智能计算程序的预处理程序中的指令,以对所述智能计算程序中的数据进行格式转换。
10.根据权利要求1所述的轻量级智能计算紧耦合结构,其特征在于,所述轻量级智能计算紧耦合结构还包括编译器,所述编译器用于将智能计算程序对应的目标代码进行统一编译,以生成指令,所述指令的类型包括普通指令和智能计算指令。
11.一种应用轻量级智能计算紧耦合结构的数据处理方法,其特征在于,包括:
从图像传感器中读取输入数据,以将所述输入数据存储到内存中的共享区,所述共享区设于所述内存的用户空间,所述输入数据的读取由主处理器控制通过总线传输到所述内存的内核空间,再将所述输入数据搬移至所述共享区;
根据所述输入数据进行预处理,以使所述主处理器对所述输入数据进行格式转换;及
从所述共享区获取所述输入数据,并通过协处理器对格式转换后的所述输入数据进行智能加速运算,所述协处理器、所述内存及所述主处理器挂载在所述总线上。
12.根据权利要求11所述的数据处理方法,其特征在于,所述从所述共享区获取所述输入数据,包括:
控制所述输入数据按需读取至所述协处理器的全局数据缓冲单元;
对所述输入数据进行变换处理后传输至所述协处理器的数据寄存单元;
从所述数据寄存单元中读取变换处理后的所述输入数据至所述协处理器的智能计算单元。
13.根据权利要求11所述的数据处理方法,其特征在于,所述通过所述协处理器对所述输入数据进行智能加速运算,包括:
获取存储于所述协处理器的数据寄存单元中的权重数据;及
根据所述输入数据、所述权重数据进行智能加速运算,以获取输出数据。
14.根据权利要求11所述的数据处理方法,其特征在于,所述数据处理方法还包括:
获取指令,所述指令由运行在所述主处理器和所述协处理器上的智能计算程序对应的目标代码统一编译得到;
对所述指令进行一级译码,以区分所述指令的类型,所述指令的类型包括普通指令和智能计算指令;
当所述指令的类型为所述普通指令的情况下,对所述普通指令进行二级译码,并根据所述二级译码后的第二控制信息执行运算;及
当所述指令的类型为所述智能计算指令的情况下,将所述智能计算指令传输至所述协处理器的指令队列单元。
15.根据权利要求14所述的数据处理方法,其特征在于,所述将所述智能计算指令传输至所述协处理器的指令队列单元,包括:
对所述智能计算指令进行译码,以将译码后的第一控制信息传输至所述协处理器的智能计算单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210129546.1A CN114564429A (zh) | 2022-02-11 | 2022-02-11 | 轻量级智能计算紧耦合结构及其数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210129546.1A CN114564429A (zh) | 2022-02-11 | 2022-02-11 | 轻量级智能计算紧耦合结构及其数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564429A true CN114564429A (zh) | 2022-05-31 |
Family
ID=81714672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210129546.1A Pending CN114564429A (zh) | 2022-02-11 | 2022-02-11 | 轻量级智能计算紧耦合结构及其数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564429A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024067735A1 (zh) * | 2022-09-29 | 2024-04-04 | 北京华峰测控技术股份有限公司 | 测试机、测试系统和测试方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190042329A1 (en) * | 2018-06-29 | 2019-02-07 | Utkarsh Y. Kakaiya | System with programmable multi-context accelerator circuitry |
CN110490311A (zh) * | 2019-07-08 | 2019-11-22 | 华南理工大学 | 基于risc-v架构的卷积神经网络加速装置及其控制方法 |
CN112639741A (zh) * | 2018-08-24 | 2021-04-09 | 苹果公司 | 用于控制联合共享的存储器映射区域的方法和装置 |
WO2021217529A1 (zh) * | 2020-04-29 | 2021-11-04 | 华为技术有限公司 | 一种进程间通信的方法及系统 |
CN113743599A (zh) * | 2021-08-08 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种卷积神经网络的运算装置及服务器 |
-
2022
- 2022-02-11 CN CN202210129546.1A patent/CN114564429A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190042329A1 (en) * | 2018-06-29 | 2019-02-07 | Utkarsh Y. Kakaiya | System with programmable multi-context accelerator circuitry |
CN112639741A (zh) * | 2018-08-24 | 2021-04-09 | 苹果公司 | 用于控制联合共享的存储器映射区域的方法和装置 |
CN110490311A (zh) * | 2019-07-08 | 2019-11-22 | 华南理工大学 | 基于risc-v架构的卷积神经网络加速装置及其控制方法 |
WO2021217529A1 (zh) * | 2020-04-29 | 2021-11-04 | 华为技术有限公司 | 一种进程间通信的方法及系统 |
CN113743599A (zh) * | 2021-08-08 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种卷积神经网络的运算装置及服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024067735A1 (zh) * | 2022-09-29 | 2024-04-04 | 北京华峰测控技术股份有限公司 | 测试机、测试系统和测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522254B (zh) | 运算装置及方法 | |
US20240086683A1 (en) | Neural network scheduling mechanism | |
CN107679621B (zh) | 人工神经网络处理装置 | |
CN107679620B (zh) | 人工神经网络处理装置 | |
US11086816B2 (en) | Processors, methods, and systems for debugging a configurable spatial accelerator | |
US11934934B2 (en) | Convolutional neural network optimization mechanism | |
US10558575B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
WO2018192500A1 (zh) | 处理装置和处理方法 | |
US20190004878A1 (en) | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features | |
US20190095369A1 (en) | Processors, methods, and systems for a memory fence in a configurable spatial accelerator | |
US20190007332A1 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
US20190102671A1 (en) | Inner product convolutional neural network accelerator | |
US10459866B1 (en) | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator | |
JP2011508918A (ja) | 一般作業負荷およびグラフィックス作業負荷を処理するための統合プロセッサアーキテクチャ | |
US11403104B2 (en) | Neural network processor, chip and electronic device | |
CN112633505B (zh) | 一种基于risc-v的人工智能推理方法和系统 | |
WO2021115208A1 (zh) | 神经网络处理器、芯片和电子设备 | |
Guo et al. | Balancing efficiency and flexibility for DNN acceleration via temporal GPU-systolic array integration | |
Li et al. | Design and implementation of CNN custom processor based on RISC-V architecture | |
US11907713B2 (en) | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator | |
CN114564429A (zh) | 轻量级智能计算紧耦合结构及其数据处理方法 | |
WO2023092620A1 (zh) | 基于risc-v的三维互联众核处理器架构及其工作方法 | |
CN114661353A (zh) | 支持多线程的数据搬运装置及处理器 | |
CN113688982A (zh) | 处理单元、相关装置和方法 | |
CN112395055A (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 |