Data processing method and device based on computing storage device and storage medium

By classifying the data to be stored in machine learning, and using the different characteristics of the SSD on-board main memory module and NAND flash module for storage, the problem of inefficient data access is solved and the effect of reducing power consumption and time loss is achieved.

CN119861858APending Publication Date: 2025-04-22ZTE CORP +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311331751.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-13
Publication Date
2025-04-22

AI Technical Summary

Technical Problem

The inefficiency of data access in memory controllers in machine learning leads to power consumption and time loss caused by large amounts of data reading in neural network operations.

Method used

By sorting based on the usage parameters of the data to be stored, the parameters of neural network model with small data amount and high access times are stored in the SSD on-board main memory module, and the data with large data amount and low access times are stored in the NAND flash memory module to avoid invalid processing steps such as ECC that spans the inherent ECC of the storage device itself.

Benefits of technology

It reduces the power consumption and time loss caused by data reading in neural network operations, improves data access efficiency, reduces data access expenses, and improves computing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119861858A_ABST
    Figure CN119861858A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method and device based on a computing storage device and a computer readable storage medium, and the method comprises the steps: classifying to-be-stored data based on use parameters of all data in the to-be-stored data; and respectively storing the classified data to be stored in an SSD onboard main memory module and / or an NAND flash memory module. According to the invention, data classification is carried out based on use parameters, and the classified data are respectively stored in an SSD onboard main memory module with a fast access rate and a small storage space and / or an NAND flash memory module with a slow access rate and a large storage space according to use requirements. When a neural network operation task is deployed in the storage controller, power consumption and time loss caused by reading of a large amount of data can be reduced. Therefore, the processing step of invalid calculation data or low income of the ECC (Error Correction Code) of storage equipment such as an SSD (Solid State Disk) onboard main storage module and the like can be crossed, the data access efficiency is improved, and the data access cost is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of data processing technology, and in particular to a data processing method and device based on a computing storage device, and a computer-readable storage medium. Background Art

[0002] With the development of electronic information technology and the popularization of artificial intelligence applications, the requirements for efficient data processing and access methods are constantly increasing. Among the solutions to the "data wall" problem (that is, the transportation of large amounts of data generates energy losses that cannot be ignored and the time-consuming multiple storage and reading of data, which greatly reduces the data processing efficiency of the entire system), there is a solution called CSD (Computational Storage Device). The core idea of ​​this solution is: SSD (Solid State Driver), which is the main large-scale data storage device currently used in various data centers or computing centers, has a SoC-like structure and relatively rich computing and storage resources. The offload host can be applied to the SSD, that is, the calculation is completed inside the storage controller, which can reduce data transportation losses. The CSD solution can essentially avoid the transportation of large amounts of data, thereby effectively solving the "data wall" problem.

[0003] There are many types of applications that can be installed on CSD, including machine learning related applications, such as recommendation systems, neural network training, image recognition processing, etc. When implemented on CSD, machine learning can be accelerated by using software and hardware to cooperate and avoid the "data wall". However, these applications often involve the calculation of neural networks, and require the use of model parameters to perform a large number of complex matrix calculation operations such as convolution and pooling on the input data, and also involve the storage and access of a large amount of data. Therefore, how to solve the low access efficiency of data in machine learning in storage controllers is a technical problem that needs to be solved urgently. Summary of the invention

[0004] The main purpose of the present invention is to provide a data processing method, device and storage medium based on a computing storage device, aiming to solve the technical problem of low access efficiency of data in machine learning in a storage controller.

[0005] To achieve the above-mentioned purpose, the present invention provides a data processing method for deep learning, which includes: classifying the data to be stored based on the usage parameters of each data in the data to be stored; and storing the classified data to be stored in the SSD onboard main memory module and / or the NAND flash memory module respectively.

[0006] In addition, to achieve the above-mentioned purpose, the present invention also provides a data processing device based on a computing storage device, wherein the data processing device based on a computing storage device comprises a processor, a memory, and a data processing program based on a computing storage device stored on the memory and executable by the processor, wherein when the data processing program based on the computing storage device is executed by the processor, the steps of data processing based on the computing storage device as described above are implemented.

[0007] In addition, to achieve the above-mentioned purpose, the present invention also provides a computer-readable storage medium, on which a data processing program based on a computing storage device is stored, wherein when the data processing program based on the computing storage device is executed by a processor, the steps of the data processing method based on the computing storage device as described above are implemented.

[0008] The present invention provides a data processing method based on a computing storage device, wherein the method classifies the data to be stored based on the usage parameters of each data in the data to be stored; and the classified data to be stored are respectively stored in an SSD onboard main memory module and / or a NAND flash memory module. In the above manner, the present invention classifies data based on the usage parameters, and stores the classified data in an SSD onboard main memory module with a fast access rate but a small storage space and / or a NAND flash memory module with a slow access rate but a large storage space according to usage requirements. Thus, when a neural network computing task is deployed in a storage controller, the power consumption and time loss caused by a large amount of data reading in the neural network computing can be reduced. Thus, the inherent ECC (Error Correcting Code, error correction) of the storage device itself such as the SSD onboard main memory module, which is invalid or has low benefits for computing data, can be skipped, thereby improving data access efficiency and reducing data access costs. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Figure 1 A schematic diagram of the hardware structure of a data processing device based on a computing storage device involved in an embodiment of the present invention;

[0010] Figure 2 Schematic diagram of data access architecture for deep learning applications on a CSD based on an SSD in an embodiment of the present invention;

[0011] Figure 3 A schematic diagram of a data storage method according to an embodiment of the present invention;

[0012] Figure 4 A schematic diagram of a server system for distributed neural network training using a data processing method according to an embodiment of the present invention;

[0013] Figure 5It is a flowchart of the first embodiment of the data processing method based on the computing storage device of the present invention.

[0014] The realization of the purpose, functional features and advantages of the present invention will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION

[0015] It should be understood that the specific embodiments described herein are only used to explain the present invention, and are not used to limit the present invention.

[0016] The data processing method based on a computing storage device involved in the embodiment of the present invention is mainly applied to a data processing device based on a computing storage device, which can be a PC, a portable computer, a mobile terminal, or other device with display and processing functions.

[0017] Reference Figure 1 , Figure 1 The hardware structure diagram of the data processing device based on the computing storage device involved in the embodiment of the present invention is shown in FIG. In the embodiment of the present invention, the data processing device based on the computing storage device may include a processor 1001 (such as a CPU), a communication bus 1002, a user interface 1003, a network interface 1004, and a memory 1005. Among them, the communication bus 1002 is used to realize the connection and communication between these components; the user interface 1003 may include a display screen (Display), an input unit such as a keyboard (Keyboard); the network interface 1004 may optionally include a standard wired interface, a wireless interface (such as a WI-FI interface); the memory 1005 may be a high-speed RAM memory, or a stable memory (non-volatile memory), such as a disk memory, and the memory 1005 may optionally be a storage device independent of the aforementioned processor 1001.

[0018] Those skilled in the art will understand that Figure 1 The hardware structure shown in the figure does not constitute a limitation on the data processing device based on the computing storage device, and may include more or less components than shown in the figure, or combine certain components, or arrange the components differently.

[0019] Continue to refer to Figure 1 , Figure 1 The memory 1005 as a computer-readable storage medium may include an operating system, a network communication module, and a data processing program based on a computing storage device.

[0020] exist Figure 1In the embodiment, the network communication module is mainly used to connect to the server and perform data communication with the server; and the processor 1001 can call the data processing program based on the computing storage device stored in the memory 1005, and execute the data processing method based on the computing storage device provided in the embodiment of the present invention.

[0021] Among the solutions to the "data wall" problem, there is a solution called CSD (Computational Storage Device). The core idea of ​​this solution is: SSD (Solid State Driver), which is the main large-scale data storage device currently used by various data centers or computing centers, has a structure similar to SoC and relatively rich computing and storage resources. The host can be offloaded to the inside of the SSD, that is, the calculation is completed inside the storage controller, which can reduce data handling losses. The CSD solution can essentially avoid the handling of large amounts of data, thereby effectively solving the "data wall" problem.

[0022] Therefore, how to make CSD participate in the entire calculation effectively and quickly has become a new problem to be solved. There are many types of applications that can be installed on CSD, among which machine learning related applications, such as recommendation systems, neural network training, image recognition processing, etc., have become the focus of research due to their advantages of large amount of data processed and wide applicability. When these applications are implemented on CSD, machine learning can be accelerated by using software and hardware coordination and avoiding the "data wall". However, these applications often involve the calculation of neural networks, which require the use of model parameters to perform a large number of complex matrix calculation operations such as convolution and pooling on the input data, and also involve the storage and access of a large amount of data. Therefore, how to deploy software and hardware implementation plans in the storage controller to effectively accelerate machine learning is a problem worth exploring.

[0023] In order to achieve the above objectives, an embodiment of the present invention provides a data processing method based on a computing storage device, which can perform machine learning acceleration on a storage controller.

[0024] like Figure 2 As shown, the architecture of the computing storage device SSD system can be divided into:

[0025] Neural network computing unit, computing weight cache unit, SSD onboard main memory module (i.e. SSD onboard DRAM), computing raw input cache unit, NAND flash memory module (i.e. CSD NAND Flash unit), computing input / output cache unit. Through the data flow and processing between the above units, the neural network calculation or other matrix calculation commonly used in machine learning can be completed. Specifically:

[0026] The neural network computing unit, also known as the neural network computing engine, is used to receive data from the calculation weight cache unit and is responsible for completing neural network related calculations, such as convolution, pooling and other matrix operations.

[0027] It is understandable that the neural network computing unit can be composed of various methods, such as TPU and NPU, which are used to complete matrix operations using data loaded into its surrounding cache units.

[0028] The calculation weight cache unit is used to cache the parameters required for the current neural network operation, such as the convolution kernel data of each layer of the convolutional neural network, bias parameters and other neural network model parameters.

[0029] It is understandable that these parameters will be extracted by the neural network calculation unit for neural network calculation. The onboard main memory has a faster access speed, and the calculation weight cache unit can be set in the SSD onboard main memory module as a cache area for these parameters. The cache area can be set small, and the network parameter data of each layer can be read from the onboard main memory multiple times.

[0030] The original input cache unit is used to cache the input data to be processed required for neural network operation, and input the data to be processed into the neural network calculation unit to participate in the operation.

[0031] It is understandable that the calculation original input cache unit can adopt a ping-pong cache design to increase the data throughput rate. The calculation original input cache unit can be set in the CSD NAND Flash unit (i.e., NAND flash memory module). During the process of loading and calculating the data to be processed, the calculation original input cache unit can extract data from the NAND flash memory module to prepare for the next batch of data to be input into the neural network calculation unit for calculation.

[0032] The computing input / output cache unit is used to cache the intermediate data and final output results generated during the neural network operation process, and input the data into the corresponding unit (such as the SSD onboard main memory module or the NAND flash memory module) for storage.

[0033] It is understandable that the intermediate data needs to be input into the neural network computing unit to participate in the next step of calculation, and the final output result can be transmitted to the host for storage via the onboard main memory. Since the reading rate of DRAM (i.e., onboard main memory) is faster than the reading rate of NAND flash memory module, the computing input / output cache unit is used to maintain data consistency.

[0034] The SSD onboard main memory module, i.e., the SSD onboard main memory unit, is used to store data on the SSD board. For example, in the process of writing data, data with reduced access frequency or increased data volume is written into the data of the NAND flash memory module, or the data such as the calculation results of the neural network model or training data that needs to be archived and stored is transmitted to the host through the PCIe interface. In the process of reading data, data with a small data volume but a high access frequency is read and stored from the NAND flash memory module or the host. The SSD onboard main memory unit is a hard disk made of a solid-state electronic storage chip array, including SSD onboard storage (such as RAM) and a corresponding controller. The SSD onboard storage is used to store data, and the corresponding controller is used to control the reading of data in the SSD onboard storage or control the writing of data into the SSD onboard storage.

[0035] Specifically, the SSD onboard main memory unit in this architecture is divided into a computing area and a general area. The computing area is used to store computing function data, and the general area is used to store non-computing function data. In a specific embodiment, the computing area can be used to store neural network model parameters for the computing weight cache unit to read data for calculation.

[0036] The NAND flash module, namely the CSD NAND Flash unit, serves as a communication medium between the upper layer and the lower layer, and is used to receive commands from the upper layer and implement read and write operations on the NAND, including NFC (NAND FLASH Controller). Among them, CSD is a storage device with computing functions, and its main function is storage. NFC is a component of the SSD system, and is used to control the data interaction between the SSD system and the CSD NAND Flash unit, such as storing data in the SSD system into the CSD NAND Flash unit, or reading data in the CSD NAND Flash unit according to a data read request.

[0037] In this embodiment, a data access architecture for deep learning applications on CSD is provided. This data access architecture not only has low resource requirements, but can also be integrated into the CSD of neural network computing applications, so that when performing corresponding neural network calculations, the efficiency of accessing computing data is improved, thereby improving the overall performance.

[0038] like Figure 3 As shown, the data calculation process based on the above SSD system is as follows:

[0039] 1. Upon receiving a computing request from the host, the SSD system starts the computing process.

[0040] 2. The SSD system first loads data, that is, extracts neural network model parameters (such as convolution kernel data of each layer of the convolutional neural network, bias parameters and other neural network model parameters) from the SSD onboard main memory module to the calculation weight cache unit;

[0041] 3. The SSD system extracts the data to be processed (i.e., original data) from the NAND F flash memory module to the calculation original input cache unit, completing the loading of a batch of original data;

[0042] 4. The SSD system determines whether the neural network parameter data and the data to be processed have all been initially loaded. If so, the calculation of a batch of original data is started and the process goes to step 5. Otherwise, the system waits for all the initial data to be loaded and returns to step 3.

[0043] 5. The SSD system performs deep learning calculations based on the loaded data to obtain intermediate data (i.e., data that needs to be input into the neural network computing unit for the next step of calculation);

[0044] 6. The SSD system determines whether the calculation of the intermediate data is completed. If not, it returns to step 4 and continues the calculation. If completed, it goes to step 7.

[0045] 7. The SSD system reads the intermediate data from the computing input / output cache unit for calculation. After completion, it proceeds to step 8.

[0046] 8. The SSD system determines whether the entire deep learning calculation is completed. If it is completed, it goes to step 9, otherwise it goes to step 3 to continue reading the next batch of data to be processed;

[0047] 9. The SSD system obtains the final output result, which can be stored in the computing input / output cache unit and finally transmitted to the host for archiving until the calculation of all data is completed, ending the entire computing process.

[0048] In this embodiment, a data calculation method for deep learning applications on CSD is provided. The relevant data of the calculation is classified in advance according to the data reading characteristics of the neural network calculation, and the network parameters with small data volume and high access frequency are placed in the calculation area of ​​the SSD onboard main memory for access, and the to-be-processed data with large data volume and low access frequency is placed in the NAND flash memory module for access. In addition, the onboard main memory is divided into specific areas, and the data is taken out from the calculation area to bypass the ECC process, thereby balancing the data access efficiency and cost of the neural network calculation in the CSD, thereby further improving the calculation efficiency.

[0049] like Figure 4 As shown, Figure 4Schematic diagram of a server system for distributed neural network training, 300 is a server host (including GPU and CPU), 301 is an NVMe over PCIe bus, 302 is a data storage area, and 303 is a computing storage device CSD to which the present method is applied.

[0050] Taking the IO write command as an example, the data transmission process between the host and CSD is as follows:

[0051] 1. The host writes commands to SQ (Submission Queue);

[0052] 2. The host updates the Tail DB register of SQ and notifies CSD to fetch instructions;

[0053] 3. The CSD generates a first descriptor based on the instruction fetch notification, so as to fetch the SQ command stored in the host memory based on the first descriptor;

[0054] Fourth, the CSD decodes the SQ command and generates a second descriptor according to the decoded SQ command, so as to capture the data in the SQ command required for neural network training or calculation based on the second descriptor, including sending the model parameters to the SSD onboard main memory module and sending the data to be processed or the training data to the NAND flash memory module;

[0055] 5. After completing the SQ command, CSD writes the command execution result to the CQ (Completion Queue);

[0056] 6. CSD sends an interrupt notification to the host to inform the host that the instruction fetch is completed;

[0057] 7. When the host receives the interrupt, it obtains the instruction result from CQ to check the instruction completion status;

[0058] 8. After processing the instruction execution results in CQ, the host feeds back to CSD through CQ Head DB that the instruction execution results have been processed, completing the loading of data required for neural network calculation, so as to improve the data reading efficiency during neural network training, thereby improving the efficiency of neural network training.

[0059] It can be understood that the above process is one of the scenarios for applying this method within CSD, and this method has many application scenarios, including distributed neural network training, neural recommendation system servers, and computing service data centers. Figure 4The process shown is one of the application scenarios, namely, a server system for distributed neural network training. The entire server system in this process still retains the GPU / CPU as the processing core on the host side, and its data storage all uses the CSD equipped with deep learning applications. Each CSD adopts the data access method of the present invention and the supporting CSD architecture, and replaces the neural network calculation unit with the neural network training unit, which can be used to complete the neural network training task, thereby improving the data reading efficiency during neural network training, thereby improving the neural network training efficiency. After completing a training, the intermediate data can be saved to the SSD onboard main memory module. When it is necessary to optimize the intermediate data, multiple intermediate data to be optimized can be transmitted to the host through the PCIe interface for further optimization processing. After the optimization is completed, it is transmitted to the calculation area in the SSD onboard main memory module to participate in the next training. Repeat the above steps until the entire neural network training is completed, and the final output result is stored in the host.

[0060] Reference Figure 5 , Figure 5 It is a flowchart of the first embodiment of the data processing method based on the computing storage device of the present invention.

[0061] In this embodiment, the data processing method based on the computing storage device includes the following steps:

[0062] Step S10, classifying the data to be stored based on the usage parameters of each data in the data to be stored;

[0063] Step S20, storing the classified data to be stored in the SSD onboard main memory module and / or the NAND flash memory module respectively.

[0064] When an application needs to calculate and train a large amount of stored data, for example, a neural recommendation system server or computing service data, if a large amount of data is stored in a database, the CPU needs to extract a large amount of data layer by layer, which will waste a lot of time due to crossing multiple layers of storage media, thereby reducing the efficiency of data calculation.

[0065] In order to solve the above problems, in this embodiment, the computing unit is expanded on the bottom storage medium so that the data can be extracted from the bottom layer for computing, which can improve the computing efficiency and increase the data throughput.

[0066] Specifically, the computing data is classified according to usage parameters of the data, including data type, access frequency, or data volume.

[0067] In the present embodiment, a data processing method based on a computing storage device is provided, wherein the method classifies the data to be stored based on the usage parameters of each data in the data to be stored; and the classified data to be stored are respectively stored in the SSD onboard main memory module and / or the NAND flash memory module. In the above manner, the present invention classifies data based on the usage parameters, and stores the classified data in the SSD onboard main memory module with a fast access rate but a small storage space and / or the NAND flash memory module with a slow access rate but a large storage space according to the usage requirements. Thus, when the neural network computing task is deployed in the storage controller, the power consumption and time loss caused by the large amount of data reading in the neural network computing can be reduced. Thus, the inherent ECC (Error Correcting Code, error correction) of the storage device itself such as the SSD onboard main memory module, which is invalid or has low benefits for computing data, can be skipped, thereby improving the data access efficiency and reducing the data access cost.

[0068] In one embodiment, the classifying the data to be stored based on the usage parameters of each data in the data to be stored includes:

[0069] Determine the data whose access frequency exceeds a first threshold value among the data to be stored as the first data;

[0070] The data to be stored, whose access frequency does not exceed the first threshold or whose data volume is greater than the second threshold, are determined as second data.

[0071] The step of storing the classified data to be stored in the SSD onboard main memory module and / or the NAND flash memory module includes:

[0072] The first data is stored in the SSD onboard main memory module, and the second data is stored in the NAND flash memory module.

[0073] The data access rate in the SSD onboard main memory is fast, but if all calculation-related data is placed in the SSD onboard main memory for operation, the huge amount of data will increase the SSD onboard main memory overhead, and then increase the overhead of the entire system; placing all data in NAND Flash for access can reduce storage overhead, but the storage time of Nand Flash is several orders of magnitude lower than that of onboard main memory such as DRAM, which will be reflected in multiple data accesses, greatly reducing the efficiency of the entire machine learning.

[0074] In this embodiment, in order to solve the above problem, the data to be stored is classified according to the usage parameters. Specifically, the data to be stored whose access frequency exceeds the first threshold is classified as the first data; the data to be stored whose access frequency does not exceed the first threshold or whose data volume is greater than the second threshold is determined as the second data. In a specific embodiment, the first data may also be data whose access frequency exceeds the first threshold and whose data volume is not greater than the second threshold. Data with a small data volume and a high access frequency can be placed in the onboard main memory for access, and data to be processed with a large data volume or a low access frequency can be placed in the NAND for access.

[0075] In one embodiment, the classifying the data to be stored based on the usage parameters of each data in the data to be stored includes:

[0076] In the case where the data to be stored are model-related parameters, the model-related parameters are classified based on parameter categories of the model-related parameters, wherein the parameter categories include training data, data to be processed, and model parameters.

[0077] The step of storing the classified data to be stored in the SSD onboard main memory module and / or the NAND flash memory module includes:

[0078] The model parameters are stored in the SSD onboard main memory module, and the training data and / or the data to be processed are stored in the NAND flash memory module.

[0079] In this embodiment, the data sent is divided into two categories, the first category is training data, such as image data sets to be trained or data to be processed, such as images to be recognized, and the second category is weights and bias parameters of neural networks. It can also be classified and stored according to the data type. The image data is sent to NAND for storage through the write command of NAND's own protocol. The weights and biases are stored in the onboard main memory DDR.

[0080] In one embodiment, after classifying and storing the data corresponding to the neural network model, the method further includes:

[0081] Extracting the model parameters in the SSD onboard main memory module, and storing the training data and / or the data to be processed in the NAND flash memory module;

[0082] A neural network operation is performed based on the model parameters, the training data and / or the data to be processed.

[0083] In one embodiment, storing the model parameters in the SSD onboard main memory module further includes:

[0084] When a neural network operation start instruction is detected, the model parameters are stored in the calculation area of ​​the SSD onboard main memory module.

[0085] In this embodiment, when the neural network calculation is started, the model parameters are loaded into the calculation area in the SSD onboard main memory module according to the issued instructions. That is, the calculation area and the general area are divided in the onboard main memory module, and data is taken out from the calculation area, thereby bypassing the ECC process, thereby balancing the data access efficiency and cost of the neural network calculation in the CSD, thereby further improving the efficiency of the neural network calculation.

[0086] In one embodiment, before classifying the data to be stored based on the usage parameters of each data in the data to be stored, the method further includes:

[0087] Obtaining the total amount of the data to be stored and the current available storage space of the SSD onboard main memory module;

[0088] In a case where the currently available storage space is not greater than the total data volume, a classification instruction is generated to classify the data to be stored.

[0089] In this embodiment, when the data to be stored is obtained, the current available storage space of the SSD onboard main memory module is obtained, and the data volume of the current available storage space is compared with the data to be stored. When the current available storage space is not greater than the total data volume, a classification instruction is generated to classify the data to be stored. When the current available storage space is greater than the total data volume, the data to be stored is directly stored in the SSD onboard main memory module. When the storage space of the SSD onboard main memory module is sufficient, the data is preferentially stored in the SSD onboard main memory module to improve data access efficiency. When the storage space of the SSD onboard main memory module is insufficient, data classification storage is performed to maximize the use of the SSD onboard main memory module and reduce overhead.

[0090] In a specific embodiment, data priority can be set in advance according to data characteristics. Then, according to the priority of the data to be stored, when the priority of the data to be stored reaches a preset level, the data to be stored can be stored in the SSD onboard main memory module, and when the priority of the data to be stored does not reach the preset level, the data to be stored can be stored in the NAND flash memory module.

[0091] Through the above-mentioned method, this embodiment proposes a software and hardware implementation method for accelerating machine learning on a storage controller and its supporting architecture, using computing storage devices to deploy machine learning application tasks in the storage controller. At the same time, in order to reduce the power consumption and time loss caused by reading a large amount of data in machine learning, the data related to the calculation is classified and stored in advance, and the data such as the neural network model parameters with small data volume and high access times are placed in the onboard main memory for access, and the data such as the training set feature map with large data volume and low access times are placed in the NAND Flash for access. At the same time, specific areas are divided in the main memory module, and the calculation-related data is accessed only in the calculation area, so that the steps or processing that are invalid or low-benefit for the calculation data can be skipped, such as the inherent ECC of the storage device itself such as SSD. It effectively balances the data access efficiency and cost of using CSD for machine learning acceleration, thereby further improving the computing efficiency, thereby completing the effective acceleration of machine learning.

[0092] In addition, an embodiment of the present invention also provides a data processing device based on a computing storage device.

[0093] In this embodiment, the data processing device based on the computing storage device includes:

[0094] A data classification module, used for classifying the data to be stored based on the usage parameters of each data in the data to be stored;

[0095] The classification storage module is used to store the classified data to be stored in the SSD onboard main memory module and / or the NAND flash memory module respectively.

[0096] Furthermore, the data classification module includes:

[0097] A first classification unit, configured to determine data whose access frequency exceeds a first threshold value among the data to be stored as first data;

[0098] The second classification unit is used to determine the data whose access frequency does not exceed the first threshold or whose data volume is greater than the second threshold in the data to be stored as the second data.

[0099] Furthermore, the classification storage module includes:

[0100] The first storage unit is used to store the first data in the SSD onboard main memory module, and store the second data in the NAND flash memory module.

[0101] Furthermore, the data classification module includes:

[0102] The third classification unit is used to classify the model-related parameters based on parameter categories of the model-related parameters when the data to be stored are model-related parameters, wherein the parameter categories include training data, data to be processed and model parameters.

[0103] Furthermore, the classification storage module includes:

[0104] The second storage unit is used to store the model parameters in the SSD onboard main memory module, and store the training data and / or the data to be processed in the NAND flash memory module.

[0105] Furthermore, the classification storage module includes:

[0106] A data loading unit is used to store the model parameters in the calculation area of ​​the SSD onboard main memory module when a neural network operation start instruction is detected.

[0107] Furthermore, the data processing device further includes:

[0108] A data extraction module, used to extract the model parameters in the SSD onboard main memory module, and the training data and / or the data to be processed in the NAND flash memory module;

[0109] A data calculation module is used to perform neural network operations based on the model parameters, the training data and / or the data to be processed.

[0110] Furthermore, the data processing device comprises:

[0111] A storage space acquisition module, used to acquire the total amount of data to be stored and the current available storage space of the SSD onboard main memory module;

[0112] The classification instruction generating module is used to generate a classification instruction to classify the data to be stored when the currently available storage space is not greater than the total data volume.

[0113] Among them, each module in the above-mentioned data processing device based on computing and storage devices corresponds to each step in the above-mentioned data processing method embodiment based on computing and storage devices, and their functions and implementation processes are no longer repeated here one by one.

[0114] In addition, an embodiment of the present invention further provides a computer-readable storage medium.

[0115] The computer-readable storage medium of the present invention stores an application information management program, wherein when the application information management program is executed by a processor, the steps of the application information management method as described above are implemented.

[0116] The method implemented when the application information management program is executed can refer to the various embodiments of the application information management method of the present invention, and will not be described in detail here.

[0117] In addition, an embodiment of the present invention further provides a computer-readable storage medium.

[0118] The computer-readable storage medium of the present invention stores a data processing program based on a computing storage device, wherein when the data processing program based on a computing storage device is executed by a processor, the steps of the data processing method based on a computing storage device as described above are implemented.

[0119] Among them, the method implemented when the data processing program based on the computing storage device is executed can refer to the various embodiments of the data processing method based on the computing storage device of the present invention, and will not be repeated here.

[0120] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or system 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 system. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or system including the element.

[0121] The serial numbers of the above embodiments of the present invention are only for description and do not represent the advantages or disadvantages of the embodiments.

[0122] The present application can be used in many general or special computer system environments or configurations. For example: personal computers, server computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, etc. The present application can be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. The present application can also be practiced in distributed computing environments, in which tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.

[0123] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present invention is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) as described above, and includes a number of instructions for a terminal device (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in each embodiment of the present invention.

[0124] The above are only preferred embodiments of the present invention, and are not intended to limit the patent scope of the present invention. Any equivalent structure or equivalent process transformation made using the contents of the present invention specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present invention.

Claims

1. A data processing method based on a computing storage device, characterized in that: The data processing method comprises: Classifying the data to be stored based on usage parameters of each data in the data to be stored; The classified data to be stored are stored in the SSD onboard main memory module and / or the NAND flash memory module respectively.

2. The data processing method according to claim 1, characterized in that: The classifying the data to be stored based on the usage parameters of each data in the data to be stored includes: Determine the data whose access frequency exceeds a first threshold value among the data to be stored as the first data; The data to be stored, whose access frequency does not exceed the first threshold or whose data volume is greater than the second threshold, are determined as second data.

3. The data processing method according to claim 2, characterized in that: The step of storing the classified data to be stored in the SSD onboard main memory module and / or the NAND flash memory module includes: The first data is stored in the SSD onboard main memory module, and the second data is stored in the NAND flash memory module.

4. The data processing method according to claim 1, characterized in that: The classifying the data to be stored based on the usage parameters of each data in the data to be stored includes: In the case where the data to be stored are model-related parameters, the model-related parameters are classified based on parameter categories of the model-related parameters, wherein the parameter categories include training data, data to be processed, and model parameters.

5. The data processing method according to claim 4, characterized in that: The step of storing the classified data to be stored in the SSD onboard main memory module and / or the NAND flash memory module includes: The model parameters are stored in the SSD onboard main memory module, and the training data and / or the data to be processed are stored in the NAND flash memory module.

6. The data processing method according to claim 5, characterized in that: The step of storing the model parameters in the SSD onboard main memory module includes: When a neural network operation start instruction is detected, the model parameters are stored in the calculation area of ​​the SSD onboard main memory module.

7. The data processing method according to claim 5, characterized in that: The data processing method further includes: Extracting the model parameters in the SSD onboard main memory module, and storing the training data and / or the data to be processed in the NAND flash memory module; A neural network operation is performed based on the model parameters, the training data and / or the data to be processed.

8. The data processing method according to any one of claims 1 to 7, characterized in that: Before classifying the data to be stored based on the usage parameters of each data in the data to be stored, the method further includes: Obtaining the total amount of the data to be stored and the current available storage space of the SSD onboard main memory module; In a case where the currently available storage space is not greater than the total data volume, a classification instruction is generated to classify the data to be stored.

9. A data processing device based on a computing storage device, characterized in that: The data processing device based on the computing storage device includes a processor, a memory, and a data processing program based on the computing storage device stored in the memory and executable by the processor, wherein when the data processing program based on the computing storage device is executed by the processor, the steps of the data processing method based on the computing storage device as described in any one of claims 1-8 are implemented.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a data processing program based on a computing storage device, wherein when the data processing program based on a computing storage device is executed by a processor, the steps of the data processing method based on a computing storage device as described in any one of claims 1 to 8 are implemented.