CN110245024B - Dynamic allocation system and method for static storage blocks - Google Patents
Dynamic allocation system and method for static storage blocks 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
Abstract
The present disclosure relates to a dynamic allocation system of static memory blocks, comprising: a storage space determining unit that generates header data containing metadata corresponding to content data of the data block for the data block to be processed, thereby determining a space size to be allocated for the data block by the host storage unit and a space size to be allocated for the data block by the peripheral device, and modifying the metadata of the header data when acquiring the specific data block; the host memory space allocation unit allocates a continuous fixed-size overall memory space for the header data and the content data of the specific data block and continuously stores the header data and the content data in the memory unit of the host based on the modified metadata; and an external device storage space allocation unit that allocates a fixed-size storage space for the content data of the specific data block in the storage unit of the external device and stores the content data based on the metadata included in the header data modified by the storage space determination unit.
Description
Technical Field
The present disclosure relates to a dynamic allocation system of static memory blocks and a method thereof, and more particularly, to a system and a method for implementing dynamic allocation of fixed memory space in a static memory system.
Background
With the advent of big data computing and deep learning, various coprocessors are commonly used to offload the data processing functions of the CPU. Such as GPU (Graphic Processing Unit), APU, etc. The GPU has a highly parallel architecture (highly parallel structure), so the GPU has a higher efficiency than the CPU in processing graphics data and complex algorithms. When the CPU executes the calculation task, only one data is processed at one moment, no real parallelism exists, and the GPU is provided with a plurality of processor cores, and can process a plurality of data at one moment in parallel. The GPU has more ALUs (Arithmetic Logic Unit, logical operation executives) for data processing than the CPU, rather than data caching and flow control. Such a structure is well suited for large-scale data that are highly uniform in type, independent of each other, and a clean computing environment that does not need to be interrupted. Existing big data computing and deep learning systems employ dynamic allocation of storage space that can control the exact size and lifetime of these storage space locations. During system operation, if these memory spaces are not freed, this can lead to an application crash, because at some point in time the system cannot allocate more memory, a memory leak or memory crash (OOM) situation can occur.
It is therefore desirable to have a big data computing and deep learning system that is immune to data block size variations, thereby eliminating the situation of memory space crashes (OOMs).
Disclosure of Invention
Since the big data and the data of the deep learning process have a highly uniform type, it is possible to provide a method capable of eliminating the above-mentioned problems existing in the prior art. According to one aspect of the present disclosure, there is provided a dynamic allocation system of static memory blocks, comprising: a storage space determining unit that generates header data of content data corresponding to a data block for the data block to be processed, the header data containing metadata describing specific content of the content data, thereby determining a space size to be allocated for the data block by the host storage unit and a space size to be allocated for the data block by the peripheral device, and modifying the header data when acquiring the specific data block; a host memory space allocation unit that allocates a continuous fixed-size overall memory space for the header data and the content data of the specific data block within the memory unit of the host based on the metadata included in the header data modified by the memory space determination unit; and an external device storage space allocation unit that allocates a fixed-size storage space for the content data of the specific data block in the storage unit of the external device based on the metadata included in the header data modified by the storage space determination unit.
A dynamic allocation system for static memory blocks according to the present disclosure, wherein the metadata includes size metadata of the data blocks and shape metadata of the data blocks.
A dynamic allocation system of static memory blocks according to the present disclosure, wherein the metadata further comprises metadata for describing tensors of specific content of the content data.
The dynamic allocation system of static memory blocks according to the present disclosure, wherein the external device accesses content data in the corresponding sub-memory space based on an instruction containing header data from the host.
According to another aspect of the present disclosure, there is provided a method of dynamically allocating static memory blocks, including: generating header data of content data corresponding to a data block for the data block to be processed by a storage space determining unit, the header data containing metadata describing specific content of the content data; determining a size of space to be allocated by the host storage unit for the data block and a size of space to be allocated by the peripheral device for the data block; modifying header data when a specific data block is acquired; on the host memory unit, based on the metadata contained in the header data modified by the memory space determining unit, allocating, by the host memory space allocating unit, a continuous fixed-size overall memory space for the header data and the content data of a specific data block within the memory unit of the host; and on an external device connected with the host, allocating, by the external device storage space allocation unit, a storage space of a fixed size for content data of a specific data block in a storage unit of the external device based on metadata contained in the header data modified by the storage space determination unit, and dynamically allocating and storing a specific content portion of the content data in a corresponding sub-storage space according to a value of the modified metadata.
The method for dynamically allocating static memory blocks according to the present disclosure, wherein the metadata includes size metadata of the data blocks and shape metadata of the data blocks.
The method for dynamically allocating static memory blocks according to the present disclosure, wherein the metadata further comprises metadata describing tensors of specific contents of the content data.
According to the method for dynamically allocating static memory blocks, the external device accesses content data in the corresponding sub-memory space based on an instruction containing header data from a host.
By performing the static allocation of the storage spaces of the host and the external device, the control capability of the device adopting the system on data and operation can be enhanced. Meanwhile, although the data types in deep learning and big data calculation are highly uniform, there are slight changes of the data in the actual business scene, so that the metadata in the header data are modified by the fact that the content data of the data blocks are in a dynamic storage state in a static space, and that the host and the external device can know the specific storage condition of the data blocks in the respective storage units. Thereby more efficiently using the content data stored in the fixed-size storage space.
The advantage of the static state is that at the beginning of the program start-up, all the required memory is allocated so he gives the whole problem of OOM to be eliminated. This is a benefit of a relatively dynamic allocation of memory to statically allocate memory.
When the host according to the present disclosure is used in the field of big data technology and deep learning and constitutes a distributed system with external devices such as a CPU and a GPU, since there are a large number of copies of data and data interactions, it is very important how to reduce the amount of data interacted to increase the speed of data transmission in the case where the communication bandwidth of the GPU and the outside is fixed. In contrast, in the dynamic storage system employing the static storage block according to the present disclosure in big data calculation and deep learning, since the external device separates the content data from the header data, data interaction between the external device and the host device saves the header data and only the value of the metadata in the header data needs to be acquired to operate the locally stored content data, thereby saving communication overhead between the host and the external device. More importantly, the fixed storage space is determined by adopting the head data, so that the storage space sharing among different specific data blocks can be realized in the operation process, namely, after the former data block is used, the latter data block is directly stored in the same storage space under the guidance of the head data without carrying out dynamic space allocation on the subsequent data, thereby saving the operation cost of the storage space allocation, improving the fluidity of the data receiving and processing, and naturally improving the data processing speed.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the disclosure and together with the description, serve to explain the principles of the disclosure.
The disclosure will now be described in detail by way of example with reference to the accompanying drawings, in which:
FIG. 1 is a schematic diagram of a dynamic allocation system of static memory blocks according to the present disclosure;
FIG. 2 is a flow chart illustrating a method of dynamically storing static memory blocks in a distributed system according to the present disclosure.
Detailed Description
The present disclosure is described in further detail below with reference to examples and drawings to enable those skilled in the art to practice the disclosure as a result of the description.
Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numbers in different drawings refer to the same or similar elements, unless otherwise indicated. The implementations described in the following exemplary examples are not representative of all implementations consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with some aspects of the present disclosure as detailed in the accompanying claims.
The terminology used in the present disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the present disclosure. As used in this disclosure and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used herein refers to and encompasses any or all possible combinations of one or more of the associated listed items.
It should be understood that although the terms first, second, third, etc. may be used in this disclosure to describe various information, these information should not be limited to these terms. These terms are only used to distinguish one type of information from another. For example, one of the two possible devices may be referred to hereinafter as a first host or a second host, and similarly the other of the two possible devices may be referred to as a second external device or a first external device, without departing from the scope of the present disclosure. The word "if" as used herein may be interpreted as "at … …" or "at … …" or "responsive to a determination", depending on the context.
In order that those skilled in the art will better understand the present disclosure, the present disclosure will be described in further detail below with reference to the accompanying drawings and detailed description.
FIG. 1 is a schematic diagram illustrating a dynamic allocation system of static memory blocks according to the present disclosure. As shown in fig. 1, in a system for big data calculation and deep learning, an external device 200, such as a GPU, etc., may be connected to a host 100. In a distributed system, the hosts are also connected to each other, thereby completing the computing service. As shown in FIG. 1, hosts are labeled 100-1 and 100-2, and external devices are labeled 200-1 and 200-2. In the following description, the host 100 and the external device 100 are referred to as such unless otherwise indicated. The host 100 includes a control unit 10 and a storage unit 40 of the host 100. The host 100 has other constituent elements of a general host, and are not described in detail herein. The control unit 100 includes a storage space determining unit 20 and a storage space allocating unit 30. The external device 200 connected to the host 100 includes a control unit 50 and a storage unit 70. The external device 20 also has a common constituent unit of an external device (for example, GPU), and is not described again. The control unit 50 of the external device 200 includes a storage space allocation unit 60.
The size of the memory space required for the same type of data can be predetermined based on its regular size, thereby configuring a fixed memory space in the computing system. For this purpose, the storage space determining unit 20 generates header data of content data corresponding to a data block for the data block to be processed, the header data containing metadata describing specific content of the content data. And the storage space determining unit 20 determines the size of the space to be allocated for the data block by the storage unit 40 of the host 100 and the size of the space to be allocated for the data block by the storage unit 70 of the peripheral 200, with the size of the same type of data block as an upper limit. For example, if the maximum size of a data block of the same type is 4M, a storage space of 5M may be determined for such a data block, or a space of only 4M may be determined. The metadata includes data type, size metadata, and data shape metadata of the data block. The metadata contained is typically expressed in terms of specified fields. Table 1 schematically shows the structure of header data:
table 1 (head data structure)
As shown in table 1 above, the header data that generates the content data corresponding to the data block for the data block to be processed by the storage space determining unit 20 is initially only one header data frame. In other words, the header data initially generated determines the metadata item and the initial value contained in the header data, and specifies the unified description information possessed by the data block to be processed. In particular, the values of these metadata fields are only a boolean value or a scalar. For example, the data type metadata is a scalar. The data shape metadata is also a scalar. And the metadata describing the details of the content data may be a boolean value, e.g. 0 or 1. If its initial value is 1, it indicates that there is the metadata, and if its initial value is 0, it indicates that there is no metadata. Although table 1 schematically shows a structure of header data, it does not mean that the header data mentioned in the present disclosure must contain all metadata names and fields shown in the illustrative examples. For example, the field is_body_disable is not included in the normal header data. This field typically only exists in one type of transport handler so that the transport handler only provides header data for its downstream handler.
With the arrival of a specific data block, the storage space determining unit 20 correspondingly modifies metadata of the header data that has been generated for describing details of the content data based on the specific content of the specific data block, thereby obtaining accurate description information of the content data. For example, the value of "has_dim1_valid_num" of a field of content data describing a data block is modified into a matrix, for example, in order to describe a specific composition of the content data.
After the modified header data is obtained, the storage space allocation unit 30 of the host 100 allocates a continuous fixed-size overall storage space for the header data and the content data of the specific data block in the host storage space 40 based on the metadata included in the header data modified by the storage space determination unit 20.
Alternatively, in some cases, there may be no need to allocate a space size or the allocated space size may be zero. For example, in the case where the header data contains the section is_body_disable, there is no need to allocate a space for the content data.
Shown in table 2 is a schematic structure of header data and content data continuously stored in the storage unit 40 of the host 100.
TABLE 2
Meanwhile, when the external device 200 needs to copy or process a specific data block or when the control unit 10 of the host 100 transmits a data copy or process command to the external device 200, the storage space allocation unit 60 of the external device 200 allocates a storage space of a fixed size in the storage unit 70 based on the value of metadata in header data included in a command obtained from the host 100 and stores the contents of the obtained data block in the allocated fixed storage space. Shown in table 3 is a schematic structure of content data stored in the storage unit 70 of the external device.
TABLE 3 Table 3
In a data processing system of a dynamic memory system containing static memory blocks according to the present disclosure, the memory space where each executable of a host and an external device is statically allocated remains throughout the course of processing the same kind of data, but is below its maximum space, and since metadata in header data changes based on the change of content data of a specific data block, the memory unit 40 or 70 allocated to occupy is in a dynamically changing state until the data processing is completed. The static memory space allocation method based on the head data reduces the situation that the memory space is crashed under special conditions when the memory space is dynamically allocated. Furthermore, under the static allocated space, the allocated static storage space is dynamically used based on the change of metadata of the header data, so that other operation units of the external device can directly acquire a specific part of the content data based on the direction of the metadata of the header data, thereby accelerating the speed of data reading and operation data.
As shown in fig. 1, when the transfer of the data block is performed between the host 100-1 and the host 100-2, since the host 100-1 and the host 100-2 operate independently of each other, when the host 100-1 needs the data block 2 in the host 100-2, it is necessary to copy all the data of the data block 2 to the host 100-1. Since the header data and the content data of the data block 2 are stored consecutively, the data copying can be performed by one initiation (LAUNCH), otherwise, if the header data and the content data are stored separately, the transfer of the data block between the hosts 100-1 and 100-2 needs to be completed twice. Therefore, the continuous storage of the header data and the content data in the static storage space on the hosts can reduce the number of data transmissions during data copying between the hosts, thereby reducing transmission overhead.
Between the host 100-1 and the external device 200-1 connected thereto, to obtain a data block of the host 100-1, the host 100 only needs to copy the content data portion, and does not need to copy the header data, as the value of the metadata related to the command of the header data carried in the command sent to the external device. Therefore, in the actual data processing, only a small amount of command signals and the values of metadata of header data carried by the command signals are contained, in addition to the transmission of specific content data, between the host 100 and the external device. When the content data of the data block changes, the metadata of the header data stored in the host 100 changes only in its specific value, which is represented in the external device only as a change in the content data and a change in the value of the metadata of the header data contained in the command transmitted to the peripheral device. Since there is a large amount of data interaction between the host and the external device, the amount of data interaction is reduced and the speed of data processing is increased by eliminating or reducing the interaction of header data, that is, by separately storing header data required for operation of the external device on the host device. The reading of the content data on the external device 200 is then performed based on the value of the command-related metadata from the header data carried in the command sent by the host 100 to the external device.
FIG. 2 is a flow chart illustrating a method of dynamically storing static memory blocks in a distributed system according to the present disclosure. As shown in fig. 2, first, at step S310, header data of content data corresponding to a data block is generated for the data block to be processed by the storage space determining unit 20 of the host 100, the header data containing metadata describing specific content of the content data, before processing a large number of like data blocks. As described above, in performing big data calculation and deep learning, generally facing the same type of data, the size of a required storage space thereof can be predetermined based on the conventional size thereof, thereby configuring a fixed storage space in the computing system. This opens the possibility for implementation of static storage. For this purpose, the storage space determining unit 20 generates header data of content data corresponding to a data block for the data block to be processed, the header data containing metadata describing specific content of the content data. A fixed storage space is determined by one of the metadata in the header data. Thus, at step S320, the storage space determining unit 20 determines the size of the space to be allocated for the data block by the storage unit 40 of the host 100 and the size of the space to be allocated for the data block by the storage unit 70 of the peripheral device 200.
Subsequently, at step S330, upon receiving the data block, the storage space determining unit 20 modifies the metadata within the header data based on the content data of the specific data block. Specifically, as shown in table 2 above, for example, metadata "has_dim0_valid_num" in the header data that is initially generated is modified to "dim0_valid_num" and has_dim1_valid_num "is modified to" dim1_valid_num "or the like. After the header data is modified according to the specific data block, the storage space allocation unit 30 of the host 100 allocates a continuous fixed-size overall storage space for the header data and the content data of the specific data block and continuously stores the header data and the content data in the storage space 40 of the host 100 based on the metadata included in the header data modified by the storage space determination unit 20 at step S340. Simultaneously with step S340, at step S350, the storage space allocation unit 60 of the external device 200, after receiving the values containing the metadata included in the header data modified by the storage space determination unit 20, allocates a fixed-size storage space for the content data of the specific data block at the storage unit 70 of the external device 200 based on the values of these metadata, and dynamically allocates and stores the specific content portion of the content data in the corresponding sub-storage space in accordance with the values of the modified metadata. When a new specific data block is subsequently received at step S360, the header data is updated from S330, thereby modifying the value of the metadata of the header data based on the data content of the new data block, after which the storage space in the host is updated with the header data and the content data of the new data block, while the fixed storage space in the storage unit of the external device is updated based on the new modified metadata.
Although the storage space determining unit and the storage space allocating unit are described as two separate individuals in the description of the present disclosure, alternatively, the storage space determining unit itself may be a part of the storage space allocating unit, and both as one integral body of the host control unit complete the generation of the header data for the data block and the determination of the static storage space. Thus, although the present disclosure describes the two separately, it is not meant to imply that the two exist separately from each other in the arrangement necessary to implement the present disclosure.
When the host according to the present disclosure is used in the field of big data technology and deep learning and constitutes a distributed system with external devices such as a CPU and a GPU, since there are a large number of copies of data and data interactions, it is very important how to reduce the amount of data interacted to increase the speed of data transmission in the case where the communication bandwidth of the GPU and the outside is fixed. In contrast, in the dynamic storage system employing the static storage block according to the present disclosure in big data calculation and deep learning, since the external device separates the content data from the header data, data interaction between the external device and the host device saves the header data and only the value of the metadata in the header data needs to be acquired to operate the locally stored content data, thereby saving communication overhead between the host and the external device. More importantly, the fixed storage space is determined by adopting the head data, so that the storage space sharing among different specific data blocks can be realized in the operation process, namely, after the former data block is used, the latter data block is directly stored in the same storage space under the guidance of the head data without carrying out dynamic space allocation on the subsequent data, thereby saving the operation cost of the storage space allocation, improving the fluidity of the data receiving and processing, and naturally improving the data processing speed.
Thus far, this specification describes a dynamic memory system of a static memory block and a method thereof according to an embodiment of the present disclosure. According to the dynamic storage system and the method for the static storage block, the header data of the data block is generated and the header data is modified to describe the content data of the data block, so that the use efficiency of the storage space of the storage unit is greatly improved, the data communication overhead between the host and the external equipment and between the host and the host is reduced, and the data processing efficiency of the distributed computing system is improved.
While the basic principles of the present disclosure have been described above in connection with specific embodiments, it should be noted that all or any steps or components of the methods and apparatus of the present disclosure can be implemented in hardware, firmware, software, or combinations thereof in any computing device (including processors, storage media, etc.) or network of computing devices, as would be apparent to one of ordinary skill in the art upon reading the present disclosure.
Thus, the objects of the present disclosure may also be achieved by running a program or set of programs on any computing device. The computing device may be a well-known general purpose device. Thus, the objects of the present disclosure may also be achieved by simply providing a program product containing program code for implementing the method or apparatus. That is, such a program product also constitutes the present disclosure, and a storage medium storing such a program product also constitutes the present disclosure. It is apparent that the storage medium may be any known storage medium or any storage medium developed in the future.
It should also be noted that in the apparatus and methods of the present disclosure, it is apparent that the components or steps may be disassembled and/or assembled. Such decomposition and/or recombination should be considered equivalent to the present disclosure. The steps of executing the series of processes may naturally be executed in chronological order in the order described, but are not necessarily executed in chronological order. Some steps may be performed in parallel or independently of each other.
The above detailed description should not be taken as limiting the scope of the present disclosure. It will be apparent to those skilled in the art that various modifications, combinations, sub-combinations and alternatives can occur depending upon design requirements and other factors. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present disclosure are intended to be included within the scope of the present disclosure.
Claims (8)
1. A dynamic allocation system for static memory blocks, comprising:
a storage space determining unit that generates header data of content data corresponding to a data block for the data block to be processed, the header data containing metadata describing specific content of the content data, thereby determining a space size to be allocated for the data block by the host storage unit and a space size to be allocated for the data block by the peripheral device, and modifying the header data when acquiring the specific data block;
a host memory space allocation unit that statically allocates, for head data and content data of specific data blocks for respective executives, a continuous fixed-size overall memory space and continuously stores the head data and the content data within a memory unit of the host based on metadata included in the head data modified by the memory space determination unit, wherein the allocated memory space always maintains the memory space during processing of the same kind of data, and since metadata within the head data changes based on a change in the content data of the specific data blocks, the memory unit occupied by allocation is in a dynamically changed state until the data processing is completed; and
an external device storage space allocation unit that, when the external device needs to copy or process a specific data block or when a control unit of the host transmits a data copy or process command to the external device, dynamically allocates and stores a specific content portion of the content data in a corresponding sub-storage space based on a value of metadata included in header data included in a command obtained from the host, the value of metadata included in header data modified by a storage space determination unit included in the command obtained from the host, statically allocates a storage space of a fixed size for the content data of the specific data block in a storage unit of the external device and according to the value of the modified metadata,
when the content data changes, the specific metadata value of the header data stored in the host changes, so that the host sends the command to the external device the command-related metadata value of the header data, the external device only acquires the command-related metadata value of the header data contained in the command transmitted to the peripheral device, and therefore other operation units of the external device can directly acquire specific parts of the content data based on the guidance of the header data metadata, and when the metadata changes based on the change of the content data of specific data blocks in the header data, the storage unit which is statically allocated by the external device is in a state that the content data changes dynamically until the data processing is completed, and the allocated static storage space is dynamically used, so that the data reading speed and the operation data are accelerated.
2. The dynamic allocation system of static memory blocks of claim 1, wherein said metadata comprises metadata representing a data block size and metadata of a data block shape.
3. The dynamic allocation system of static memory blocks according to claim 1 or 2, wherein said metadata further comprises metadata describing tensors of specific content of the content data.
4. The dynamic allocation system of static memory blocks according to claim 3, wherein said external device accesses content data in the corresponding sub-memory space based on an instruction containing header data from the host.
5. A method of dynamically allocating static memory blocks, comprising:
generating header data of content data corresponding to a data block for the data block to be processed by a storage space determining unit, the header data containing metadata describing specific content of the content data;
determining a size of space to be allocated by the host storage unit for the data block and a size of space to be allocated by the peripheral device for the data block;
modifying header data when a specific data block is acquired;
on the host memory unit, based on the metadata contained in the header data modified by the memory space determining unit, statically allocating, by the host memory space allocating unit, a continuous, fixed-size overall memory space for the header data and the content data of the specific data block for each execution body and continuously storing the header data and the content data in the memory unit of the host, wherein the allocated memory space always maintains the memory space during the same type of data processing, and since the metadata in the header data changes based on the change of the content data of the specific data block, the allocated and occupied memory unit is in a dynamically changed state until the data processing is completed; and
on an external device connected to a host, when the external device needs to copy or process a specific data block or when a control unit of the host transmits a data copy or process command to the external device, a value of metadata in header data included in a command obtained from the host is statically allocated a storage space of a fixed size for content data of the specific data block in a storage unit of the external device by an external device storage space allocation unit based on a value of metadata included in header data modified by a storage space determination unit included in the command obtained from the host, and a specific content portion of the content data is dynamically allocated and stored in a corresponding sub-storage space according to the value of the modified metadata,
when the content data changes, the metadata of the header data stored in the host changes only by a specific value, and the host sends the command to the external device the command-related metadata of the header data, so that the external device only acquires the command-related metadata of the header data contained in the command transmitted to the external device, thereby enabling other operation units of the external device to directly acquire a specific part of the content data based on the guidance of the metadata of the header data, so that when the metadata changes based on the change of the content data of a specific data block in the header data, the storage unit of the external device which is statically allocated is in a state in which the content data dynamically changes until the data processing is completed, and thus the allocated static storage space is dynamically used, so that the speed of data reading and operation data are accelerated.
6. The method for dynamically allocating a static memory block according to claim 5, wherein the metadata comprises metadata representing a size of the data block and metadata of a shape of the data block.
7. A method of dynamically storing static memory blocks as recited in claim 5 or 6, wherein the metadata further comprises metadata describing tensors of specific content of the content data.
8. The method of dynamically allocating a static memory block according to claim 7, wherein the external device accesses content data in the corresponding sub-memory space based on an instruction from the host containing header data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633585.3A CN110245024B (en) | 2019-07-15 | 2019-07-15 | Dynamic allocation system and method for static storage blocks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910633585.3A CN110245024B (en) | 2019-07-15 | 2019-07-15 | Dynamic allocation system and method for static storage blocks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245024A CN110245024A (en) | 2019-09-17 |
CN110245024B true CN110245024B (en) | 2023-12-05 |
Family
ID=67892218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910633585.3A Active CN110245024B (en) | 2019-07-15 | 2019-07-15 | Dynamic allocation system and method for static storage blocks |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245024B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158919B (en) * | 2020-01-20 | 2020-09-22 | 北京一流科技有限公司 | Memory resource in-place sharing decision system and method thereof |
CN112148795B (en) * | 2020-09-27 | 2021-06-15 | 上海依图网络科技有限公司 | Data processing method, device, equipment and medium |
CN113568677A (en) * | 2021-07-14 | 2021-10-29 | 上海淇玥信息技术有限公司 | Data object analysis method and device and electronic equipment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678414A (en) * | 2012-09-25 | 2014-03-26 | 腾讯科技(深圳)有限公司 | Method and device for storing and inquiring data |
CN103885728A (en) * | 2014-04-04 | 2014-06-25 | 华中科技大学 | Magnetic disk cache system based on solid-state disk |
CN104881333A (en) * | 2014-02-27 | 2015-09-02 | 国际商业机器公司 | Storage system and method for using same |
CN105808622A (en) * | 2014-12-31 | 2016-07-27 | 乐视网信息技术(北京)股份有限公司 | File storage method and device |
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/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678414A (en) * | 2012-09-25 | 2014-03-26 | 腾讯科技(深圳)有限公司 | Method and device for storing and inquiring data |
CN104881333A (en) * | 2014-02-27 | 2015-09-02 | 国际商业机器公司 | Storage system and method for using same |
CN103885728A (en) * | 2014-04-04 | 2014-06-25 | 华中科技大学 | Magnetic disk cache system based on solid-state disk |
CN105808622A (en) * | 2014-12-31 | 2016-07-27 | 乐视网信息技术(北京)股份有限公司 | File storage method and device |
Also Published As
Publication number | Publication date |
---|---|
CN110245024A (en) | 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 (en) | CPU multithreading and GPU (graphics processing unit) multi-granularity parallel and cooperative optimization based method | |
CN108647104B (en) | Request processing method, server and computer readable storage medium | |
CN110245024B (en) | Dynamic allocation system and method for static storage blocks | |
US9274904B2 (en) | Software only inter-compute unit redundant multithreading for GPUs | |
TW201413456A (en) | Method and system for processing nested stream events | |
JP2014504416A (en) | Device discovery and topology reporting in combined CPU / GPU architecture systems | |
US9378533B2 (en) | Central processing unit, GPU simulation method thereof, and computing system including the same | |
CN111667542B (en) | Decompression technique for processing compressed data suitable for artificial neural network | |
CN113034629B (en) | Image processing method, image processing device, computer equipment and storage medium | |
CN112162854A (en) | Method, system and medium for scheduling calculation tasks between CPU-GPU | |
US9041719B2 (en) | Method and system for transparently directing graphics processing to a graphical processing unit (GPU) of a multi-GPU system | |
TW201337829A (en) | Shaped register file reads | |
KR20140001970A (en) | Device discovery and topology reporting in a combined cpu/gpu architecture system | |
CN110347450B (en) | Multi-stream parallel control system and method thereof | |
CN103218259A (en) | Computer-implemented method for selection of a processor, which is incorporated in multiple processors to receive work, which relates to an arithmetic problem | |
CN115525417A (en) | Data communication method, communication system, and computer-readable storage medium | |
CN114816777A (en) | Command processing device, method, electronic device and computer readable storage medium | |
US10198784B2 (en) | Capturing commands in a multi-engine graphics processing unit | |
CN111240745A (en) | Enhanced scalar vector dual pipeline architecture for interleaved execution | |
US20110271060A1 (en) | Method And System For Lockless Interprocessor Communication | |
CN114371920A (en) | Network function virtualization system based on graphic processor accelerated optimization | |
CN115378937A (en) | Distributed concurrency method, device and equipment for tasks and readable storage medium | |
JP4964219B2 (en) | Image processing apparatus, method, and program |
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 |