A data processing method, computer program product, device and computer medium
By determining the memory layout structure of the to-processed data and result data during the data processing, and batch operations are carried out based on the layout structure and memory attribute detection results, the problems of low memory access performance and poor applicability in the prior art are solved, and broader applicability and higher memory access performance are achieved.
Patent Information
- Application Number
- CN202411658829.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-20
- Publication Date
- 2025-04-29
- Estimated Expiration
- 2044-11-20
AI Technical Summary
The prior art cannot effectively improve memory access performance during data processing, and its applicability is limited.
By determining the layout structure of the to-processed data and result data in memory, the target data is operated in batches in memory based on the consistency of the layout structure and the density and continuity detection results of the memory.
It expands the types of data in batches in memory, has wider applicability, improves memory access performance, and improves the processing efficiency of image data, language data or text data.
Smart Images

Figure CN119166467B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computer technology, and more specifically, to a data processing method, a computer program product, a device and a computer medium. Background Art
[0002] Currently, data can be processed with the help of computing devices. In this process, data needs to be accessed through memory, such as detecting whether the data is continuous in the memory and performing batch operations on the data in the memory based on the detection results of continuity. However, this method can only perform batch operations on the data in the memory based on the detection results of continuity in the memory, which has high limitations, poor applicability, and affects memory access performance.
[0003] In summary, how to improve memory access performance during data processing is an urgent problem to be solved by those skilled in the art. Summary of the invention
[0004] The purpose of the present invention is to provide a data processing method, which can solve the technical problem of how to improve the memory access performance in the data processing process to a certain extent. The present invention also provides a computer program product, an electronic device and a computer readable storage medium.
[0005] In order to achieve the above object, the present invention provides the following technical solutions:
[0006] In a first aspect, a data processing method is provided, comprising:
[0007] Determine the layout structure of the data to be processed in the input memory, wherein the data to be processed includes image data or language data or text data;
[0008] Determining a layout structure of result data in an output memory, wherein the result data includes data obtained after processing the data to be processed;
[0009] In response to the layout structure of the data to be processed being consistent with the layout structure of the result data, batch operations are performed on the target data in the memory according to the density detection result of the memory;
[0010] In response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, batch operations are performed on the target data in the memory according to the storage continuity detection result of the memory;
[0011] Among them, the target data includes the data to be processed to be read from the input memory, or the result data to be written into the output memory; memory density includes that the storage addresses of data in the memory are continuous; and memory storage continuity includes that data are stored in sequence at continuous addresses of the memory.
[0012] On the other hand, according to the memory density detection result, the target data is operated in batches in the memory, including:
[0013] In response to the fact that both the input memory and the output memory are not dense, the target data is compressed according to the dimension size value to obtain the data to be operated, and the data to be operated is operated in batches in the memory according to the thread program number and the data structure.
[0014] On the other hand, the target data is compressed according to the dimension size value to obtain the data to be operated, including:
[0015] Determine the dimension size and step size of the target data;
[0016] Determine the number of data values for batch operations on data;
[0017] Reduce the dimension size value corresponding to the preset step size in the target data by N times to obtain the data to be operated, where the value of N is equal to the number of data.
[0018] On the other hand, according to the memory density detection result, the target data is operated in batches in the memory, including:
[0019] In response to the input memory and the output memory being dense, the target data is used as the data to be accessed, and the data to be accessed is operated in batches in the memory according to the line program number.
[0020] On the other hand, according to the memory storage continuity detection result, the target data is operated in batches in the memory, including:
[0021] In response to the fact that the storage of the input memory is continuous and the storage of the output memory is discontinuous, the data to be processed is used as the data to be accessed, and operations are performed on the accessed data in batches in the memory according to the line program number; the result data is used as the data to be operated, and operations are performed on the data to be operated in batches in the memory according to the line program number and the data structure.
[0022] On the other hand, according to the memory storage continuity detection result, the target data is operated in batches in the memory, including:
[0023] In response to the fact that the storage of the input memory is discontinuous and the storage of the output memory is continuous, the data to be processed is used as the data to be operated, and the data to be operated is batch operated in the memory according to the line program number and the data structure, and the result data is used as the data to be accessed, and the data to be accessed is batch operated in the memory according to the line program number.
[0024] On the other hand, operations are performed on the accessed data in batches in memory according to the thread program number, including:
[0025] Determine a first sequence number of a first thread that operates on the data to be accessed;
[0026] Determine the memory offset address corresponding to the first sequence number according to the relationship between the line program number and the memory offset address;
[0027] The data to be accessed are operated on in batches in the memory according to the memory offset address corresponding to the first sequence number.
[0028] On the other hand, determining a first sequence number of a first thread that operates on the data to be accessed includes:
[0029] Determine a first thread to operate on the data to be accessed;
[0030] Determining a first index of the first thread in a thread grid;
[0031] Determine a second index of the first thread in the thread block to which it belongs;
[0032] The first sequence number is determined according to the first index and the second index.
[0033] On the other hand, according to the memory storage continuity detection result, the target data is operated in batches in the memory, including:
[0034] In response to the fact that the storage of the input memory and the output memory is not continuous, the target data is used as the data to be operated, and the data to be operated is operated in batches in the memory according to the line program number and the data structure.
[0035] On the other hand, operations are performed on the data to be operated in batches in memory according to the thread program number and data structure, including:
[0036] Determine a second sequence number of a second thread that operates the data to be operated;
[0037] Determine the dimensions of the data to be operated on;
[0038] Determine the step size of the data to be operated;
[0039] Determine the dimension size value of the data to be operated;
[0040] Determine the number of data values for batch operations on data;
[0041] Generate a memory offset address of the data to be operated according to the second sequence number, the dimension of the data to be operated, the step size of the data to be operated, the dimension size value of the data to be operated, and the number of data values;
[0042] According to the memory offset address of the data to be operated, the data to be operated is operated on in batches in the memory.
[0043] On the other hand, generating a memory offset address of the data to be operated according to the second sequence number, the dimension of the data to be operated, the step size of the data to be operated, the dimension size value of the data to be operated, and the number of data values includes:
[0044] Assign the dimension of the data to be operated to the cumulative number value;
[0045] Assigning the second sequence number to the set sequence number;
[0046] Check whether the cumulative number value is greater than or equal to zero;
[0047] In response to the cumulative number value being greater than or equal to zero, the ratio of the set sequence number to the dimension size value of the data to be operated at the cumulative number value is used as the row value, and the product value of the row value and the dimension size value of the data to be operated at the cumulative number value is generated, and the difference between the set sequence number and the product value is used as the number of columns, and the product value of the column number and the step size of the data to be operated at the cumulative number value is used as the memory offset address of the data to be operated, and the row number is assigned to the set sequence number; the cumulative number value is reduced by 1, and the step of detecting whether the cumulative number value is greater than or equal to zero is returned to execute;
[0048] In response to the accumulated number of times being less than zero, the memory offset address of the data to be operated is output.
[0049] On the other hand, the layout structure of the data to be processed in the input memory is determined, including:
[0050] Determine how the data to be processed is stored in the input memory;
[0051] Determining the calculation order of the data to be processed in the input memory;
[0052] The storage method of the data to be processed and the calculation order of the data to be processed are used as the layout structure of the data to be processed in the input memory.
[0053] In a second aspect, a computer program product is provided, comprising a computer program / instruction, which implements the steps of any of the above data processing methods when executed by a processor.
[0054] According to a third aspect, an electronic device is provided, including:
[0055] Memory for storing computer programs;
[0056] A processor is used to implement the steps of any of the above data processing methods when executing the computer program.
[0057] According to a fourth aspect, a computer-readable storage medium is provided, wherein a computer program is stored in the computer-readable storage medium, and when the computer program is executed by a processor, the steps of any of the above data processing methods are implemented.
[0058] The present invention provides a data processing method, which determines the layout structure of data to be processed in an input memory, wherein the data to be processed includes image data, language data or text data; determines the layout structure of result data in an output memory, wherein the result data includes data obtained after processing the data to be processed; in response to the consistency between the layout structure of the data to be processed and the layout structure of the result data, batch operations are performed on target data in the memory according to a density detection result of the memory; in response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, batch operations are performed on target data in the memory according to a storage continuity detection result of the memory; wherein the target data includes data to be processed to be read from the input memory, or result data to be written to the output memory; memory density includes that the storage addresses of the data in the memory are continuous; and memory continuity includes that the data are sequentially stored at continuous addresses in the memory. The beneficial effects of the present invention are as follows: when the layout structure of the data to be processed is consistent with the layout structure of the result data, the target data can be operated in batches in the memory according to the density detection result of the memory; when the layout structure of the data to be processed is inconsistent with the layout structure of the result data, the target data can be operated in batches in the memory according to the storage continuity detection result of the memory. In this way, the data can be operated in batches in the memory according to the layout structure consistency detection result, the density detection result and the storage continuity detection result. Compared with the scheme of operating the data in batches in the memory only according to the memory continuity, the types of situations in which the data is operated in batches in the memory are expanded, the applicability is wider, the memory access performance is improved, and further, the image data or language data or text data can be operated in the memory more efficiently, thereby improving the processing efficiency of the image data or language data or text data. A computer program product, an electronic device and a computer-readable storage medium provided by the present invention also solve the corresponding technical problems. BRIEF DESCRIPTION OF THE DRAWINGS
[0059] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying creative work.
[0060] Figure 1 A flowchart of a data processing method provided by an embodiment of the present invention;
[0061] Figure 2 Another flow chart of a data processing method provided by an embodiment of the present invention;
[0062] Figure 3 Another flow chart of a data processing method provided by an embodiment of the present invention;
[0063] Figure 4 A schematic diagram of the structure of an electronic device provided by an embodiment of the present invention;
[0064] Figure 5 Another structural schematic diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0065] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0066] See also Figure 1 , Figure 1 A flowchart of a data processing method provided by an embodiment of the present invention.
[0067] A data processing method provided by an embodiment of the present invention may include the following steps:
[0068] Step S101: determining the layout structure of the data to be processed in the input memory, where the data to be processed includes image data or language data or text data.
[0069] Step S102: determining the layout structure of result data in the output memory, where the result data includes data obtained after processing the data to be processed.
[0070] In practical applications, data processing is inseparable from the interaction with memory. For example, it is necessary to use the input memory to save the data to be processed, and use the output content to save the result data obtained after processing the data to be processed. In this way, it is necessary to perform corresponding operations on the data in the memory, such as reading the data to be processed from the input memory for processing, and storing the obtained result data in the output memory, etc. In this process, the data structure of the input memory and the output memory is set by the user, which will affect the data operation method. For example, whether the data is stored continuously in the memory will affect the way to operate the data in the memory, and the layout structure of the data in the memory will also affect the way to operate the data in the memory. Therefore, it is necessary to determine the layout structure of the data to be processed in the input memory, determine the layout structure of the result data in the output memory, detect whether the layout result of the data to be processed is consistent with the layout structure of the result data, and operate the data to be processed or the result data in batches according to the detection results.
[0071] It should be noted that the types and processing methods of the data to be processed and the result data can be flexibly determined according to the application scenario. For example, the data to be processed and the result data can both be image data, text data, or language data, etc., and the relationship between the data to be processed and the result data can be determined according to the processing method. For example, the result data can be the feature comparison result of the image, or can be the similarity calculation result of the text, or can be the fusion result of language data, etc. In addition, for a piece of memory, the corresponding storage data is [1,2,3,4,5,6], which is stored in the memory with continuous addresses from 0xa1 to 0xa6. Then this piece of memory is dense, that is, if the storage addresses of the data in the memory are continuous, the memory is dense, otherwise the memory is not dense. Furthermore, if the stored values (1,2,3,4,5,6) can be accessed sequentially, then this piece of memory is stored continuously, that is, if the data is stored in sequence in continuous addresses of the memory, the storage of the memory is continuous, otherwise the storage of the memory is not continuous. It can be seen that continuous storage of memory must be dense, but dense memory is not necessarily stored continuously, because density does not necessarily mean that it can be accessed sequentially. For example, the order of [1,2,3,4,5,6] may be (4,5,6,1,2,3) and so on. Furthermore, in the process of detecting whether the memory is dense, the dimension size value shape and stride of the data can be used for calculation. When the memory is dense, the product of the dimension size value elements is the maximum offset when the memory is dense, and sum((shape[i]-1)*stride[i]) is equal to the actual memory offset. If the two values are equal, the memory is dense, otherwise it is not dense. Correspondingly, in the process of judging whether the memory storage is continuous, shape and stride can also be used for calculation, i==dim, stride[i]=1, otherwise stride[i]=stride[i-1]*shape[i-1]. If this rule is met, the memory storage is continuous, otherwise the storage is not continuous. In other words, take data from the dimension of stride=1 in the memory, and be able to continuously obtain data that is the same as the data itself, then the memory storage is continuous.
[0072] In a specific application scenario, the layout structure of data in memory may include the storage method and calculation order of data in memory. In the process of determining the layout structure of the data to be processed in the input memory, the storage method of the data to be processed in the input memory may be determined; the calculation order of the data to be processed in the input memory may be determined; and the storage method of the data to be processed and the calculation order of the data to be processed may be used as the layout structure of the data to be processed in the input memory. Correspondingly, in the process of determining the layout structure of the result data in the output memory, the storage method of the result data in the output memory may be determined; the calculation order of the result data in the output memory may be determined; and the storage method of the result data and the calculation order of the result data may be used as the layout structure of the result data in the output memory.
[0073] It should be noted that the layout structure of the data can be NCHW or NHWC, etc. NCHW represents the four dimensions of the data. Taking image data as an example, the meaning can be as follows: N, batch size, represents the number of samples; C, channels, can correspond to the number of color channels in the image data (such as 3 channels of RGB images); H, height, can be the height of the image or the number of rows of the feature map; W, width, can be the width of the image or the number of columns of the feature map.
[0074] Step S103: in response to the layout structure of the data to be processed being consistent with the layout structure of the result data, operations are performed on the target data in batches in the memory according to the density detection result of the memory.
[0075] Step S104: In response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, operations are performed on the target data in batches in the memory according to the storage continuity detection result of the memory; the target data includes the data to be processed to be read from the input memory, or the result data to be written to the output memory.
[0076] In practical applications, when the layout structure of the data to be processed is consistent with the layout structure of the result data, the density of the memory will lead to different ways of operating the data in the memory, so it is necessary to batch operate the target data in the memory according to the result of the memory density detection. Correspondingly, when the layout structure of the data to be processed is inconsistent with the layout structure of the result data, the continuity of the memory storage will lead to different ways of operating the data in the memory, so it is necessary to batch operate the target data in the memory according to the result of the memory continuity detection. The target data refers to the data to be processed to be read from the input memory, or the result data to be written to the output memory. Accordingly, batch operating the target data in the memory means batch reading the data to be processed from the input memory, or batch writing the result data in the output memory.
[0077] The present invention provides a data processing method, which determines the layout structure of data to be processed in an input memory, wherein the data to be processed includes image data, language data or text data; determines the layout structure of result data in an output memory, wherein the result data includes data obtained after processing the data to be processed; in response to the consistency between the layout structure of the data to be processed and the layout structure of the result data, batch operations are performed on target data in the memory according to a density detection result of the memory; in response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, batch operations are performed on target data in the memory according to a continuity detection result of the memory; wherein the target data includes data to be processed to be read from the input memory, or result data to be written into the output memory; memory density includes that the storage addresses of the data in the memory are continuous; and memory continuity includes that the data are sequentially stored at continuous addresses of the memory. The beneficial effects of the present invention are as follows: when the layout structure of the data to be processed is consistent with the layout structure of the result data, the target data can be operated in batches in the memory according to the density detection result of the memory; when the layout structure of the data to be processed is inconsistent with the layout structure of the result data, the target data can be operated in batches in the memory according to the storage continuity detection result of the memory. In this way, the data can be operated in batches in the memory according to the layout structure consistency detection result, the density detection result and the storage continuity detection result. Compared with the scheme of operating the data in batches in the memory only according to the memory continuity, the types of situations in which the data is operated in batches in the memory are expanded, the applicability is wider, and the memory access performance is improved. Furthermore, the image data or language data or text data can be operated in the memory more efficiently, thereby improving the processing efficiency of the image data or language data or text data.
[0078] See also Figure 2 , Figure 2 Another flow chart of a data processing method provided by an embodiment of the present invention.
[0079] A data processing method provided by an embodiment of the present invention may include the following steps:
[0080] Step S201: determining the layout structure of the data to be processed in the input memory, where the data to be processed includes image data or language data or text data.
[0081] Step S202: determining the layout structure of result data in the output memory, where the result data includes data obtained after processing the data to be processed.
[0082] Step S203: In response to the fact that the layout structure of the data to be processed is consistent with the layout structure of the result data, and in response to the fact that both the input memory and the output memory are not dense, the target data is compressed according to the dimension size value to obtain the data to be operated, and the data to be operated is operated on in batches in the memory according to the thread program number and the data structure.
[0083] Step S204: In response to the layout structure of the data to be processed being consistent with the layout structure of the result data, and in response to the input memory and the output memory being dense, the target data is used as the data to be accessed, and the data to be accessed is batch-operated in the memory according to the line program number.
[0084] In practical applications, when the layout structure of the data to be processed is consistent with the layout structure of the result data, when the input memory is dense, the output memory must be dense. Correspondingly, when the input memory is not dense, the output memory must also be not dense. When the memory is dense, the data has continuous addresses in the memory and can be operated in batches. When the memory is not dense, the data has discontinuous addresses in the memory and cannot be operated in batches. At this time, the data needs to be processed so that the data can be processed in batches, that is, in the process of batch operating the target data in the memory according to the density detection result of the memory, in response to the input memory and the output memory being not dense, the data to be processed or the result data can be compressed, and then the compressed data to be processed or the compressed result data can be operated in batches in the memory according to the offset address and data structure of the input memory or the output memory itself. In response to the input memory and the output memory being dense, the data to be processed or the result data can be directly operated in batches in the memory according to the offset address of the input memory or the output memory.
[0085] For the convenience of description, the data that needs to be operated according to the offset address and data structure of the input memory or output memory itself is called the data to be operated, and the data that only needs to be operated according to the offset address of the input memory or output memory is called the data to be accessed. In response to the input memory and the output memory being not dense, the target data can be compressed according to the dimension size value to obtain the data to be operated, so as to convert the target data into the data to be operated that can be operated in batches by compression, and the data to be operated is operated in batches in the memory according to the offset address and data structure of the input memory or output memory itself. Correspondingly, in response to the input memory and the output memory being dense, the target data can be directly used as the data to be accessed, and the data to be accessed is operated in batches in the memory according to the offset address of the input memory or the output memory. Further, the data operation is executed by the thread, and there is a corresponding relationship between the thread and the offset address of the memory itself, so the offset address of the memory itself can be determined according to the thread program number, so as to operate the data according to the thread program number, and the thread program number is also the sequence number of the thread that operates the data in the memory.
[0086] In a specific application scenario, in the process of compressing the target data according to the dimension size value to obtain the data to be operated, the dimension size value and step size of the target data can be determined; the number of data to be operated on in batches is determined; the dimension size value corresponding to the preset step size in the target data is reduced by N times to obtain the data to be operated, where the value of N is equal to the number of data. The preset step size can be adjusted according to actual needs. For example, the preset step size can be 1, etc. At this time, assuming that the step size is represented by stride, the dimension size value is represented by shape, and the number of data is represented by vect_num, then this process is to reduce shape[i] corresponding to stride=1 to shape[i] / vect_num.
[0087] In a specific application scenario, in the process of batch operation of the data to be operated in the memory, considering that the structure of the data to be operated itself will also affect the offset address, the memory offset address of the data to be operated can be determined according to the sequence number of the thread operating the data to be operated and the data structure of the data to be operated, and then the data to be operated is operated in batches in the memory according to the memory offset address of the data to be operated. In this process, the data structure of the data to be operated itself can be the dimension, step size, and dimension size value of the data to be operated, that is, in the process of determining the memory offset address of the data to be operated according to the sequence number of the thread operating the data to be operated and the data structure of the data to be operated, the second sequence number of the second thread operating the data to be operated can be determined; the dimension of the data to be operated can be determined; the step size of the data to be operated can be determined; the dimension size value of the data to be operated can be determined; the number of data to be operated in batches can be determined; the memory offset address of the data to be operated can be generated according to the second sequence number, the dimension of the data to be operated, the step size of the data to be operated, the dimension size value of the data to be operated, and the number of data.
[0088] To facilitate understanding of the relationship between the thread program number, data structure, and the offset address of the data in memory, assume that the thread program number is represented by idx, the dimension is represented by ndim, the dimension size is represented by shape, the step size is represented by stride, and the memory offset address is represented by offset. Since the offset of an element in the data is sum(index[i]*stride[i]), the value of i ranges from 0 to ndim, and index is the subscript corresponding to the element in the data. For example, for the two-dimensional data [[33,44], [55,66]], its shape is (2,2), and its stride is (2,1). The indices corresponding to its elements are (0,0), (0,1), (1,0), and (1,1), respectively. The offset corresponding to element 55 is calculated as index[0]*strid[0]+index[1]*stride[1]=1*2+0*1=2, so the offset corresponding to 55 is 2. Furthermore, since an idx corresponds to an element of the data, if the idx is converted to an index, then the offset corresponding to the element can be calculated. Taking two-dimensional data as an example, index[1]=idx%shape[1], index[0]=idx / shape[1]%shape[0], which is actually to find the row and column numbers of the matrix. 55 corresponds to idx=2, index[1]=2%2=0, index[0]=2 / 2%2=1, so the index corresponding to idx=2 is (1,0). According to this principle, we can loop through the shape from the inside to the outside to get the index, and then calculate sum(index[i]*stride[i]) to get the offset. That is, in a specific application scenario, in the process of generating the memory offset address of the data to be operated according to the second serial number, the dimension of the data to be operated, the step size of the data to be operated, the dimension size value of the data to be operated and the data number value, the dimension of the data to be operated can be assigned to the cumulative number value; the second serial number is assigned to the set serial number; whether the cumulative number value is greater than or equal to zero is detected; in response to the cumulative number value being greater than or equal to zero, the ratio of the set serial number to the dimension size value of the data to be operated at the cumulative number value is used as the row value, and the product value of the row value and the dimension size value of the data to be operated at the cumulative number value is generated, the difference between the set serial number and the product value is used as the number of columns, the product value of the number of columns and the step size of the data to be operated at the cumulative number value is used as the memory offset address of the data to be operated, and the number of rows is assigned to the set serial number; the cumulative number value is reduced by 1, and the step of detecting whether the cumulative number value is greater than or equal to zero is returned; in response to the cumulative number value being less than zero, the memory offset address of the data to be operated is output. Assuming that the offset address is represented by offet, the cumulative number value is represented by i, the set sequence number is represented by dx, the number of rows is represented by row, and the number of columns is represented by col, this process can be expressed as:
[0089] Initialize offset=0, i=ndim, dx=idx, and assign the second serial number to idx;
[0090] Check whether i is greater than or equal to 0;
[0091] If i is greater than or equal to 0, update row = dx / shape[i], col = dx-row* shape[i], offset = col*stride[i], dx = row;
[0092] If i is less than 0, the output offset is the memory offset address of the data to be operated.
[0093] From this implementation process, it can be known that in the process of generating the memory offset address of the data to be operated according to the second sequence number, the dimension of the data to be operated, the step length of the data to be operated, the dimension size value of the data to be operated and the number of data values, the present invention can process the second sequence number, the dimension of the data to be operated, the step length of the data to be operated, the dimension size value of the data to be operated and the number of data values by assignment and loop calculation to obtain the memory offset address of the data to be operated. The performance problem caused by the continuity conversion of the data is reduced, and the calculation of the offset address is turned into a general calculation, so that the offset addresses of the data to be processed and the result data can be calculated separately, and the scheme has better parallelism and higher flexibility.
[0094] In a specific application scenario, in the process of batch-operating the accessed data in memory according to the thread program number, the first serial number of the first thread operating the accessed data can be determined; the memory offset address corresponding to the first serial number can be determined according to the relationship between the thread program number and the memory offset address; and the accessed data can be batch-operated in memory according to the memory offset address corresponding to the first serial number. Specifically, in the process of determining the first serial number of the first thread operating the accessed data, the first thread operating the accessed data can be determined; the first index of the first thread in the thread grid can be determined, the thread grid is a two-dimensional or three-dimensional layout composed of multiple thread blocks, and a thread block can contain multiple threads; the second index of the first thread in the thread block to which it belongs can be determined; and the first serial number can be determined according to the first index and the second index. Furthermore, in the process of determining the first serial number according to the first index and the second index, the number of threads in the thread block can be determined, the product value of the first index and the number of threads is generated as the first numerical value, the difference between the number of threads and the second index is generated as the second numerical value, and the difference between the first numerical value and the second numerical value is used as the first serial number. In this way, the first serial number can be accurately generated by knowing only the first index, the second index and the number of threads in the thread block. The process is simple, fast and has good applicability.
[0095] To facilitate understanding of this process, it is assumed that the layout structure of the data to be processed is consistent with the layout structure of the result data, and the input memory and the output memory are both dense. At this time, regardless of whether the input memory and the output memory are continuous, the data processing process can be: according to the sequence number of the thread operating the data to be processed, the data to be processed is read in batches in the input memory, and the read data to be processed is processed to obtain the result data; then, according to the sequence number of the thread operating the result data, the result data is written in batches to the output memory. Assuming that the layout structure of the data to be processed is consistent with the layout structure of the result data, and the input memory and the output memory are both not dense, at this time, regardless of whether the input memory and the output memory are continuous, the data processing process can be: according to the dimension size value, the data to be processed is compressed, according to the sequence number of the thread operating the data to be processed, the compressed data to be processed is read in batches in the input memory, and the read data to be processed is processed to obtain the result data; then, the result data is compressed according to the dimension size value, and according to the sequence number of the thread operating the result data, the compressed result data is written in batches to the output memory.
[0096] Step S205: In response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, operations are performed on the target data in batches in the memory according to the storage continuity detection result of the memory; the target data includes the data to be processed to be read from the input memory, or the result data to be written to the output memory.
[0097] The present invention provides a data processing method, in the case where the layout structure of the data to be processed is consistent with the layout structure of the result data, and specifically in the case where both the input memory and the output memory are not dense, the target data can be compressed according to the dimension size value to obtain the data to be operated, thereby converting the target data into the data to be operated that can be operated in batches by compression, and the batch operation of the data to be operated in the memory needs to be performed comprehensively according to the line program number and the data structure. In the case where both the input memory and the output memory are dense, the target data can be directly used as the data to be accessed, and the batch operation of the data to be operated can be performed in the memory only according to the line program number. In this way, when the layout structure of the data to be processed is consistent with the layout structure of the result data, regardless of whether the memory is dense, a corresponding method can be used to perform batch processing in the memory, reducing IO (Input Output) operations, improving thread throughput, and thus improving computing performance.
[0098] See also Figure 3 , Figure 3 Another flow chart of a data processing method provided by an embodiment of the present invention.
[0099] A data processing method provided by an embodiment of the present invention may include the following steps:
[0100] Step S301: Determine the layout structure of the data to be processed in the input memory, where the data to be processed includes image data, language data, or text data.
[0101] Step S302: determining the layout structure of result data in the output memory, where the result data includes data obtained after processing the data to be processed.
[0102] Step S303: in response to the layout structure of the data to be processed being consistent with the layout structure of the result data, operations are performed on the target data in batches in the memory according to the density detection result of the memory.
[0103] Step S304: In response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, and the storage of the input memory is continuous while the storage of the output memory is discontinuous, the data to be processed is treated as the data to be accessed, and the accessed data is operated on in batches in the memory according to the line program number, and the result data is treated as the data to be operated, and the data to be operated is operated on in batches in the memory according to the line program number and the data structure.
[0104] Step S305: In response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, and the storage of the input memory is discontinuous while the storage of the output memory is continuous, the data to be processed is taken as the data to be operated, and the data to be operated is batch operated in the memory according to the line program number and the data structure, and the result data is taken as the data to be accessed, and the data to be accessed is batch operated in the memory according to the line program number.
[0105] Step S306: In response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, and the storage of the input memory and the output memory are discontinuous, the target data is used as the data to be operated, and the data to be operated is batch operated in the memory according to the line program number and the data structure.
[0106] In actual applications, when the layout structure of the data to be processed and the layout structure of the result data are inconsistent, there is a situation where the storage of the input memory is continuous and the storage of the output memory is discontinuous, or the storage of the input memory is discontinuous and the storage of the output memory is continuous, or the storage of the input memory is discontinuous and the storage of the output memory is continuous, or the storage of both the input memory and the output memory is discontinuous. If the data to be processed and the result data are collectively referred to as target data, if the target data is continuous in the memory, the target data can be operated on in batches only according to the offset address of the memory itself; if the target data is discontinuous in the memory, it is necessary to operate on the target data according to the offset address of the memory itself and the data structure of the target data. In other words, in the process of batch operations on target data in the memory based on the detection result of whether the storage of the memory is continuous or not, in response to the continuous storage of the input memory and the discontinuous storage of the output memory, the data to be processed is taken as the data to be accessed, and the accessed data is operated in batches in the memory according to the line program number, and the result data is taken as the data to be operated, and the accessed data is operated in batches in the memory according to the line program number and the data structure; in response to the discontinuous storage of the input memory and the continuous storage of the output memory, the data to be processed is taken as the data to be operated, and the accessed data is operated in batches in the memory according to the line program number and the data structure, and the result data is taken as the data to be accessed, and the accessed data is operated in batches in the memory according to the line program number; in response to the discontinuous storage of the input memory and the discontinuous storage of the output memory, the target data is taken as the data to be operated, and the accessed data is operated in batches in the memory according to the line program number and the data structure.
[0107] It should be noted that the method of batch operating the access data in the memory according to the line program number is the same as the above embodiment. Correspondingly, the method of batch operating the operation data in the memory according to the line program number and the data structure is also the same as the above embodiment, and the present invention will not be repeated here.
[0108] The present invention provides a data processing method. When the layout structure of the data to be processed and the layout structure of the result data are inconsistent, if the storage of the input memory is continuous and the storage of the output memory is discontinuous, the data to be processed is used as the data to be accessed, and the accessed data is batch operated in the memory according to the line program number, and the result data is used as the data to be operated, and the data to be operated is batch operated in the memory according to the line program number and the data structure; if the storage of the input memory is discontinuous and the storage of the output memory is continuous, the data to be processed is used as the data to be operated, and the accessed data is batch operated in the memory according to the line program number and the data structure, and the result data is used as the data to be accessed, and the accessed data is batch operated in the memory according to the line program number; if the storage of both the input memory and the output memory is discontinuous, the target data is used as the data to be operated, and the data to be operated is batch operated in the memory according to the line program number and the data structure. That is, when the layout structure of the data to be processed and the layout structure of the result data are inconsistent, operations can be performed on continuous data stored in the memory according to the thread program number, and operations can be performed on discontinuous data stored in the memory according to the thread program number and the data structure. In other words, when the layout structure of the data to be processed and the layout structure of the result data are inconsistent, the corresponding method can be used to process them in batches in the memory, further reducing IO operations, improving thread throughput, and improving computing performance.
[0109] To facilitate understanding of the data processing method provided by the present invention, assuming that a picture in tensor form is processed, the entire process can be:
[0110] Determine a layout structure of a tensor to be processed in an input memory, where the tensor to be processed includes image data recorded in a tensor form;
[0111] Determine the layout structure of the result tensor in the output memory. The result tensor includes the data obtained after the element-wise operator operation is performed on the tensor to be processed. The element-wise operator operation may include the silu (slip up operator, rise) operator, addition, subtraction, multiplication, division, maximum value, minimum value, and activation function operations such as sine and cosine. The data in the result tensor can be the feature extraction result of the image, the feature comparison result between images, the image fusion result, etc.;
[0112] In response to the layout structure of the tensor to be processed being consistent with the layout structure of the result tensor, and in response to the input memory and the output memory being not dense, the target tensor is compressed according to the dimension size value to obtain the tensor to be operated, and the tensor to be operated is operated in batches in the memory according to the thread program number and the tensor structure; the target tensor includes the tensor to be processed to be read from the input memory, or the result tensor to be written to the output memory;
[0113] In response to the layout structure of the to-be-processed tensor being consistent with the layout structure of the result tensor, and in response to the input memory and the output memory being dense, the target tensor is used as the to-be-accessed tensor, and the to-be-accessed tensors are operated in batches in the memory according to the thread program number;
[0114] In response to the inconsistency between the layout structure of the tensor to be processed and the layout structure of the result tensor, and the storage of the input memory is continuous while the storage of the output memory is discontinuous, the tensor to be processed is used as the tensor to be accessed, and the tensor to be accessed is operated in batches in the memory according to the thread program number, and the result tensor is used as the tensor to be operated, and the tensor to be operated is operated in batches in the memory according to the thread program number and the tensor structure;
[0115] In response to the inconsistency between the layout structure of the tensor to be processed and the layout structure of the result tensor, and the storage of the input memory is discontinuous and the storage of the output memory is continuous, the tensor to be processed is used as the tensor to be operated, and the tensor to be operated is batched in the memory according to the thread program number and the tensor structure, and the result tensor is used as the tensor to be accessed, and the tensor to be accessed is batched in the memory according to the thread program number;
[0116] In response to the inconsistency between the layout structure of the tensor to be processed and the layout structure of the result tensor, and the storage of the input memory and the output memory are not continuous, the target tensor is used as the tensor to be operated, and the tensors to be operated are operated in batches in the memory according to the thread program number and the tensor structure.
[0117] The present invention also provides an electronic device and a computer-readable storage medium, both of which have the corresponding effects of a data processing method provided in an embodiment of the present invention. Figure 4 , Figure 4 A schematic diagram of the structure of an electronic device provided by an embodiment of the present invention.
[0118] An electronic device provided by an embodiment of the present invention includes a memory 201 and a processor 202. The memory 201 stores a computer program. When the processor 202 executes the computer program, the steps of the data processing method described in any of the above embodiments are implemented.
[0119] See also Figure 5Another electronic device provided in an embodiment of the present invention may also include: an input port 203 connected to the processor 202, used to transmit commands input from the outside to the processor 202; a display unit 204 connected to the processor 202, used to display the processing results of the processor 202 to the outside; a communication module 205 connected to the processor 202, used to realize communication between the electronic device and the outside. The display unit 204 can be a display panel, a laser scanning display, etc.; the communication method adopted by the communication module 205 includes but is not limited to mobile high-definition link technology (Mobile High-Definition Link, MHL), Universal Serial Bus (Universal Serial Bus, USB), High-Definition Multimedia Interface (High-Definition Multimedia Interface, HDMI), wireless connection: wireless fidelity technology (WIreless Fidelity, WiFi), Bluetooth communication technology, low-power Bluetooth communication technology, and communication technology based on IEEE802.11s.
[0120] An embodiment of the present invention provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of the data processing method described in any of the above embodiments are implemented.
[0121] The computer-readable storage medium involved in the present invention includes random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, register, hard disk, removable disk, CD-ROM (Compact Disc Read-Only Memory), or any other form of storage medium known in the technical field.
[0122] A computer program product provided by an embodiment of the present invention includes a computer program / instruction. When the computer program / instruction is executed by a processor, the following steps are implemented:
[0123] Determine the layout structure of the data to be processed in the input memory, the data to be processed includes image data or language data or text data;
[0124] Determine the layout structure of result data in the output memory, the result data including data obtained after processing the data to be processed;
[0125] In response to the layout structure of the data to be processed being consistent with the layout structure of the result data, batch operations are performed on the target data in the memory according to the density detection result of the memory;
[0126] In response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, batch operations are performed on the target data in the memory according to the storage continuity detection result of the memory;
[0127] Among them, the target data includes the data to be processed to be read from the input memory, or the result data to be written to the output memory; the memory density includes that the storage addresses of the data in the memory are continuous; the storage continuity of the memory includes that the data is stored in sequence at continuous addresses of the memory.
[0128] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: in response to the fact that both the input memory and the output memory are not dense, the target data is compressed according to the dimension size value to obtain the data to be operated, and the data to be operated is operated in batches in the memory according to the line program number and the data structure.
[0129] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: determining the dimension size value and step size of the target data; determining the number of data values for batch operations on the data; reducing the dimension size value corresponding to the preset step size in the target data by N times to obtain the data to be operated, where the value of N is equal to the number of data values.
[0130] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: in response to the input memory and the output memory being dense, target data is used as data to be accessed, and operations are performed on the data to be accessed in batches in the memory according to line program numbers.
[0131] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: in response to the storage of the input memory being continuous and the storage of the output memory being discontinuous, the data to be processed is used as the data to be accessed, and the accessed data is batch-operated in the memory according to the line program number; the result data is used as the data to be operated, and the data to be operated is batch-operated in the memory according to the line program number and the data structure.
[0132] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: in response to discontinuous storage in an input memory and continuous storage in an output memory, data to be processed is used as data to be operated, and operations are performed on the data to be operated in batches in the memory according to line program numbers and data structures; result data is used as data to be accessed, and operations are performed on the data to be accessed in batches in the memory according to line program numbers.
[0133] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: determining a first sequence number of a first thread that operates on data to be accessed; determining a memory offset address corresponding to the first sequence number based on a relationship between a thread program number and a memory offset address; and performing operations on the data to be accessed in batches in a memory according to the memory offset address corresponding to the first sequence number.
[0134] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: determining a first thread that operates on data to be accessed; determining a first index of the first thread in a thread grid; determining a second index of the first thread in a corresponding thread block; and determining a first sequence number based on the first index and the second index.
[0135] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: in response to the storage of both the input memory and the output memory being discontinuous, target data is used as data to be operated, and the data to be operated is operated on in batches in the memory according to the line program number and the data structure.
[0136] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: determining a second sequence number of a second thread that operates on data to be operated; determining a dimension of the data to be operated; determining a step size of the data to be operated; determining a dimension size value of the data to be operated; determining a number of data values for batch operations on the data; generating a memory offset address of the data to be operated based on the second sequence number, the dimension of the data to be operated, the step size of the data to be operated, the dimension size value of the data to be operated, and the number of data values; and batch operations on the data to be operated in the memory according to the memory offset address of the data to be operated.
[0137] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: assigning a dimension of data to be operated to a cumulative number value; assigning a second sequence number to a set sequence number; detecting whether the cumulative number value is greater than or equal to zero; in response to the cumulative number value being greater than or equal to zero, taking the ratio of the set sequence number to the dimension size value of the data to be operated at the cumulative number value as a row value, generating a product value of the row value and the dimension size value of the data to be operated at the cumulative number value, taking the difference between the set sequence number and the product value as the number of columns, taking the product value of the number of columns and the step size of the data to be operated at the cumulative number value as the memory offset address of the data to be operated, and assigning the number of rows to the set sequence number; reducing the cumulative number value by 1, and returning to execute the step of detecting whether the cumulative number value is greater than or equal to zero; in response to the cumulative number value being less than zero, outputting the memory offset address of the data to be operated.
[0138] A computer program product provided by an embodiment of the present invention includes a computer program / instruction, which implements the following steps when executed by a processor: determining a storage method of data to be processed in an input memory; determining a calculation order of the data to be processed in the input memory; and using the storage method of the data to be processed and the calculation order of the data to be processed as a layout structure of the data to be processed in the input memory.
[0139] For the description of the relevant parts of an electronic device, a computer program product, and a computer-readable storage medium provided by an embodiment of the present invention, please refer to the detailed description of the corresponding parts in a data processing method provided by an embodiment of the present invention, which will not be repeated here. In addition, the parts of the above technical solutions provided by the embodiments of the present invention that are consistent with the implementation principles of the corresponding technical solutions in the prior art are not described in detail to avoid excessive elaboration.
[0140] It should also be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.
[0141] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present invention. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention will not be limited to the embodiments shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A data processing method, characterized in that: include: Determine the layout structure of the data to be processed in the input memory, wherein the data to be processed includes image data or language data or text data; Determining a layout structure of result data in an output memory, wherein the result data includes data obtained after processing the data to be processed; In response to the layout structure of the data to be processed being consistent with the layout structure of the result data, batch operations are performed on the target data in the memory according to the density detection result of the memory; In response to the inconsistency between the layout structure of the data to be processed and the layout structure of the result data, batch operations are performed on the target data in the memory according to the storage continuity detection result of the memory; Wherein, the target data includes the data to be processed to be read from the input memory, or the result data to be written into the output memory; memory density includes that the storage addresses of the data in the memory are continuous; memory storage continuity includes that the data are stored in order at the continuous addresses of the memory; Among them, according to the density detection result of the memory, the target data is operated in batches in the memory, including: in response to the input memory and the output memory being not dense, the data to be processed or the result data is compressed, and the compressed data to be processed or the compressed result data is operated in batches in the memory according to the offset address and data structure of the input memory or the output memory itself; in response to the input memory and the output memory being dense, the data to be processed or the result data is directly operated in batches in the memory according to the offset address of the input memory or the output memory; Among them, according to the detection result of whether the storage continuity of the memory is detected, the target data is operated in batches in the memory, including: if the target data is continuous in the memory, the target data is operated in batches only according to the offset address of the memory itself; if the target data is not continuous in the memory, the target data is operated according to the offset address of the memory itself and the data structure of the target data.
2. The data processing method according to claim 1, characterized in that: Based on the memory density test results, batch operations are performed on the target data in the memory, including: In response to the fact that both the input memory and the output memory are not dense, the target data is compressed according to the dimension size value to obtain the data to be operated, and the data to be operated is operated in batches in the memory according to the thread program number and the data structure.
3. The data processing method according to claim 2, characterized in that: The target data is compressed according to the dimension size value to obtain the data to be operated, including: Determine the dimension size and step size of the target data; Determine the number of data values for batch operations on data; Reduce the dimension size value corresponding to the preset step size in the target data by N times to obtain the data to be operated, where the value of N is equal to the number of data.
4. The data processing method according to claim 1, characterized in that: Based on the memory density test results, batch operations are performed on the target data in the memory, including: In response to the input memory and the output memory being dense, the target data is used as the data to be accessed, and the data to be accessed is operated in batches in the memory according to the line program number.
5. The data processing method according to claim 1, characterized in that: Based on the memory storage continuity test results, batch operations are performed on the target data in the memory, including: In response to the fact that the storage of the input memory is continuous and the storage of the output memory is discontinuous, the data to be processed is used as the data to be accessed, and operations are performed on the accessed data in batches in the memory according to the line program number; the result data is used as the data to be operated, and operations are performed on the data to be operated in batches in the memory according to the line program number and the data structure.
6. The data processing method according to claim 1, characterized in that: Based on the memory storage continuity test results, batch operations are performed on the target data in the memory, including: In response to the fact that the storage of the input memory is discontinuous and the storage of the output memory is continuous, the data to be processed is used as the data to be operated, and the data to be operated is batch operated in the memory according to the line program number and the data structure, and the result data is used as the data to be accessed, and the data to be accessed is batch operated in the memory according to the line program number.
7. The data processing method according to claim 6, characterized in that: The accessed data is batch operated in memory according to the thread program number, including: Determine a first sequence number of a first thread that operates on the data to be accessed; Determine the memory offset address corresponding to the first sequence number according to the relationship between the line program number and the memory offset address; The data to be accessed are operated on in batches in the memory according to the memory offset address corresponding to the first sequence number.
8. The data processing method according to claim 7, characterized in that: Determining a first sequence number of a first thread that operates on data to be accessed includes: Determine a first thread to operate on the data to be accessed; Determining a first index of the first thread in a thread grid; Determine a second index of the first thread in the thread block to which it belongs; The first sequence number is determined according to the first index and the second index.
9. The data processing method according to claim 1, characterized in that: Based on the memory storage continuity test results, batch operations are performed on the target data in the memory, including: In response to the fact that the storage of the input memory and the output memory is not continuous, the target data is used as the data to be operated, and the data to be operated is operated in batches in the memory according to the line program number and the data structure.
10. The data processing method according to any one of claims 2 to 9, characterized in that: The data to be operated is operated in batches in memory according to the thread program number and data structure, including: Determine a second sequence number of a second thread that operates the data to be operated; Determine the dimensions of the data to be operated on; Determine the step size of the data to be operated; Determine the dimension size value of the data to be operated; Determine the number of data values for batch operations on data; Generate a memory offset address of the data to be operated according to the second sequence number, the dimension of the data to be operated, the step size of the data to be operated, the dimension size value of the data to be operated, and the number of data values; According to the memory offset address of the data to be operated, the data to be operated is operated on in batches in the memory.
11. The data processing method according to claim 10, characterized in that: Generate a memory offset address of the data to be operated according to the second sequence number, the dimension of the data to be operated, the step size of the data to be operated, the dimension size value of the data to be operated, and the number of data values, including: Assign the dimension of the data to be operated to the cumulative number value; Assigning the second sequence number to the set sequence number; Check whether the cumulative number value is greater than or equal to zero; In response to the cumulative number value being greater than or equal to zero, the ratio of the set sequence number to the dimension size value of the data to be operated at the cumulative number value is used as the row value, and the product value of the row value and the dimension size value of the data to be operated at the cumulative number value is generated, and the difference between the set sequence number and the product value is used as the number of columns, and the product value of the column number and the step size of the data to be operated at the cumulative number value is used as the memory offset address of the data to be operated, and the row number is assigned to the set sequence number; the cumulative number value is reduced by 1, and the step of detecting whether the cumulative number value is greater than or equal to zero is returned to execute; In response to the accumulated number of times being less than zero, the memory offset address of the data to be operated is output.
12. The data processing method according to claim 1, characterized in that: Determine the layout structure of the data to be processed in the input memory, including: Determine how the data to be processed is stored in the input memory; Determining the calculation order of the data to be processed in the input memory; The storage method of the data to be processed and the calculation order of the data to be processed are used as the layout structure of the data to be processed in the input memory.
13. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the steps of the data processing method according to any one of claims 1 to 12 are implemented.
14. An electronic device, characterized in that: include: Memory for storing computer programs; A processor, configured to implement the steps of the data processing method according to any one of claims 1 to 12 when executing the computer program.
15. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the data processing method according to any one of claims 1 to 12 are implemented.
Citation Information
Patent Citations
Data processing device and method, acceleration unit, electronic equipment and storage medium
CN118333118A
Dynamic programming platform for implementing bulk data operators in a multithreaded environment
US20160070544A1