CN110245024B - 静态存储块的动态分配***及其方法 - Google Patents
静态存储块的动态分配***及其方法 Download PDFInfo
- Publication number
- CN110245024B CN110245024B CN201910633585.3A CN201910633585A CN110245024B CN 110245024 B CN110245024 B CN 110245024B CN 201910633585 A CN201910633585 A CN 201910633585A CN 110245024 B CN110245024 B CN 110245024B
- Authority
- CN
- China
- Prior art keywords
- data
- metadata
- host
- external device
- content
- 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
Links
- 230000003068 static effect Effects 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims description 33
- 230000002093 peripheral effect Effects 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 8
- 238000013135 deep learning Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种静态存储块的动态分配***,包括:存储空间确定单元,为待处理的数据块生成对应于数据块的内容数据的含有元数据的头部数据,从而确定主机存储单元将要为数据块分配的空间大小以及***设备将要为数据块分配的空间大小,以及在获取具体数据块时修改头部数据的元数据;主机存储空间分配单元基于所修改的元数据,在主机的存储单元内为具体数据块的头部数据和内容数据分配连续的固定大小的整体存储空间并连续存储头部数据和内容数据;以及外部设备存储空间分配单元,基于存储空间确定单元所修改的头部数据所包含的元数据,在外部设备的存储单元内为具体数据块的内容数据分配固定大小的存储空间并存储所述内容数据。
Description
技术领域
本公开涉及一种静态存储块的动态分配***及其方法,更具体而言,涉及一种在静态存储***中实现固定存储空间动态分配的***和方法。
背景技术
随着大数据计算以及深度学习的兴起,各种协处理器通常被用于分担CPU的数据处理功能。例如GPU(Graphic Processing Unit)、APU等。GPU具有高并行结构(highlyparallel structure),所以GPU在处理图形数据和复杂算法方面拥有比CPU更高的效率。CPU执行计算任务时,一个时刻只处理一个数据,不存在真正意义上的并行,而GPU具有多个处理器核,在一个时刻可以并行处理多个数据。与CPU相比,GPU拥有更多的ALU(ArithmeticLogic Unit,逻辑运算执行体)用于数据处理,而非数据高速缓存和流控制。这样的结构非常适合于对于类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。现有的大数据计算和深度学习***采用存储空间的动态分配,动态分配存储空间可以控制这些存储空间位置的确切大小和使用期限。在***运行过程中,如果这些存储空间没有被释放,这会导致应用程序崩溃,因为在某个时间点,***不能分配更多的内存,就会出现内存泄漏或内存崩溃(OOM)的情形。
因此,人们希望获得一种能够不受数据块大小变化影响从而消除存储空间崩溃(OOM)的情形的大数据计算和深度学习***。
发明内容
由于大数据以及深度学习处理的数据具有类型高度统一型,因此为提供一种能够消除现有技术中存在的上述问题提供了可能。根据本公开的一个方面,提供了一种静态存储块的动态分配***,包括:存储空间确定单元,为待处理的数据块生成对应于数据块的内容数据的头部数据,所述头部数据含有描述所述内容数据的具体内容的元数据,从而确定主机存储单元将要为数据块分配的空间大小以及***设备将要为数据块分配的空间大小,并且在获取具体数据块时修改头部数据;主机存储空间分配单元,基于存储空间确定单元所修改的头部数据所包含的元数据,在主机的存储单元内为具体数据块的头部数据和内容数据分配连续的固定大小的整体存储空间;以及外部设备存储空间分配单元,基于存储空间确定单元所修改的头部数据所包含的元数据,在外部设备的存储单元内为具体数据块的内容数据分配固定大小的存储空间。
根据本公开的静态存储块的动态分配***,其中所述元数据包括数据块的大小元数据以及数据块的形状元数据。
根据本公开的静态存储块的动态分配***,其中所述元数据还包括用于描述内容数据的具体内容的张量的元数据。
根据本公开的静态存储块的动态分配***,其中所述外部设备基于来自主机的包含头部数据的指令,存取对应的子存储空间内的内容数据。
根据本公开的另一个方面,提供了一种对静态存储块进行动态分配的方法,包括:通过存储空间确定单元为待处理的数据块生成对应于数据块的内容数据的头部数据,所述头部数据含有描述所述内容数据的具体内容的元数据;确定主机存储单元将要为数据块分配的空间大小以及***设备将要为数据块分配的空间大小;在获取具体数据块时修改头部数据;在主机存储单元上,基于存储空间确定单元所修改的头部数据所包含的元数据,通过主机存储空间分配单元在主机的存储单元内为具体数据块的头部数据和内容数据分配连续的固定大小的整体存储空间;以及在与主机相连的外部设备上,基于存储空间确定单元所修改的头部数据所包含的元数据,通过外部设备存储空间分配单元在外部设备的存储单元内为具体数据块的内容数据分配固定大小的存储空间,并按照所修改的元数据的值,将内容数据的具体内容部分动态地分配存储在对应的子存储空间。
根据本公开的对静态存储块进行动态分配的方法,其中所述元数据包括数据块的大小元数据以及数据块的形状元数据。
根据本公开的对静态存储块进行动态分配的方法,其中所述元数据还包括用于描述内容数据的具体内容的张量的元数据。
根据本公开的对静态存储块进行动态分配的方法,其中所述外部设备基于来自主机的包含头部数据的指令,存取对应的子存储空间内的内容数据。
通过上述对主机以及外部设备的存储空间进行了静态分配,可以增强采用上述***的装置对数据和运算的控制能力。同时尽管由于深度学习和大数据计算中的数据类型的高度统一性,但是在实际业务场景中也存在数据的细微变化,因此通过事实修改头部数据中的元数据使得数据块的内容数据在静态空间内处于动态存储状态,并且使得主机以及外部设备能够了解各自存储单元内的数据块的具体存储状况。从而更高效地使用固定大小的存储空间内存储的内容数据。
静态的好处就是在程序启动之初,就已经把所有所需的内存分配好,所以他就把整个OOM问题给消除了。这是静态分配内存的相对动态分配内存的好处。
当根据本公开的主机与外部设备,例如CPU和GPU,用于大数据技术以及深度学习领域并且构成分布式***时,由于存在大量的数据拷贝和数据交互,因此,在GPU与外部的通信带宽固定的情况下,如何减少交互的数据量来提升数据传输的速度就显得非常重要。而在大数据计算以及深度学习中采用根据本公开的静态存储块的动态存储***,由于外部设备中将内容数据与头部数据分离,使得外部设备与主机设备之间的数据交互节省了头部数据而只需要获取头部数据中的元数据的值来操作本地存储的内容数据,因此节省了主机与外部设备之间的通信开销。更为重要的是,采用头部数据来确定固定的存储空间,能够使得在运行过程中在不同具体数据块之间实现存储空间共享,即在前一数据块使用完毕后,后一数据块直接在头部数据的指引下直接存储在同一存储空间,而不要另外对后续数据进行动态空间分配,从而节省了存储空间分配的运算开销,提升了数据的接收和处理的流动性,也就自然地提升了数据处理速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
下面将参考附图通过实施例来详细介绍本公开,附图中:
图1所示的是根据本公开的静态存储块的动态分配***结构示意图;
图2所示的是根据本公开的在分布式***中对静态存储块进行动态存储的方法的流程图。
具体实施方式
下面结合实施例和附图对本公开做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,在下文中,两个可能设备之一可以被称为第一主机也可以被称为第二主机,类似地,两个可能设备的另一个可以被称为第二外部设备也可以被称为第一外部设备。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
图1所示的是根据本公开的静态存储块的动态分配***结构示意图。如图1所示,在用于大数据计算和深度学习的***中,外部设备200,例如GPU等会与主机100相连。在分布式***中,主机与主机之间也会彼此相连,从而完成计算业务。如图1所示,主机标记为100-1以及100-2,外部设备标记为200-1以及200-2。在之后的描述中该,如果没有特别指出,都采用主机100以及外部设备100来指代。主机100包括控制单元10和主机100的存储单元40。主机100具有通常的主机的其他构成单元,在此不赘述。所述控制单元100包括存储空间确定单元20以及存储空间分配单元30。与主机100相连的外部设备200包括控制单元50以及存储单元70。所述外部设备20也具有通常的外部设备(例如GPU)的构成单元,再次不赘述。所述外部设备200的控制单元50包括存储空间分配单元60。
面对同一类型数据,可以基于其常规大小预先确定其所需存储空间大小,从而在运算***中配置固定的存储空间。为此,存储空间确定单元20为待处理的数据块生成对应于数据块的内容数据的头部数据,所述头部数据含有描述所述内容数据的具体内容的元数据。并且所述存储空间确定单元20以同一类型数据块的大小为上限,为其确定主机100的存储单元40将要为数据块分配的空间大小以及***设备200的存储单元70将要为数据块分配的空间大小。举例而言,例如同一类型的数据块的最大尺寸为4M,则可以为这类数据块确定5M的存储空间,也可以只确定为4M的空间。所述元数据包括数据块的数据类型、尺寸元数据以及数据形状元数据。所包含的元数据通常采用指定字段来表达。表1示意性给出了一种头部数据的结构:
表1(头部数据结构)
如上表1所示,在存储空间确定单元20为待处理的数据块生成对应于数据块的内容数据的头部数据起初仅仅是一个头部数据框架。换句话说,初始生成的头部数据确定了头部数据所含有的元数据项目以及初始值,明确了待处理数据块具有的统一描述信息。具体而言,这些元数据字段的值仅仅是一个布尔值或一个标量。例如数据类型元数据就是一个标量。数据形状元数据也是一个标量。而描述内容数据细节的元数据就可能是一个布尔值,例如0或1。如果其初始值为1,则表示有该元数据,如果其初始值为0则表示没有该元数据。尽管表1示意性给出了一种头部数据的结构,但是并不表示本公开所提到的头部数据必须包含示意性例子中所显示的所有元数据名称和字段。例如,通常的头部数据中并不包含字段is_body_disable。该字段通常仅仅出现在一种搬运执行体中存在,以便该搬运执行体为其下游执行体仅仅提供头部数据。
随着具体数据块的到来,存储空间确定单元20基于具体数据块的具体内容,对已经生成的头部数据的用于描述内容数据的细节的元数据进行对应修改,从而获得对内容数据的准确描述信息。举例而言,例如将描述数据块的内容数据的字段的“has_dim1_valid_num”的值修改为一个矩阵,以便描述内容数据的具体构成。
在获得修改后的头部数据后,主机100的存储空间分配单元30基于存储空间确定单元20所修改的头部数据所包含的元数据,在主机存储空间40为具体数据块的头部数据和内容数据分配连续的固定大小的整体存储空间。
可选择地,有些情况下,也可以不需要分配空间大小或者所分配的空间大小为零。例如在头部数据包含段is_body_disable的情况下,就无需为内容数据分配空间。
表2所示的是主机100的存储单元40中所连续存储的头部数据和内容数据的示意性结构。
表2
同时,在外部设备200需要拷贝或处理具体数据块时或者主机100的控制单元10向外部设备200发送数据拷贝或处理命令时,外部设备200的存储空间分配单元60基于从主机100所获得的命令中包含的头部数据中的元数据的值,在存储单元70中分配固定大小的存储空间,并将所获得数据块的内容存储在所分配的固定存储空间中。表3所示的是在外部设备的存储单元70中存储的内容数据的示意性结构。
表3
在含有根据本公开的静态存储块的动态存储***的数据处理***中,主机以及外部设备的各个执行体被静态分配的存储空间在对同一类数据处理的过程中始终保持该存储空间,但是存储空间在其最大空间之下,并且由于头部数据内元数据基于具体数据块的内容数据的变化而改变,从而使得被分配占用的存储单元40或70在数据处理完成之前一直处于动态变化的状态。这种基于头部数据静态分配存储空间的方式,减少了动态分配存储空间会出现特殊情况下存储空间崩溃的情形。而且,在静态分配的空间之下,基于头部数据的元数据的变化,动态使用所分配的静态存储空间,从而使得外部设备的其他运算单元能够基于头部数据的元数据的指引,直接获取内容数据的特定部分,从而加快数据读取的速度和运算数据。
如图1所示,当主机100-1与主机100-2之间进行数据块的传输时,由于主机100-1与主机100-2之间各自独立运算,因此,当主机100-1需要主机100-2中的数据块2时,需要将数据块2的所有数据拷贝到主机100-1。由于数据块2的头部数据与内容数据连续存储,因此数据拷贝可以通过一次发起(LAUNCH)就可以进行,否则,如果头部数据与内容数据之间分开存储,则在主机100-1与100-2之间的数据块的传输需要两次才能完成。因此在主机上的静态存储空间进行连续存储头部数据和内容数据可以减少主机之间的数据拷贝时数据传输的次数,从而减少了传输开销。
在主机100-1和其上连接的外部设备200-1之间,要获得主机100-1的数据块,主机100向外部设备发送的命令中所携带的头部数据的与命令有关的元数据的值,只需要拷贝内容数据部分,不需要拷贝头部数据。因此,在实际数据处理过程中,主机100与外部设备之间除了具体内容数据的传输之外,仅仅包含少量的命令信号以及命令信号所携带的头部数据的元数据的值。当数据块的内容数据发生变化时,存储在主机100中的头部数据的元数据仅仅是其具体值发生变化,这在外部设备中仅仅表现为内容数据的变化以及传输给***设备的命令中所包含的头部数据的元数据的值的变化。由于主机与外部设备之间存在大量的数据交互,因此通过消除或减少头部数据的交互,也就是通过将外部设备运行所需的头部数据分离存储在主机设备上,减少了数据交互量,提高的数据处理的速度。外部设备200上对内容数据读取则基于来自主机100向外部设备发送的命令中所携带的头部数据的与命令有关的元数据的值来进行。
图2所示的是根据本公开的在分布式***中对静态存储块进行动态存储的方法的流程图。如图2所示,首先,在步骤S310处,在对大量的同类数据块进行处理之前,通过主机100的存储空间确定单元20为待处理的数据块生成对应于数据块的内容数据的头部数据,所述头部数据含有描述所述内容数据的具体内容的元数据。如上所述,在进行大数据计算以及深度学习时,通常面对同一类型数据,可以基于其常规大小预先确定其所需存储空间大小,从而在运算***中配置固定的存储空间。这为静态存储的实现带来了可能。为此,存储空间确定单元20为待处理的数据块生成对应于数据块的内容数据的头部数据,所述头部数据含有描述所述内容数据的具体内容的元数据。通过头部数据中的元数据之一确定固定的存储空间。从而在步骤S320处,存储空间确定单元20确定主机100的存储单元40将要为数据块分配的空间大小以及***设备200的存储单元70将要为数据块分配的空间大小。
随后,在步骤S330处,接收到数据块时,所述存储空间确定单元20基于具体数据块的内容数据,修改头部数据内的元数据。具体而言,如上表2中显示,举例而言,初始生成的头部数据中的元数据“has_dim0_valid_num”被修改为“dim0_valid_num”以及has_dim1_valid_num”被修改为“dim1_valid_num”等。在头部数据根据具体数据块被修改后,在步骤S340处,主机100的存储空间分配单元30,基于存储空间确定单元20所修改的头部数据所包含的元数据,在主机100的存储空间40内为具体数据块的头部数据和内容数据分配连续的固定大小的整体存储空间并连续存储头部数据和内容数据。与步骤S340同时,在步骤S350处,外部设备200的存储空间分配单元60在接收到包含有存储空间确定单元20所修改的头部数据所包含的元数的值之后,基于这些元数据的值在外部设备200的存储单元70为具体数据块的内容数据分配固定大小的存储空间,并按照所修改的元数据的值,将内容数据的具体内容部分动态地分配存储在对应的子存储空间。当随后在步骤S360处,收到新的具体数据块时,则从S330处对头部数据进行更新,从而基于新的数据块的数据内容修改头部数据的元数据的值,之后采用新的数据块的头部数据和内容数据更新主机中的存储空间,同时基于新的修改的元数据更新外部设备的存储单元中的固定存储空间。
尽管在本公开的描述中将存储空间确定单元与存储空间分配单元描述为两个独立的个体,但是可选择地,存储空间确定单元本身可以是存储空间分配单元的一部分,并且两者作为主机控制单元的一个整体一体化完成针对数据块的头部数据的生成以及确定静态存储空间。因此,尽管本公开将两者分开描述,并不意味着两者分离存在是实现本公开所必要的安排。
当根据本公开的主机与外部设备,例如CPU和GPU,用于大数据技术以及深度学习领域并且构成分布式***时,由于存在大量的数据拷贝和数据交互,因此,在GPU与外部的通信带宽固定的情况下,如何减少交互的数据量来提升数据传输的速度就显得非常重要。而在大数据计算以及深度学习中采用根据本公开的静态存储块的动态存储***,由于外部设备中将内容数据与头部数据分离,使得外部设备与主机设备之间的数据交互节省了头部数据而只需要获取头部数据中的元数据的值来操作本地存储的内容数据,因此节省了主机与外部设备之间的通信开销。更为重要的是,采用头部数据来确定固定的存储空间,能够使得在运行过程中在不同具体数据块之间实现存储空间共享,即在前一数据块使用完毕后,后一数据块直接在头部数据的指引下直接存储在同一存储空间,而不要另外对后续数据进行动态空间分配,从而节省了存储空间分配的运算开销,提升了数据的接收和处理的流动性,也就自然地提升了数据处理速度。
至此,本说明书描述了根据本公开实施例的一种静态存储块的动态存储***及其方法。根据本公开的静态存储块的动态存储***及其方法通过生成数据块头部数据以及修改头部数据来描述数据块的内容数据,极大提高了存储单元的存储空间的使用效率,降低了主机与外部设备之间以及主机与主机之间的数据通信开销,从而提高了分布式运算***的数据处理效率。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (8)
1.一种静态存储块的动态分配***,包括:
存储空间确定单元,为待处理的数据块生成对应于数据块的内容数据的头部数据,所述头部数据含有描述所述内容数据的具体内容的元数据,从而确定主机存储单元将要为数据块分配的空间大小以及***设备将要为数据块分配的空间大小,并且在获取具体数据块时修改头部数据;
主机存储空间分配单元,基于存储空间确定单元所修改的头部数据所包含的元数据,在主机的存储单元内为用于各个执行体的具体数据块的头部数据和内容数据静态分配连续的固定大小的整体存储空间并连续存储头部数据和内容数据,其中所分配的存储空间在对同一类数据处理的过程中始终保持该存储空间,并且由于头部数据内元数据基于具体数据块的内容数据的变化而改变,从而使得被分配占用的存储单元在数据处理完成之前一直处于动态变化的状态;以及
外部设备存储空间分配单元,在外部设备需要拷贝或处理具体数据块时或者主机的控制单元向外部设备发送数据拷贝或处理命令时,从主机所获得的命令中包含的头部数据中的元数据的值基于从主机所获得的命令中包含的存储空间确定单元所修改的头部数据所包含的元数据的值,在外部设备的存储单元内为具体数据块的内容数据静态分配固定大小的存储空间并并按照所修改的元数据的值,将内容数据的具体内容部分动态地分配存储在对应的子存储空间,
其中,当内容数据发生变化时,存储在主机中的头部数据的元数据具体值发生变化,以便主机向外部设备发送的命令中所携带的头部数据的与命令有关的元数据的值,使得外部设备仅仅获取传输给***设备的命令中所包含的头部数据的元数据的值,由此使得外部设备的其他运算单元能够基于头部数据的元数据的指引,直接获取内容数据的特定部分,以便在头部数据内元数据基于具体数据块的内容数据的变化而改变时,使得外部设备被静态分配的存储单元在数据处理完成之前一直处于内容数据动态变化的状态,从而动态使用所分配的静态存储空间,以加快数据读取的速度和运算数据。
2.如权利要求1所述的静态存储块的动态分配***,其中所述元数据包括表示数据块大小的元数据以及数据块形状的元数据。
3.如权利要求1或2所述的静态存储块的动态分配***,其中所述元数据还包括用于描述内容数据的具体内容的张量的元数据。
4.如权利要求3所述的静态存储块的动态分配***,其中所述外部设备基于来自主机的包含头部数据的指令,存取对应的子存储空间内的内容数据。
5.一种对静态存储块进行动态分配的方法,包括:
通过存储空间确定单元为待处理的数据块生成对应于数据块的内容数据的头部数据,所述头部数据含有描述所述内容数据的具体内容的元数据;
确定主机存储单元将要为数据块分配的空间大小以及***设备将要为数据块分配的空间大小;
在获取具体数据块时修改头部数据;
在主机存储单元上,基于存储空间确定单元所修改的头部数据所包含的元数据,通过主机存储空间分配单元在主机的存储单元内为用于各个执行体的具体数据块的头部数据和内容数据静态分配连续的固定大小的整体存储空间并连续存储头部数据和内容数据,其中所分配的存储空间在对同一类数据处理的过程中始终保持该存储空间,并且由于头部数据内元数据基于具体数据块的内容数据的变化而改变,从而使得被分配占用的存储单元在数据处理完成之前一直处于动态变化的状态;以及
在与主机相连的外部设备上,在外部设备需要拷贝或处理具体数据块时或者主机的控制单元向外部设备发送数据拷贝或处理命令时,从主机所获得的命令中包含的头部数据中的元数据的值,基于从主机所获得的命令中包含的存储空间确定单元所修改的头部数据所包含的元数据的值,通过外部设备存储空间分配单元在外部设备的存储单元内为具体数据块的内容数据静态分配固定大小的存储空间,并按照所修改的元数据的值,将内容数据的具体内容部分动态地分配存储在对应的子存储空间,
其中,当内容数据发生变化时,存储在主机中的头部数据的元数据仅仅是其具体值发生变化,主机向外部设备发送的命令中所携带的头部数据的与命令有关的元数据的值,使得外部设备仅仅获取传输给***设备的命令中所包含的头部数据的元数据的值,由此使得外部设备的其他运算单元能够基于头部数据的元数据的指引,直接获取内容数据的特定部分,以便在头部数据内元数据基于具体数据块的内容数据的变化而改变时,使得外部设备被静态分配的存储单元在数据处理完成之前一直处于内容数据动态变化的状态,从而动态使用所分配的静态存储空间,以加快数据读取的速度和运算数据。
6.如权利要求5所述的对静态存储块进行动动态分配的方法,其中所述元数据包括表示数据块大小的元数据以及数据块形状的元数据。
7.如权利要求5或6所述的对静态存储块进行动态存储的方法,其中所述元数据还包括用于描述内容数据的具体内容的张量的元数据。
8.如权利要求7所述的对静态存储块进行动态分配的方法,其中所述外部设备基于来自主机的包含头部数据的指令,存取对应的子存储空间内的内容数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633585.3A CN110245024B (zh) | 2019-07-15 | 2019-07-15 | 静态存储块的动态分配***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633585.3A CN110245024B (zh) | 2019-07-15 | 2019-07-15 | 静态存储块的动态分配***及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245024A CN110245024A (zh) | 2019-09-17 |
CN110245024B true CN110245024B (zh) | 2023-12-05 |
Family
ID=67892218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910633585.3A Active CN110245024B (zh) | 2019-07-15 | 2019-07-15 | 静态存储块的动态分配***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245024B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158919B (zh) * | 2020-01-20 | 2020-09-22 | 北京一流科技有限公司 | 内存资源原地共享决策***及其方法 |
CN112148795B (zh) * | 2020-09-27 | 2021-06-15 | 上海依图网络科技有限公司 | 一种数据处理方法、装置、设备及介质 |
CN113568677A (zh) * | 2021-07-14 | 2021-10-29 | 上海淇玥信息技术有限公司 | 一种数据对象解析方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678414A (zh) * | 2012-09-25 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种存储及查找数据的方法及装置 |
CN103885728A (zh) * | 2014-04-04 | 2014-06-25 | 华中科技大学 | 一种基于固态盘的磁盘缓存*** |
CN104881333A (zh) * | 2014-02-27 | 2015-09-02 | 国际商业机器公司 | 一种存储***及其使用的方法 |
CN105808622A (zh) * | 2014-12-31 | 2016-07-27 | 乐视网信息技术(北京)股份有限公司 | 一种文件存储的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180088846A1 (en) * | 2016-09-27 | 2018-03-29 | Seagate Technology Llc | Multi-user dynamic storage allocation and encryption |
-
2019
- 2019-07-15 CN CN201910633585.3A patent/CN110245024B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678414A (zh) * | 2012-09-25 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 一种存储及查找数据的方法及装置 |
CN104881333A (zh) * | 2014-02-27 | 2015-09-02 | 国际商业机器公司 | 一种存储***及其使用的方法 |
CN103885728A (zh) * | 2014-04-04 | 2014-06-25 | 华中科技大学 | 一种基于固态盘的磁盘缓存*** |
CN105808622A (zh) * | 2014-12-31 | 2016-07-27 | 乐视网信息技术(北京)股份有限公司 | 一种文件存储的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110245024A (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010681B2 (en) | Distributed computing system, and data transmission method and apparatus in distributed computing system | |
EP3889774A1 (en) | Heterogeneous computing-based task processing method and software-hardware framework system | |
CN106991011B (zh) | 基于cpu多线程与gpu多粒度并行及协同优化的方法 | |
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN110245024B (zh) | 静态存储块的动态分配***及其方法 | |
US9274904B2 (en) | Software only inter-compute unit redundant multithreading for GPUs | |
US9378533B2 (en) | Central processing unit, GPU simulation method thereof, and computing system including the same | |
CN111667542B (zh) | 适用于人工神经网络的用于处理压缩数据的解压缩技术 | |
KR101900436B1 (ko) | 결합된 cpu/gpu 아키텍처 시스템에서의 디바이스의 발견 및 토폴로지 보고 | |
CN113034629B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN112162854A (zh) | 一种cpu-gpu间计算任务调度方法、***及介质 | |
US9041719B2 (en) | Method and system for transparently directing graphics processing to a graphical processing unit (GPU) of a multi-GPU system | |
TW201337829A (zh) | 暫存器檔案型讀取 | |
US8127074B2 (en) | Mechanism for a reader page for a ring buffer | |
CN115525417A (zh) | 数据通信方法、通信***及计算机可读存储介质 | |
CN110347450B (zh) | 多流并行控制***及其方法 | |
US11467836B2 (en) | Executing cross-core copy instructions in an accelerator to temporarily store an operand that cannot be accommodated by on-chip memory of a primary core into a secondary core | |
CN103218259A (zh) | 计算任务的调度和执行 | |
US10198784B2 (en) | Capturing commands in a multi-engine graphics processing unit | |
WO2023160484A1 (zh) | 一种图像处理的方法及相关装置和*** | |
CN111240745A (zh) | 交叉执行的增强型标量向量双管线架构 | |
CN114371920A (zh) | 一种基于图形处理器加速优化的网络功能虚拟化*** | |
US11954534B2 (en) | Scheduling in a container orchestration system utilizing hardware topology hints | |
CN113296972A (zh) | 一种信息的注册方法、计算设备及存储介质 | |
CN111274161A (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 |