掌桥专利:专业的专利平台
掌桥专利
首页

基于便签式存储的向量数据聚集方法、装置及计算机设备

文献发布时间:2024-04-18 19:52:40


基于便签式存储的向量数据聚集方法、装置及计算机设备

技术领域

本申请涉及高性能内存访问技术领域,特别是涉及基于便签式存储的向量数据聚集方法、装置及计算机设备。

背景技术

为了应对现代处理器计算能力的增长需求以及功耗约束上的限制,目前的多核或众核处理器使用向量单元(Vector Units)技术和便签式存储(Scratch-pad Memory,SPM)技术。一方面,向量单元使用一条向量指令开启一组数据元素的操作,在使用向量单元进行计算前,需要将所需数据由位于片外的内存加载至靠近计算单元的向量寄存器,充分地利用向量单元能够成倍地增加应用程序的性能。另一方面,便签式存储是位于处理器芯片上的能够快速访问的存储体。实际应用程序经常需要将分散在内存中不同位置的数据元素加载到一个向量寄存器中,即向量数据聚集(Vector Data Gather)操作。在传统的计算机系统中,向量数据聚集操作通常需要使用循环来遍历数据,逐个进行计算。由于计算量较大,这种方法的效率较低,难以满足对大规模数据的高效处理需求。例如,稀疏矩阵的非零元素是零散分布的,传统的向量数据聚集方法需要逐个地访问存储器中的数据,经常需要从不同的内存位置读取元素至同一个向量寄存器中,对于大批量数据的聚集处理和访问而言,低效率的同时其并行性较差。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高向量数据聚集处理效率的基于便签式存储的向量数据聚集方法、装置及计算机设备。

基于便签式存储的向量数据聚集方法,应用于计算机系统中,所述计算机系统包括:执行单元、向量寄存器、便签式存储器以及片外存储器。

所述方法包括:

读取片外存储器的目标数据的索引,通过执行单元将所述索引写入便签式存储器,得到第一索引基地址。

计算目标数据在片外存储器的地址,得到片外存储地址。片外存储地址包括:目标数据的基地址和目标数据的偏移索引。

通过执行单元获取片外存储地址,并写入便签式存储器,得到聚集参数包。

根据偏移索引与第一索引基地址按序存储聚集参数包,将聚集参数包搬运至向量寄存器。

在其中一个实施例中,目标数据包括:目标数据元素、目标数据的索引以及目标数据的基地址。

在其中一个实施例中,还包括:应用程序读取片外存储器中离散分布的多个目标数据,执行单元接收到计算机系统的聚集指令执行提取操作,将目标数据的索引从片外存储器进行提取,并按序写入便签式存储器,得到第一索引基地址。

在其中一个实施例中,还包括:将目标数据的基地址与目标数据元素在片外存储器中的每个索进行逐一相加运算,得到目标数据的片外存储地址。

在其中一个实施例中,还包括:通过执行单元从片外存储器获取片外存储地址,并将偏移索引写入便签式存储器,得到目标数据的便签式存储地址。根据便签式存储地址按序存储目标数据元素,得到聚集参数包。聚集参数包包括:便签式存储地址、片外存储地址以及目标数据元素。

在其中一个实施例中,便签式存储器以1024位为数据单元搬运聚集参数包至向量寄存器。

基于便签式存储的向量数据聚集装置,所述装置包括:

第一索引基地址获取模块,用于读取片外存储器的目标数据的索引,通过执行单元将索引写入便签式存储器,得到第一索引基地址。

源地址获取模块,用于计算目标数据元素在片外存储器的地址,得到片外存储地址。片外存储地址包括:目标数据的基地址和目标数据的偏移索引。

聚集参数包获取模块,用于通过执行单元获取片外存储地址,并写入便签式存储器,得到聚集参数包。

聚集模块,用于根据偏移索引与第一索引基地址按序存储聚集参数包,将聚集参数包搬运至所述向量寄存器。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

读取片外存储器的目标数据的索引,通过执行单元将所述索引写入便签式存储器,得到第一索引基地址。

计算目标数据在片外存储器的地址,得到片外存储地址。片外存储地址包括:目标数据的基地址和目标数据的偏移索引。

通过执行单元获取片外存储地址,并写入便签式存储器,得到聚集参数包。

根据偏移索引与第一索引基地址按序存储聚集参数包,将聚集参数包搬运至向量寄存器。

上述基于便签式存储的向量数据聚集方法、装置及计算机设备,通过使用便签式存储器存储目标数据的索引和第一索引基地址,便签式存储器是用于存储目标数据的索引和第一索引基地址的存储器,它可以提高数据访问的效率,当需要访问某个目标数据时,只需要通过该目标数据的索引在便签式存储器中查找其对应的基地址,然后通过源地址计算得到其在片外存储器中的实际地址,从而直接访问该目标数据,对于大批量数据访问而言,有效的提高了访问和处理效率及并行性。

附图说明

图1为一个实施例中基于便签式存储的向量数据聚集方法的应用场景图;

图2为一个实施例中基于便签式存储的向量数据聚集方法的流程示意图;

图3为一个实施例中向量数据类型示意图,其中,图3(a)为单字向量数据,图3(b)为半字向量数据;

图4为一个实施例中基于便签式存储的向量数据聚集装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的基于便签式存储的向量数据聚集方法,可以应用于如图1所示的计算机系统中。该系统包括向量处理器、片外存储器和数据总线等构成,其中,向量处理器包括向量控制寄存器、向量执行单元、向量寄存器文件和便签式存储器等构成。

在一个实施例中,如图2所示,提供了基于便签式存储的向量数据聚集方法,以该方法应用于图1中的系统为例进行说明,包括以下步骤:

步骤202,读取片外存储器的目标数据的索引,通过执行单元将所述索引写入便签式存储器,得到第一索引基地址。

执行单元根据计算机处理器接收到的操作指令执行指令操作。指令操作包括:写入、读取、存储、加载以及搬运等。目标数据包括:数据基地址与数据基地址对应的索引地址。

具体的,执行单元执行接收到的计算机聚集指令,调用DMA(Direct MemoryAccess)部件读取片外存储器中离散分布的多个目标数据的索引,并提取到便签式存储器,将多个目标数据的索引按顺序写入便签式存储器,得到多个连续排列的第一索引地址。

步骤204,计算目标数据在片外存储器的地址,得到片外存储地址。

具体的,计算片外存储器中每个目标数据的基地址在片外存储器中的偏移索引,得到所有目标数据元素的片外存储地址,将片外存储器中目标数据的片外存储基地址(src)与目标数据元素位于片外存储器中的每个索引进行逐一相加运算,得到每个目标数据元素的片外存储地址,其中,片外存储地址包括:目标数据的基地址和目标数据的偏移索引。

步骤206,通过执行单元获取片外存储地址,并写入便签式存储器,得到聚集参数包。

具体的,通过执行单元接收到的计算机系统的提取指令后,用DMA(Direct MemoryAccess)部件执行提取操作,从片外存储器获取片外存储地址,并将偏移索引写入便签式存储器,得到目标数据的便签式存储地址。根据便签式存储地址以连续的方式按序存储目标数据元素,得到聚集参数包。聚集参数包包括:便签式存储地址、片外存储地址和目标数据元素。

步骤208,根据偏移索引与第一索引基地址按序存储聚集参数包,将聚集参数包搬运至向量寄存器。

值得说明的是,执行单元执行接收到的计算机聚集指令,加载便签式存储器的聚集参数包执行搬运操作,将便签式存储器的聚集参数包搬运至目的向量寄存器(dst_vr)。

上述基于便签式存储的向量数据聚集方法中,上述基于便签式存储的向量数据聚集方法、装置及计算机设备,通过使用便签式存储器存储目标数据的索引和第一索引基地址,便签式存储器是用于存储目标数据的索引和第一索引基地址的存储器,它可以提高数据访问的效率,当需要访问某个目标数据时,只需要通过该目标数据的索引在便签式存储器中查找其对应的基地址,然后通过源地址计算得到其在片外存储器中的实际地址,从而直接访问该目标数据,对于大批量数据访问而言,有效的提高了访问和处理效率及并行性。

在其中一个实施例中,目标数据包括:目标数据元素、目标数据的索引以及目标数据的基地址。

在其中一个实施例中,应用程序读取片外存储器中离散分布的多个目标数据,执行单元接收到计算机系统的聚集指令执行提取操作,将目标数据的索引从片外存储器进行提取,并按序写入便签式存储器,得到第一索引基地址。

值得说明的是,通过将目标数据的索引从片外存储器中提取出来,并按序写入便签式存储器中,可以得到第一索引基地址。在进行后续的向量数据聚集操作时,可以直接通过索引和第一索引基地址来计算目标数据的实际地址,从而直接访问片外存储器中的数据,可以避免频繁地访问片外存储器,减少了数据访问的时间和功耗,提高了数据访问的效率。另外,将提取出来的目标数据存储到向量寄存器中,可以实现高效的向量数据聚集。向量寄存器中可以同时存储多个数据,支持并行操作,可以提高计算效率。同时,由于数据访问的效率也得到了提高,可以进一步降低计算的延迟和功耗,进一步提高计算效率。

在其中一个实施例中,将目标数据的基地址与目标数据元素在片外存储器中的每个索进行逐一相加运算,得到目标数据的片外存储地址。

值得说明的是,通过计算每个目标数据在片外存储器中的偏移索引,可以得到目标数据的片外存储地址。通过根据偏移索引和目标数据的基地址进行加和,可以得到目标数据的片外存储地址。这样就不需要每次访问目标数据元素时都要访问片外存储器一次,而是可以通过计算得到目标数据的片外存储地址,从而直接访问目标数据元素。这种方式可以减少片外存储器的访问次数,从而提高访问速度和降低功耗。由此可见,通过将目标数据的片外存储地址计算出来,并存储到向量寄存器中,可以实现高效的向量数据聚集。

在其中一个实施例中,通过执行单元从片外存储器获取片外存储地址,并将偏移索引写入便签式存储器,得到目标数据的便签式存储地址。根据便签式存储地址按序存储目标数据元素,得到聚集参数包。聚集参数包包括:便签式存储地址、片外存储地址以及目标数据元素。

值得说明的是,通过将目标数据的片外存储地址从片外存储器提取出来,可以减少存储器的访问次数。在得到目标数据的便签式存储地址之后,将目标数据元素按序存储到便签式存储器中,可以利用局部性原理,将相邻的数据存储在相邻的存储单元中,从而提高存储器的访问效率,减少存储器的访问延迟和功耗。由此可见,通过将便签式存储地址、片外存储地址和目标数据元素存储到聚集参数包中,使得目标数据元素在各个内存之间的检索、调用和聚集更加畅通和高效,由此可以实现高效的向量数据聚集。向量寄存器中可以同时存储多个数据,支持并行操作,可以提高计算效率。同时,由于数据访问的效率得到了提高,可以进一步降低计算的延迟和功耗,进一步提高计算效率,从而提高整个计算系统的性能。

在其中一个实施例中,便签式存储器以1024位为数据单元搬运聚集参数包至向量寄存器。

值得说明的是,如图3所示,向量数据类型可以是16个单字向量数据和32个半字向量数据,其中图3(a)为16个单字向量数据,每个单字向量数据占64位宽度,图3(b)为32个半字向量数据,每个半字向量数据占32位宽度。向量寄存器有1024位宽度,可以存放16个单字向量数据或者32个半字向量数据,因此便签式存储器以1024位为数据单元搬运聚集参数至向量寄存器。由于向量寄存器的高速缓存比片外存储器的访问速度快得多,因此将聚集参数包直接搬运至向量寄存器中,能够极大地减少数据的访问延迟和内存带宽消耗,从而提高聚集操作的效率和性能。同时,向量寄存器支持向量化指令,向量执行单元能够并行地执行多个相同或类似的操作,也能够进一步提高聚集操作的效率。

应该理解的是,虽然图1-图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了基于便签式存储的向量数据聚集装置,包括:第一索引基地址获取模块402、源地址获取模块404、聚集参数包获取模块406和聚集模块408,其中:

第一索引基地址获取模块402,用于读取片外存储器的目标数据的索引,通过执行单元将索引写入便签式存储器,得到第一索引基地址。

源地址获取模块404,用于计算目标数据元素在片外存储器的地址,得到片外存储地址。片外存储地址包括:目标数据的基地址和目标数据的偏移索引。

聚集参数包获取模块406,用于通过执行单元获取片外存储地址,并写入便签式存储器,得到聚集参数包。

聚集模块408,用于根据偏移索引与第一索引基地址按序存储聚集参数包,将聚集参数包搬运至向量寄存器。

关于基于便签式存储的向量数据聚集装置的具体限定可以参见上文中对于基于便签式存储的向量数据聚集方法的限定,在此不再赘述。上述基于便签式存储的向量数据聚集装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于便签式存储的向量数据聚集方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图4-图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

读取片外存储器的目标数据的索引,通过执行单元将所述索引写入便签式存储器,得到第一索引基地址。

计算目标数据元素在片外存储器的地址,得到片外存储地址。片外存储地址包括:目标数据的基地址和目标数据的偏移索引。

通过执行单元获取片外存储地址,并写入便签式存储器,得到聚集参数包。

根据偏移索引与第一索引基地址按序存储聚集参数包,将聚集参数包搬运至向量寄存器。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:应用程序读取片外存储器中离散分布的多个目标数据,执行单元接收到计算机系统的聚集指令执行提取操作,将目标数据的索引从片外存储器进行提取,并按序写入便签式存储器,得到第一索引基地址。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将目标数据的基地址与目标数据元素在片外存储器中的每个索进行逐一相加运算,得到目标数据的片外存储器地址。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过执行单元从片外存储器获取片外存储地址,并将偏移索引写入便签式存储器,得到目标数据的便签式存储地址。根据便签式存储地址按序存储目标数据元素,得到聚集参数包。聚集参数包包括:便签式存储地址、片外存储地址以及目标数据元素。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 一种无溶剂复合机
  • 一种四合一无溶剂复合机及复合工艺控制方法
  • 一种片材三合一无溶剂复合机及控制方法
技术分类

06120116333450