Data processing method and device and intelligent driving equipment
By splitting data groups in parallel processing in the intelligent driving on-board computing platform, combining deterministic scheduler and dedicated computing resources, the problem of uncertain delay in intelligent driving data processing is solved, and a more stable data processing time is achieved.
Patent Information
- Application Number
- CN202310706247.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-14
- Publication Date
- 2024-12-27
AI Technical Summary
In the intelligent driving on-vehicle computing platform, the problem of uncertain delay caused by changes in the computing resource load rate when the application processes data.
By determining the estimated processing delay of the data group, if it is greater than the expected time delay, the data group is divided into a sub-data group, and multiple computing resources are used for parallel processing, the processing results are combined to meet the expected delay, and combined with the deterministic scheduler and dedicated computing resources to ensure latency certainty.
It effectively reduces the uncertainty of data processing delay, improves the certainty and efficiency of data processing, and solves the delay problem caused by changes in computing resource load rate.
Smart Images

Figure CN119201366A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of intelligent driving technology, and more specifically, to a data processing method, device and intelligent driving equipment. Background Art
[0002] In the current intelligent driving vehicle computing platform, applications (APP) mainly use parameters input when calling the application programming interface (API) to call computing resources. That is, once a certain computing resource is specified in the application, the application will subsequently process related business data based on the specified computing resource.
[0003] However, in reality, the adjustment of intelligent driving functions causes the load rate of the computing resources corresponding to the application to change continuously, which in turn causes the application to produce different delays in the process of processing data due to the change in resource load rate, that is, it causes the problem of uncertainty in the delay in the process of processing data. For example, when the load rate of the computing resources corresponding to the application is 30%, the data processing delay may be 15ms; when the load rate of the computing resources is 80%, the data processing delay may be 35ms.
[0004] Therefore, how to solve the problem of uncertain data processing delay is an issue that needs to be explored urgently. Summary of the invention
[0005] The present application provides a data processing method, device and intelligent driving equipment, which can solve the problem of uncertain data processing delay in current technology.
[0006] In a first aspect, a data processing method is provided, including: determining an estimated processing delay for a first data group, the first data group corresponding to a first APP, the first APP specifying a first computing resource to process the first data group; when the estimated processing delay is greater than the expected processing delay, dividing the first data group into multiple sub-data groups; processing the multiple sub-data groups in parallel based on multiple second computing resources to obtain multiple sub-processing results; merging the multiple sub-processing results to obtain a processing result of the first data group, the sum of the parallel processing delay and the delay of merging the multiple processing results meets the expected processing delay.
[0007] The estimated processing delay of the first data group refers to the delay of the first computing resource specified by the first APP to process the first data group under the current load. It should be understood that when the current load rate of the first computing resource is large, the first data group cannot be processed immediately and needs to wait for a period of time, so the estimated processing delay is large; when the current load rate of the first computing resource is small, the first data group can be processed immediately, so the estimated processing delay is small.
[0008] The plurality of second computing resources may process the plurality of sub-data groups in parallel. It should be understood that, compared with serial processing of data, parallel processing of data can reduce data processing delay.
[0009] The plurality of second computing resources may include the first computing resource, or may not include the first computing resource.
[0010] The processing delay of each sub-data group in the multiple sub-data groups includes a waiting delay before the corresponding computing resource performs a computing operation based on the sub-data group and a computing delay for the computing resource to perform the computing operation. The waiting delay can be determined according to the load of the corresponding computing resource. For example, when the load rate of the computing resource is low, the waiting delay is small or does not exist; when the load rate of the computing resource is high, the waiting delay is long.
[0011] Since the multiple sub-data groups are processed in parallel, the delay of the parallel processing of the multiple sub-data groups can be determined according to the maximum processing delay among the processing delays corresponding to the multiple sub-data groups.
[0012] The delay of merging the multiple processing results mentioned above may be understood as the delay generated when performing the merging operation on the multiple processing results.
[0013] The above-mentioned expected processing delay may be a preset value or a preset range.
[0014] When the expected processing delay is a preset value, the sum of the delay of the parallel processing and the delay of merging multiple processing results satisfies the expected processing delay, which can be understood as the sum of the delay of the parallel processing and the delay of merging multiple processing results is equal to the preset value.
[0015] When the expected processing delay is within a preset range, the sum of the delay of the parallel processing and the delay of merging multiple processing results satisfies the expected processing delay, which can be understood as the sum of the delay of the parallel processing and the delay of merging multiple processing results falls within the preset range.
[0016] Based on the solution of the present application, when processing a data group, the estimated processing delay of the data group when processed based on the computing resources specified by the current APP can be determined first. When the estimated processing delay is greater than the expected processing delay, the data group is divided into multiple sub-data groups, and multiple computing resources are re-assigned to process the divided sub-data groups in parallel, thereby effectively reducing the data processing delay and solving the problem of uncertain data processing delay in current technology.
[0017] In combination with the first aspect, in certain implementations of the first aspect, before splitting the first data group, the method also includes: determining a splitting strategy corresponding to the first data group, the splitting strategy including the head and tail indexes of each sub-data group in the multiple sub-data groups and a second computing resource corresponding to each sub-data group; and splitting the first data group according to the splitting strategy.
[0018] The head and tail indexes of the sub-data group are used to indicate the position and data size of the sub-data group in the original data group. The index can also be described as a node, sequence number, or serial number.
[0019] Based on the solution of the present application, before segmenting a data group, the segmentation method of the data group and the computing resources corresponding to each sub-data group can be determined first to ensure deterministic execution of the segmentation operation and data processing.
[0020] The present application does not limit the method for determining the segmentation strategy, as long as it can ensure that the sum of the latency and the merge latency of each sub-data group when processed in parallel based on the corresponding computing resources meets the expected processing latency.
[0021] In combination with the first aspect, in certain implementations of the first aspect, before processing the multiple sub-data groups in parallel based on multiple second computing resources, the method further includes: scheduling the multiple sub-data groups to the multiple second computing resources respectively based on a deterministic scheduler.
[0022] Among them, a deterministic scheduler refers to a scheduler that can ensure that the system completes a task within a certain time. In other words, the deterministic scheduler can ensure that the processing delay of each task is certain.
[0023] Based on the solution of the present application, multiple sub-data groups can be scheduled to multiple second computing resources respectively based on a deterministic scheduler to ensure the determinism of data processing latency.
[0024] In combination with the first aspect, in some implementations of the first aspect, the method further includes: marking at least one of the multiple second computing resources as a dedicated computing resource, and the dedicated computing resource can only be scheduled by the deterministic scheduler.
[0025] In other words, the dedicated computing resources can only be used to process the sub-data groups scheduled by the deterministic scheduler.
[0026] Based on the solution of the present application, after the computing resources corresponding to the sub-data group are determined, the computing resources can be marked as dedicated computing resources, and only the computing resources are allowed to be scheduled by a deterministic scheduler to prevent the computing resources from being occupied by other services and ensure the determinism of data processing latency.
[0027] In combination with the first aspect, in certain implementations of the first aspect, the splitting strategy is determined according to at least one of the following strategies: determining the splitting strategy based on the computing resources previously used by the first APP; determining the splitting strategy based on the head and tail indexes of the sub-data group obtained by splitting the previous data group of the first APP and the corresponding computing resources; determining the splitting strategy based on the computing resources corresponding to the head index of the sub-data group obtained by splitting the previous data group of the first APP and the actual load of the corresponding computing resources.
[0028] Based on the solution of the present application, when determining the segmentation strategy of the current data group, the segmentation strategy of the previous data group of the corresponding APP can be referred to, thereby reducing system resource consumption.
[0029] The above-mentioned previous and prior may refer to the last time or other historical stages.
[0030] The above-mentioned determining the segmentation strategy according to the computing resources previously used by the first APP refers to determining the computing resources in the segmentation strategy according to the computing resources previously (for example, last time) used by the first APP.
[0031] The above-mentioned determining the splitting strategy based on the head and tail indexes of the sub-data group obtained by splitting the previous data group of the first APP and the corresponding computing resources means determining the head and tail indexes of the sub-data group and the corresponding computing resources in the current splitting strategy based on the head and tail indexes of the sub-data group obtained by splitting the previous data group of the first APP (for example, the data group of the last splitting execution) and the corresponding computing resources.
[0032] The above-mentioned determining the splitting strategy based on the computing resources corresponding to the first index of the sub-data group obtained by splitting the previous data group of the first APP and the actual load of the corresponding computing resources means determining the first and last indexes of the sub-data group and the corresponding computing resources in the current splitting strategy based on the computing resources corresponding to the first index of the sub-data group obtained by splitting the previous data group of the first APP (for example, the data group of the last splitting) and the actual load of the corresponding computing resources.
[0033] Specifically, we can first determine that one of the computing resources in the current splitting strategy is computing resource 1 based on the computing resource 1 corresponding to the first index a of the sub-data group 1 obtained in the previous data group, and then combine the current actual load of the computing resource 1 to supplement the index after the first index a and correspond to computing resource 1. The strategy is explained in detail below in combination with situation 1 and situation 2.
[0034] Case 1: When the current load rate of the computing resource 1 is relatively large, an appropriate number of indexes (for example, indexes a to i) are added after the first index a to correspond to the computing resource 1 according to the current load situation, and the remaining indexes of the sub-data group 1 (for example, i+1 to b, where b is the tail index of the sub-data group 1 obtained in the previous data group) are corresponded to other computing resources (for example, computing resource 2).
[0035] Case 2: When the current load rate of the computing resource 1 is relatively low, additional indexes (e.g., indexes a to b and c to d) are added after the first index a according to the current load situation to correspond to the computing resource 1. Among them, b is the tail index of the sub-data group 1 obtained from the previous data group, and c to d can be the indexes of the sub-data group 2 obtained from the previous data group. It should be understood that when adding indexes c to d, the first and last indexes with the smallest scale in the segmentation strategy of the previous data group can be added first to reduce the number of computing resources used and reduce resource consumption.
[0036] In combination with the first aspect, in some implementations of the first aspect, the method is applied to a computing platform, the computing platform includes a cache, the cache stores a segmentation record corresponding to the first APP, the segmentation record includes a correspondence between a first head and tail index and a third computing resource, and the method includes: segmenting the first data group according to the first head and tail index to obtain a first sub-data group corresponding to the first head and tail index; processing the first sub-data group based on the third computing resource. The computing platform includes a mobile computing platform or a cloud computing platform. The mobile computing platform includes a vehicle-mounted computing platform or a computing platform mounted on an intelligent robot. The cloud computing platform can be a computing platform in a control room in an unmanned operation scenario.
[0037] This application uses cache to store the historical segmentation records corresponding to the APP, so that when the current data group is segmented, the historical segmentation records can be obtained from the cache first, and then the segmentation method and corresponding computing resources of the current data group can be determined based on the acquired segmentation records. On the one hand, compared with obtaining segmentation records from memory, obtaining segmentation records from the cache can increase the acquisition speed, thereby improving the efficiency of data processing; on the other hand, obtaining segmentation records from the cache can improve the cache hit rate, thereby improving the overall system throughput and resource utilization.
[0038] In combination with the first aspect, in certain implementations of the first aspect, the method also includes: recording key information generated during data processing, the key information including at least one of an estimated processing delay, an actual processing delay, an expected processing delay, a splitting strategy, usage of corresponding computing resources, a calculation merge operation record, and related information of a scheduler scheduling queue; analyzing the key information, and adjusting relevant configurations of data processing based on the analysis results, the relevant configurations including at least one of a threshold for expected processing delay, optional computing resources, a computing resource selection strategy, and a splitting strategy update cycle.
[0039] The optional computing resources refer to available computing resources; the computing resource selection strategy may include a computing resource usage sequence strategy.
[0040] Based on the solution of this application, relevant information can be recorded during the data processing process, and the relevant configuration of data processing can be optimized based on this information, so that the data processing capability is closer to the actual business and achieves better deterministic effect.
[0041] In combination with the first aspect, in certain implementations of the first aspect, the method also includes: when the estimated processing delay is less than the expected processing delay, processing the first data group based on the first computing resource, and returning the processing result after waiting for a set time after processing the first data group, wherein the set time is the difference between the expected processing delay and the estimated processing delay.
[0042] Based on the solution of the present application, when the estimated processing delay is less than the expected processing delay, the data group can be processed based on the computing resources specified by the APP, and the processing result can be returned after waiting for a set time after processing, so that the processing delay of the data meets the expected processing delay, thereby solving the problem of uncertain data processing delay in current technology.
[0043] In combination with the first aspect, in certain implementations of the first aspect, the expected processing delay is determined according to multiple historical processing delays corresponding to the first APP.
[0044] For example, the expected processing delay can be determined based on the average value of multiple historical processing delays; for another example, the expected processing delay can be determined based on the average value and standard deviation of multiple historical processing delays; for another example, the expected processing delay can be determined based on the minimum value of multiple historical processing delays, and so on.
[0045] Alternatively, the expected processing delay may also be determined in advance by a user or developer based on their own expectations, or by a computing platform based on actual needs of intelligent driving.
[0046] In combination with the first aspect, in certain implementations of the first aspect, the expected processing delay satisfies the interval: [T-σ, T+σ], where T is the average value of the multiple historical processing delays, and σ is the standard deviation of the multiple historical processing delays.
[0047] In combination with the first aspect, in certain implementations of the first aspect, the multiple second computing resources include: at least one of: a scalable vector extension (SVE), a central processing unit (CPU), a graphics processing unit (GPU), a digital video pre-processing (DVPP), an image processor (ISP), an artificial intelligence (AI) core, a vector core, etc.; the first data group includes data that needs to be processed in an intelligent driving scenario.
[0048] In a second aspect, a data processing device is provided, which includes a processing unit and multiple computing resources, the processing unit is used to determine an estimated processing delay for a first data group, the first data group corresponds to a first APP, and the first application specifies a first computing resource to process the first data group; when the estimated processing delay is greater than the expected processing delay, the first data group is divided into multiple sub-data groups; the multiple sub-data groups are processed in parallel based on multiple second computing resources to obtain multiple sub-processing results; and the multiple sub-processing results are merged to obtain a processing result of the first data group, the sum of the delay of the parallel processing and the delay of merging the multiple processing results meets the expected processing delay, and the first computing resource and the second computing resource belong to the multiple computing resources.
[0049] In combination with the second aspect, in certain implementations of the second aspect, the processing unit is also used to determine a splitting strategy corresponding to the first data group, the splitting strategy including the head and tail indexes of each sub-data group in the multiple sub-data groups and the second computing resources corresponding to each sub-data group; and split the first data group according to the splitting strategy.
[0050] In combination with the second aspect, in certain implementations of the second aspect, the processing unit is further used to schedule the multiple sub-data groups to the multiple second computing resources respectively based on a deterministic scheduler.
[0051] In combination with the second aspect, in some implementations of the second aspect, the processing unit is further used to mark at least one of the multiple second computing resources as a dedicated computing resource, and the dedicated computing resource can only be scheduled by the deterministic scheduler.
[0052] In combination with the second aspect, in certain implementations of the second aspect, the processing unit is further used to determine the splitting strategy according to at least one of the following strategies: determining the splitting strategy based on the computing resources previously used by the first APP; determining the splitting strategy based on the head and tail indexes of the sub-data group obtained by splitting the previous data group of the first APP and the corresponding computing resources; determining the splitting strategy based on the computing resources corresponding to the first index of the sub-data group obtained by splitting the previous data group of the first APP and the actual load of the corresponding computing resources.
[0053] In combination with the second aspect, in some implementations of the second aspect, the device is applied to a computing platform, the computing platform includes a cache, the cache stores a segmentation record corresponding to the first APP, the segmentation record includes a correspondence between a first head and tail index and a third computing resource, and the processing unit is further used to segment the first data group according to the first head and tail index to obtain a first sub-data group corresponding to the first head and tail index; and process the first sub-data group based on the third computing resource. The computing platform includes a mobile computing platform or a cloud computing platform. The mobile computing platform includes a vehicle-mounted computing platform or a computing platform mounted on an intelligent robot. The cloud computing platform can be a computing platform in a control room in an unmanned operation scenario.
[0054] In combination with the second aspect, in certain implementations of the second aspect, the processing unit is also used to record key information generated during the data processing process, the key information including at least one of the estimated processing delay, actual processing delay, expected processing delay, splitting strategy, usage of corresponding computing resources, computing merging operation records, and related information of the scheduler scheduling queue; analyze the key information and adjust the relevant configuration of the data processing according to the analysis results, the relevant configuration including at least one of the threshold of the expected processing delay, optional computing resources, computing resource selection strategy, and splitting strategy update cycle.
[0055] In combination with the second aspect, in certain implementations of the second aspect, the processing unit is also used to, when the estimated processing delay is less than the expected processing delay, process the first data group based on the first computing resource, and return the processing result after waiting for a set time after processing the first data group, where the set time is the difference between the expected processing delay and the estimated processing delay.
[0056] In combination with the second aspect, in certain implementations of the second aspect, the expected processing delay is determined according to multiple historical processing delays corresponding to the first APP.
[0057] In combination with the second aspect, in certain implementations of the second aspect, the expected processing delay satisfies the interval: [T-σ, T+σ], where T is the average value of the multiple historical processing delays, and σ is the standard deviation of the multiple historical processing delays.
[0058] In combination with the second aspect, in certain implementations of the second aspect, the multiple second computing resources include: at least one of SVE, CPU, GPU, DVPP, ISP, AI core, and vector core; the first data group includes data that needs to be processed in the intelligent driving scenario.
[0059] In a third aspect, a data processing device is provided, comprising an input / output interface, a processor and a memory, wherein the processor is used to control the input / output interface to send and receive signals or information, the memory is used to store a computer program, and the processor is used to call and run the computer program from the memory, so that the data processing device executes a data processing method as in the first aspect or any possible implementation of the first aspect.
[0060] In a fourth aspect, a computer-readable medium is provided, which stores a program code. When the program code is executed on a computer, the computer executes the data processing method in the first aspect or any possible implementation of the first aspect.
[0061] In a fifth aspect, a computer program product is provided, comprising instructions, and when the instructions are run on a computer, the data processing method in the first aspect or any possible implementation of the first aspect is executed.
[0062] In a sixth aspect, a computing device is provided, comprising: at least one processor and a memory, wherein the at least one processor is coupled to the memory and is used to read and execute instructions in the memory to perform a data processing method as in the first aspect or any possible implementation of the first aspect.
[0063] In a seventh aspect, a chip is provided, comprising a circuit for executing a data processing method as in the first aspect or any possible implementation manner of the first aspect.
[0064] In an eighth aspect, an intelligent driving device is provided, comprising a device as in the second aspect or any possible implementation of the second aspect, or comprising a device as in the third aspect, and the device is applied to a mobile computing platform. BRIEF DESCRIPTION OF THE DRAWINGS
[0065] Figure 1 is a functional schematic diagram of the intelligent driving device 100 provided in an embodiment of the present application;
[0066] Figure 2It is a system architecture diagram of a computing platform provided in an embodiment of the present application;
[0067] Figure 3 It is a flowchart of a data processing method provided in an embodiment of the present application;
[0068] Figure 4 is a schematic diagram of multiple historical processing delays corresponding to the first APP provided in an embodiment of the present application;
[0069] Figure 5 It is a schematic diagram of the principle of segmentation of a data group provided in an embodiment of the present application;
[0070] Figure 6 It is a flowchart of another data processing method provided in an embodiment of the present application;
[0071] Figure 7 It is a flowchart of another data processing method provided in an embodiment of the present application;
[0072] Figure 8 is a structural schematic diagram of a data processing device provided in an embodiment of the present application;
[0073] Fig. 9 It is a schematic block diagram of the hardware structure of the data processing device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0074] In the description of the embodiments of the present application, unless otherwise specified, “ / ” means or. For example, A / B can mean A or B. The “and / or” in this article is a description of the association relationship of associated objects, indicating that three relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone.
[0075] In this application, "at least one" means one or more, and "plurality" means two or more. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, c can be single or multiple.
[0076] The prefixes such as "first" and "second" used in the embodiments of the present application are only used to distinguish different description objects, and have no limiting effect on the position, order, priority, quantity or content of the described objects. The use of prefixes such as ordinal numbers used to distinguish description objects in the embodiments of the present application does not constitute a limitation on the described objects. For the statement of the described objects, please refer to the description in the context of the claims or embodiments, and the use of such prefixes should not constitute an unnecessary limitation.
[0077] The technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings.
[0078] The solution of the present application can be applied to intelligent driving devices, for example, to vehicle-mounted computing platforms such as the central computing platform, intelligent driving domain controller, cockpit domain controller, microcontroller unit (MCU), and electronic control unit (ECU) in intelligent driving devices.
[0079] Among them, the intelligent driving equipment may include road vehicles, water vehicles, air vehicles, industrial equipment, agricultural equipment, or entertainment equipment, etc. For example, the intelligent driving equipment may be a vehicle, which is a vehicle in a broad sense, and may be a vehicle (such as a commercial vehicle, a passenger car, a motorcycle, a flying car, a train, etc.), an industrial vehicle (such as a forklift, a trailer, a tractor, etc.), an engineering vehicle (such as an excavator, a bulldozer, a crane, etc.), agricultural equipment (such as a mower, a harvester, etc.), amusement equipment, a toy vehicle, etc. This application does not specifically limit the type of vehicle. For another example, the intelligent driving equipment may be a vehicle such as an airplane or a ship.
[0080] The present application scheme can also be applied to servers, smart terminals, smart homes, vehicle-mounted embedded devices, etc. For example, it can be applied to smart phones, desktop computers, laptops, tablet computers, wearable devices, robots, etc.
[0081] Combine the following Figure 1 , taking intelligent driving equipment as an example, the application scenarios of this application are exemplarily introduced.
[0082] Figure 1 is a functional schematic diagram of the intelligent driving device 100 provided in the embodiment of the present application. It should be understood that Figure 1 The above and related descriptions are only examples, and the actual intelligent driving device may not be limited thereto. Figure 1 As shown, the intelligent driving device 100 may include a perception system 110 and a computing platform 120 .
[0083] The perception system 110 may include one or more sensors for sensing information about the environment around the vehicle 100. The perception system 110 may include a positioning system, which may be a global positioning system (GPS), a Beidou system, or other positioning systems. For another example, the perception system 110 may also include one or more of a laser radar, a millimeter wave radar, an ultrasonic radar, a camera, and an inertial measurement unit (IMU).
[0084] The computing platform 120 is used to analyze and process the data sensed by the perception system 110, and to control some or all functions of the intelligent driving device 100. The computing platform 120 may include processors 121 to 12n. The processor is a circuit with signal processing capability. In one implementation, the processor may be a circuit with instruction reading and running capability, such as a CPU, a microprocessor, a GPU (which can be understood as a microprocessor), or a digital signal processor (DSP). In another implementation, the processor may implement certain functions through the logical relationship of the hardware circuit, and the logical relationship of the hardware circuit is fixed or reconfigurable, such as a hardware circuit implemented by a processor as an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), such as a field programmable gate array (FPGA). In a reconfigurable hardware circuit, the process of the processor loading a configuration document to implement the hardware circuit configuration can be understood as the process of the processor loading instructions to implement the functions of some or all of the above units. In addition, the processor may also be a hardware circuit designed for artificial intelligence, which may be understood as an ASIC, such as a neural network processing unit (NPU), a tensor processing unit (TPU), a deep learning processing unit (DPU), etc. In addition, the computing platform 120 may also include a memory, the memory is used to store instructions, and some or all of the processors 121 to 12n may call instructions in the memory to implement corresponding functions.
[0085] For example, Figure 2 Schematic diagram of the system architecture of the computing platform provided in the embodiment of the present application. Figure 2As shown, the computing platform 200 may include an application layer 210 , a platform software layer 220 , and a platform hardware layer 230 .
[0086] The application layer 210 may include intelligent driving applications, functional safety applications, and information security applications, etc. Each application may include one or more APPs, which are mainly used to realize the control and safety management of intelligent driving. Among them, the APP corresponding to the intelligent driving application can realize perception, positioning, fusion, decision-making, planning or control, etc.; the APP corresponding to the functional safety application and the information security application can realize error monitoring, security policy management, computing resource monitoring, execution of security corrections, and security warnings, etc.
[0087] The platform software layer 220 may include an API set and an operator set, etc. Among them, API is a set of definitions, programs and protocols, through which mutual communication between computer software can be realized; operator is computing logic, which can be run on computing resources.
[0088] The platform hardware layer 230 may include at least one computing resource, for example, may include at least one of a CPU, SVE, GPU, DVPP, ISP, AI core, vector core, etc. These computing resources may provide parallel computing capabilities, and each computing resource may include one or more.
[0089] Based on the computing platform 200, when processing business data based on a certain APP, the APP will send parameters to the corresponding API to call the computing resources indicated by the parameters to process the business data. Among them, the parameters are usually set in advance by the developer or user of the APP. This means that the computing resources corresponding to the APP are also specified in advance. However, in practice, with the adjustment of the intelligent driving function, the load rate of the computing resources corresponding to the APP will continue to change, resulting in the problem of uncertain delay in the data processing process.
[0090] Based on this, the present application proposes a data processing method, which can split business data (i.e., the data group hereinafter) when the estimated processing delay of the business data is greater than the expected processing delay, and re-assign multiple computing resources to process the split business data (i.e., the sub-data group hereinafter) in parallel, thereby effectively reducing the processing delay of the business data and solving the problem of uncertain data processing delay in current technology.
[0091] Figure 3 is a flowchart of a data processing method provided in an embodiment of the present application. Method 300 may be executed by a processing device, wherein the processing device has a processing function, for example, the processing device may be one or more devices having a processing function, such as a vehicle computer, a vehicle chip, a vehicle processor, a computing platform 120, a computing platform 200 or a server. Figure 3 As shown, the method 300 includes steps S310 to S340, which are described in detail below.
[0092] S310, determining an estimated processing delay of a first data group when processed based on a first computing resource.
[0093] The first data group corresponds to a first APP, and the first APP specifies a first computing resource to process the first data group.
[0094] The estimated processing delay of the first data group is the delay of the first computing resource specified by the first APP to process the first data group under the current load. It should be understood that when the current load rate of the first computing resource is large, the first data group cannot be processed immediately and needs to wait for a period of time, so the estimated processing delay is large; when the current load rate of the first computing resource is small, the first data group can be processed immediately, so the estimated processing delay is small.
[0095] When applied to an intelligent driving scenario, the first data group may include data that needs to be processed in the intelligent driving scenario.
[0096] S320: When the estimated processing delay is greater than the expected processing delay, split the first data group into multiple sub-data groups.
[0097] The expected processing delay may be a preset value or a preset range.
[0098] In a possible implementation, the expected processing delay can be determined based on multiple historical processing delays corresponding to the first APP. For example, the expected processing delay can be determined based on the average value of multiple historical processing delays; for another example, the expected processing delay can be determined based on the average value and standard deviation of multiple historical processing delays; for another example, the expected processing delay can be determined based on the minimum value of multiple historical processing delays, and so on.
[0099] For example, Figure 4 Schematic diagram of multiple historical processing delays corresponding to the first APP provided in the embodiment of the present application. Figure 4 As shown, the multiple (for example, n) historical processing delays t corresponding to the first APP change in a curve and are uncertain. Figure 4 For example, when determining the expected processing delay based on the average value of multiple historical processing delays, the expected processing delay may be T, where T is the average value of multiple historical processing delays; when determining the expected processing delay based on the average value and standard deviation of multiple historical processing delays, the expected processing delay may satisfy the interval: [T-σ, T+σ], where T is the average value of multiple historical processing delays, and σ is the standard deviation of multiple historical processing delays.
[0100] In another possible implementation, the expected processing delay may also be determined in advance by the user or developer based on their own expectations, or by the computing platform based on the actual needs of intelligent driving.
[0101] Figure 5 It is a schematic diagram of the principle of segmenting the data group provided in the embodiment of the present application. It should be understood that Figure 5 The segmentation method and corresponding computing resources shown are only examples and are not limited in this application. Figure 5 As shown, the first data group can be divided into multiple sub-data groups, and the multiple sub-data groups can be processed in parallel by multiple computing resources to obtain multiple sub-processing results. The processing result of the first data group can be obtained by merging the multiple sub-processing results. The merged processing result is the same as the result of directly processing the first data group.
[0102] In a possible implementation, before the first data group is segmented, a segmentation strategy corresponding to the first data group may be determined, and then the first data group may be segmented according to the segmentation strategy to ensure deterministic execution of the segmentation operation and data processing. The segmentation strategy is used to indicate the segmentation method of the data group and the computing resources corresponding to each sub-data group. As an example, the segmentation strategy may include the head and tail indexes of each sub-data group in the multiple sub-data groups and the computing resources corresponding to each sub-data group (i.e., the second computing resources hereinafter).
[0103] The head and tail indexes of the sub-data group are used to indicate the position and data size of the sub-data group in the original data group. The index can also be described as a node, sequence number, or serial number.
[0104] Taking the corresponding index of the data group as 0-5000 as an example, the segmentation strategy corresponding to the data group may be as shown in Table 1. It should be understood that the segmentation strategy shown in Table 1 is only an example, and there may be other segmentation strategies in actual operation, which is not limited in this application.
[0105] Table 1:
[0106] Sub-data group First Index Tail Index Computing resources The first sub-data set 0 500 CPU1 Second sub-data set 501 1600 CPU2 The third sub-data group 1601 3500 DVPP The fourth sub-data group 3501 5000 AI core
[0107] In actual operation, the data group splitting strategy can be determined based on factors such as the current load conditions and processing delays of each computing resource on the computing platform. The present application does not limit the specific method for determining the splitting strategy, as long as it can ensure that the sum of the delay and the combined delay of each sub-data group when processed in parallel based on the corresponding computing resources meets the expected processing delay.
[0108] In a possible implementation, a greedy algorithm may be used to determine the segmentation strategy. Specifically, first, assume that the indexes corresponding to the data groups are 0-L.
[0109] Step 1: Determine the difference between the expected delay and the combined delay, and determine the head and tail indexes (for example, 0 and L1) corresponding to the first sub-data group and computing resource 1 based on the delay difference, wherein the delay of processing the first sub-data group based on computing resource 1 satisfies the delay difference.
[0110] Step 2: If L-L1>0, determine the head and tail indexes (for example, L1+1 and L2, where L2 is less than L) and computing resource 2 corresponding to the second sub-data group according to the above-mentioned delay difference, wherein the delay of processing the second sub-data group based on computing resource 2 satisfies the delay difference.
[0111] Step 3: If L-L2>0, determine the head and tail indexes corresponding to the third sub-data group (for example, L2+1 and L3, where L3 is less than L) and computing resource 3 according to the above-mentioned delay difference, wherein the delay of processing the third sub-data group based on computing resource 3 satisfies the delay difference.
[0112] This process is repeated until L-Ln=0, and then the first and last indexes and the corresponding computing resources in each step are counted to obtain the segmentation strategy.
[0113] In another possible implementation, the splitting strategy may be determined according to at least one of the following strategies: determining the splitting strategy according to the computing resources previously used by the first APP; determining the splitting strategy according to the head and tail indexes of the sub-data group obtained by splitting the previous data group of the first APP and the corresponding computing resources; determining the splitting strategy according to the computing resources corresponding to the head index of the sub-data group obtained by splitting the previous data group of the first APP and the actual load of the corresponding computing resources, etc. Determining the splitting strategy based on the above strategies can reduce system resource consumption.
[0114] The above-mentioned previous and prior may refer to the last time or other historical stages.
[0115] The above-mentioned determining the segmentation strategy according to the computing resources previously used by the first APP refers to determining the computing resources in the segmentation strategy according to the computing resources previously (for example, last time) used by the first APP.
[0116] The above-mentioned determining the splitting strategy based on the head and tail indexes of the sub-data group obtained by splitting the previous data group of the first APP and the corresponding computing resources means determining the head and tail indexes of the sub-data group and the corresponding computing resources in the current splitting strategy based on the head and tail indexes of the sub-data group obtained by splitting the previous data group of the first APP (for example, the data group of the last splitting execution) and the corresponding computing resources.
[0117] The above-mentioned determining the splitting strategy based on the computing resources corresponding to the first index of the sub-data group obtained by splitting the previous data group of the first APP and the actual load of the corresponding computing resources means determining the first and last indexes of the sub-data group and the corresponding computing resources in the current splitting strategy based on the computing resources corresponding to the first index of the sub-data group obtained by splitting the previous data group of the first APP (for example, the data group of the last splitting) and the actual load of the corresponding computing resources.
[0118] Specifically, we can first determine that one of the computing resources in the current splitting strategy is computing resource 1 based on the computing resource 1 corresponding to the first index a of the sub-data group 1 obtained in the previous data group, and then combine the current actual load of the computing resource 1 to supplement the index after the first index a and correspond to computing resource 1. The strategy is explained in detail below in combination with situation 1 and situation 2.
[0119] Case 1: When the current load rate of the computing resource 1 is relatively large, an appropriate number of indexes (for example, indexes a to i) are added after the first index a to correspond to the computing resource 1 according to the current load situation, and the remaining indexes of the sub-data group 1 (for example, i+1 to b, where b is the tail index of the sub-data group 1 obtained in the previous data group) are corresponded to other computing resources (for example, computing resource 2).
[0120] Case 2: When the current load rate of the computing resource 1 is relatively low, additional indexes (e.g., indexes a to b and c to d) are added after the first index a according to the current load situation to correspond to the computing resource 1. Among them, b is the tail index of the sub-data group 1 obtained from the previous data group, and c to d can be the indexes of the sub-data group 2 obtained from the previous data group. It should be understood that when adding indexes c to d, the first and last indexes with the smallest scale in the segmentation strategy of the previous data group can be added first to reduce the number of computing resources used and reduce resource consumption.
[0121] Optionally, the above method 300 can be applied to a computing platform, which may include a cache, in which a segmentation record corresponding to the first APP may be stored, when the segmentation record includes a correspondence between a first head and tail index and a third computing resource. The first data group can be directly segmented according to the first head and tail index to obtain a first sub-data group corresponding to the first head and tail index; and then the first sub-data group is processed based on the third computing resource. The computing platform includes a mobile computing platform or a cloud computing platform. The mobile computing platform includes a vehicle-mounted computing platform or a computing platform mounted on an intelligent robot. The cloud computing platform can be a computing platform in a control room in an unmanned operation scenario.
[0122] This application uses cache to store the historical segmentation records corresponding to the APP, so that when the current data group is segmented, the historical segmentation records can be obtained from the cache first, and then the segmentation method and corresponding computing resources of the current data group can be determined based on the acquired segmentation records. On the one hand, compared with obtaining segmentation records from memory, obtaining segmentation records from the cache can increase the acquisition speed, thereby improving the efficiency of data processing; on the other hand, obtaining segmentation records from the cache can improve the cache hit rate, thereby improving the overall system throughput and resource utilization.
[0123] Optionally, after the first data group is segmented, the multiple sub-data groups obtained by the segmentation can be cached so that the sub-data groups can be directly called from the cache during subsequent scheduling, which can improve the calling efficiency of the sub-data groups compared to calling the sub-data groups from the memory.
[0124] It should be understood that the operator set is deployed on the computing resources as a computing logic and plays an important role in data processing. Therefore, the segmentation strategy can also include the operator corresponding to the sub-data group, so that the sub-data group can be processed based on the corresponding operator and computing resources.
[0125] S330, processing the plurality of sub-data groups in parallel based on the plurality of second computing resources to obtain a plurality of sub-processing results.
[0126] When parallel processing is used, each sub-data group is processed synchronously rather than in a serial manner, thereby reducing data processing delay.
[0127] Before executing step S330, multiple sub-data groups may be respectively scheduled to multiple second computing resources based on a deterministic scheduler to ensure the latency determinism of data processing.
[0128] Among them, a deterministic scheduler refers to a scheduler that can ensure that the system completes a task within a certain time. In other words, the deterministic scheduler can ensure that the processing delay of each task is certain.
[0129] Before step S330 is executed (or after the segmentation strategy is determined), at least one of the plurality of second computing resources may be marked as a dedicated computing resource, which can only be scheduled by a deterministic scheduler. In other words, the dedicated computing resource can only be used to process the sub-data group scheduled by the deterministic scheduler, thereby preventing the computing resource from being occupied by other services and ensuring the determinism of data processing latency.
[0130] The above-mentioned multiple second computing resources may include: at least one of: SVE, CPU, GPU, DVPP, ISP, AI core, vector core, etc.
[0131] The plurality of second computing resources may include the first computing resource, or may not include the first computing resource.
[0132] S340, combining multiple sub-processing results to obtain a processing result of the first data group.
[0133] It should be noted that during the data processing process, the sum of the delay of parallel processing and the delay of merging multiple processing results needs to meet the expected processing delay.
[0134] When the expected processing delay is a preset value, the sum of the delay of the parallel processing and the delay of merging multiple processing results satisfies the expected processing delay, which can be understood as the sum of the delay of the parallel processing and the delay of merging multiple processing results is equal to the preset value.
[0135] When the expected processing delay is within a preset range, the sum of the delay of the parallel processing and the delay of merging multiple processing results satisfies the expected processing delay, which can be understood as the sum of the delay of the parallel processing and the delay of merging multiple processing results falls within the preset range.
[0136] The processing delay of each sub-data group in the multiple sub-data groups includes a waiting delay before the corresponding computing resource performs a computing operation based on the sub-data group and a computing delay for the computing resource to perform the computing operation. The waiting delay can be determined according to the load of the corresponding computing resource. For example, when the load rate of the computing resource is low, the waiting delay is small or does not exist; when the load rate of the computing resource is high, the waiting delay is long.
[0137] Since the multiple sub-data groups are processed in parallel, the delay of the parallel processing of the multiple sub-data groups can be determined according to the maximum processing delay among the processing delays corresponding to the multiple sub-data groups.
[0138] The delay of merging the multiple processing results mentioned above may be understood as the delay generated when performing the merging operation on the multiple processing results.
[0139] Based on the solution of the present application, when processing a data group, the estimated processing delay of the data group when processed based on the computing resources specified by the current APP can be determined first. When the estimated processing delay is greater than the expected processing delay, the data group is divided into multiple sub-data groups, and multiple computing resources are re-assigned to process the divided sub-data groups in parallel, thereby effectively reducing the data processing delay and solving the problem of uncertain data processing delay in current technology.
[0140] Optionally, when the estimated processing delay is less than the expected processing delay, the first data group can be processed based on the first computing resource, and the processing result can be returned after waiting for a set time after processing the first data group, wherein the set time is the difference between the expected processing delay and the estimated processing delay, so that the processing delay of the data meets the expected processing delay, thereby solving the problem of uncertain data processing delay in current technology.
[0141] Optionally, when the estimated processing delay meets the expected processing delay, the first data group can be directly processed based on the first computing resource, and the processing result can be directly returned after processing the first data group.
[0142] Optionally, the present application can also record and analyze key information generated during the data processing process, and adjust the relevant configuration of the data processing according to the analysis results, so that the data processing capability is closer to the actual business and achieves a better deterministic effect.
[0143] Exemplarily, the key information may include at least one of the estimated processing delay, actual processing delay, expected processing delay, segmentation strategy, usage of corresponding computing resources, computing merging operation records, and related information of the scheduler scheduling queue.
[0144] Exemplarily, the relevant configuration may include at least one of a threshold of expected processing delay, optional computing resources, a computing resource selection strategy, a segmentation strategy update cycle, etc. Among them, the optional computing resources refer to available computing resources; the computing resource selection strategy may include a computing resource usage order strategy.
[0145] As an example, Figure 6 is a flow chart of another data processing method provided by an embodiment of the present application. When it is determined that the estimated processing delay of a data group (such as the first data group mentioned above) is greater than the expected processing delay, it can be performed according to Figure 6 The method 600 shown processes the data set. Figure 6 As shown, the method 600 includes steps S610 to S660, which are described below.
[0146] S610, determining a data group segmentation strategy.
[0147] S620: Mark multiple computing resources in the segmentation strategy (such as the multiple second computing resources mentioned above) as dedicated computing resources.
[0148] S630, dividing the data group into multiple sub-data groups.
[0149] The relevant contents involved in steps S610 to S630 can be found in the relevant introduction of the above step S320, which will not be repeated here.
[0150] S640: Based on the deterministic scheduler, the plurality of sub-data groups are respectively called to the plurality of computing resources.
[0151] S650, performing parallel processing on multiple sub-data groups based on multiple computing resources to obtain multiple sub-computing results.
[0152] The relevant contents involved in steps S640 and S650 can be found in the relevant introduction of the above step S330, which will not be repeated here.
[0153] S660, combining multiple sub-calculation results to obtain a calculation result for the data group.
[0154] For details, please refer to the relevant introduction in the above step S340, which will not be repeated here.
[0155] Based on method 600, when it is determined that the estimated processing delay of a data group is greater than the expected processing delay, a splitting strategy can be determined first, and the computing resources in the splitting strategy can be marked as dedicated computing resources. The data group is then split according to the splitting strategy to obtain multiple sub-data groups. After the splitting, the split sub-data groups are scheduled to the dedicated computing resources for processing based on a deterministic scheduler, thereby ensuring that the processing delay of the data is determined.
[0156] As an example, Figure 7 FIG. 1 is a flow chart of another data processing method provided in an embodiment of the present application. Figure 7 As shown, the method 700 includes steps S710 to S790, which are described below. It should be understood that Figure 7 This is only an example, and in actual operation, it can also be executed in other orders, and this application does not limit this.
[0157] S710, determining an expected processing delay and an estimated processing delay of a data group (such as the first data group mentioned above).
[0158] The specific determination method can refer to the relevant introduction in the above steps S310 and S320, which will not be repeated here.
[0159] S720, determine the relationship between the estimated processing delay and the expected processing delay.
[0160] When the estimated processing delay is greater than the expected processing delay, continue to execute steps S730 to S750; when the estimated processing delay is less than the expected processing delay, continue to execute steps S760 and S770; when the estimated processing delay is equal to the expected processing delay, continue to execute step S780.
[0161] S730, dividing the data group into multiple sub-data groups.
[0162] S740, performing parallel processing on multiple sub-data groups based on multiple computing resources (such as the multiple second computing resources mentioned above) to obtain multiple sub-processing results.
[0163] S750, combining multiple sub-processing results to obtain a processing result for the data group.
[0164] After obtaining the processing result of the data group, execute S790 to return the processing result to the APP corresponding to the data group.
[0165] For the relevant contents of steps S730 to S750, please refer to the introduction of steps S320 to S340 above, which will not be repeated here.
[0166] S760: Process the data group based on the computing resources (such as the first computing resources mentioned above) specified by the APP corresponding to the data group.
[0167] S770, wait for a set time, and then execute step S790 to return the processing result to the APP corresponding to the data group. The set time is the difference between the expected processing delay and the estimated processing delay.
[0168] S780, process the data group based on the computing resources specified by the APP corresponding to the data group.
[0169] After obtaining the processing result, execute step S790 to return the processing result to the APP corresponding to the data group.
[0170] S790, returning the processing result to the APP corresponding to the data group.
[0171] Based on method 700, in actual operation, different data processing schemes can be determined according to the relationship between the estimated processing delay and the expected processing delay of the data group, so that the data processing delay can be guaranteed to be certain in different situations.
[0172] In the various embodiments of the present application, unless otherwise specified or logically conflicting, the terms and / or descriptions between the various embodiments are consistent and can be referenced to each other, and the technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.
[0173] Combined with the above Figures 1 to 7 The method provided in the embodiment of the present application is described in detail. Figure 8 and Fig. 9 The device provided in the embodiment of the present application is described in detail. It should be understood that the description of the device embodiment corresponds to the description of the method embodiment, so the contents not described in detail can be referred to the method embodiment above, and for the sake of brevity, they will not be repeated here.
[0174] Figure 8It is a structural diagram of a data processing device provided in an embodiment of the present application. The device 800 includes a processing unit 810 and multiple computing resources 820. Among them, the processing unit 810 is used to: determine the estimated processing delay of the first data group, the first data group corresponds to the first APP, and the first application specifies the first computing resource to process the first data group; when the estimated processing delay is greater than the expected processing delay, the first data group is divided into multiple sub-data groups; based on multiple second computing resources, the multiple sub-data groups are processed in parallel to obtain multiple sub-processing results; and, the multiple sub-processing results are merged to obtain the processing result of the first data group, and the sum of the delay of the parallel processing and the delay of merging the multiple processing results meets the expected processing delay. The first computing resource and the second computing resource belong to the multiple computing resources 820.
[0175] When applied to an intelligent driving scenario, the first data group may include data that needs to be processed in the intelligent driving scenario.
[0176] Optionally, the processing unit 810 can also be used to determine a splitting strategy corresponding to the first data group, the splitting strategy including the head and tail indexes of each sub-data group in the multiple sub-data groups and the second computing resources corresponding to each sub-data group; and split the first data group according to the splitting strategy.
[0177] Optionally, the processing unit 810 may also be configured to respectively schedule the multiple sub-data groups to the multiple second computing resources based on a deterministic scheduler.
[0178] Optionally, the processing unit 810 may also be configured to mark at least one of the plurality of second computing resources as a dedicated computing resource, wherein the dedicated computing resource can only be scheduled by the deterministic scheduler.
[0179] Optionally, the processing unit 810 can also be used to determine the splitting strategy according to at least one of the following strategies: determine the splitting strategy according to the computing resources previously used by the first APP; determine the splitting strategy according to the head and tail indexes of the sub-data group obtained by splitting the previous data group of the first APP and the corresponding computing resources; and determine the splitting strategy according to the computing resources corresponding to the head index of the sub-data group obtained by splitting the previous data group of the first APP and the actual load of the corresponding computing resources.
[0180] Optionally, the device 800 can be applied to a computing platform, which can include a cache, in which a segmentation record corresponding to the first APP is stored, and the segmentation record includes a correspondence between a first head and tail index and a third computing resource. Based on the cache, the processing unit 810 can also be used to segment the first data group according to the first head and tail indexes to obtain a first sub-data group corresponding to the first head and tail indexes; and process the first sub-data group based on the third computing resource.
[0181] The computing platform may include a mobile computing platform or a cloud computing platform. The mobile computing platform may include a vehicle-mounted computing platform or a computing platform mounted on an intelligent robot, and the vehicle-mounted computing platform may be, for example, a vehicle computer, a vehicle-mounted chip, a vehicle-mounted processor, and the aforementioned computing platform 120 or computing platform 200. The cloud computing platform may be a server or a computing platform in a control room in an unmanned operation scenario.
[0182] Optionally, the processing unit 810 can also be used to record key information generated during the data processing process, which key information includes at least one of the estimated processing delay, actual processing delay, expected processing delay, splitting strategy, usage of corresponding computing resources, computing merging operation records, and related information of the scheduler scheduling queue; analyze the key information and adjust the relevant configuration of data processing according to the analysis results, which relevant configuration includes at least one of the threshold of expected processing delay, optional computing resources, computing resource selection strategy, splitting strategy update cycle, etc.
[0183] Optionally, the processing unit 810 can also be used to process the first data group based on the first computing resource when the estimated processing delay is less than the expected processing delay, and return the processing result after waiting for a set time after processing the first data group, where the set time is the difference between the expected processing delay and the estimated processing delay.
[0184] Optionally, the expected processing delay may be determined according to multiple historical processing delays corresponding to the first APP.
[0185] Optionally, the expected processing delay may satisfy the interval: [T-σ, T+σ], where T is an average value of the multiple historical processing delays, and σ is a standard deviation of the multiple historical processing delays.
[0186] Optionally, the plurality of second computing resources may include at least one of: SVE, CPU, GPU, DVPP, ISP, AI core, vector core, etc.
[0187] Fig. 99 is a schematic block diagram of the hardware structure of the data processing device provided in the embodiment of the present application. Optionally, the device 900 may be a computer device. The device 900 includes a memory 910, a processor 920, and a communication interface 930. The memory 910, the processor 920, and the communication interface 930 may be connected to each other through a bus.
[0188] The memory 910 may be a read-only memory (ROM), a static storage device, a dynamic storage device or a random access memory (RAM). The memory 910 may store a program. When the program stored in the memory 910 is executed by the processor 920, the processor 920 is used to execute each step in the method 300, 600 or 700 of the embodiment of the present application.
[0189] The processor 920 may be a CPU, a microprocessor, an ASIC, a GPU or one or more integrated circuits, for executing relevant programs to implement the various steps in the method 300, 600 or 700 of the method embodiment of the present application.
[0190] The processor 920 may also be an integrated circuit chip with signal processing capability. In the implementation process, each step in the method 300, 600 or 700 of the present application may be completed by an integrated logic circuit of hardware in the processor 920 or by instructions in the form of software.
[0191] The communication interface 930 uses a transceiver device such as, but not limited to, a transceiver to implement communication between the apparatus 900 and other devices or a communication network.
[0192] The embodiment of the present application also provides a computer-readable storage medium, including instructions, which, when executed on a computer, enable the computer to execute each step in the above method 300, 600 or 700.
[0193] The embodiment of the present application also provides a computer program product, which includes instructions. When the instructions are executed on a computer, each step in the above method 300, 600 or 700 is executed.
[0194] An embodiment of the present application also provides a computing device, including: at least one processor and a memory, wherein the at least one processor is coupled to the memory and is used to read and execute instructions in the memory to perform each step in the above-mentioned method 300, 600 or 700.
[0195] An embodiment of the present application also provides a chip, which includes a processor and a data interface. The processor reads instructions stored in a memory through the data interface to execute each step of the above method 300, 600 or 700, or the chip executes each step of the above method 300, 600 or 700 through a hardware circuit.
[0196] An embodiment of the present application also provides an intelligent driving device, including the above-mentioned device 800 and / or device 900, and the above-mentioned device 800 and / or device 900 can be applied to a mobile computing platform.
[0197] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0198] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0199] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0200] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0201] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0202] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
Claims
1. A data processing method, characterized in that: include: Determining an estimated processing latency for a first data group, the first data group corresponding to a first application, the first application specifying a first computing resource to process the first data group; When the estimated processing delay is greater than the expected processing delay, dividing the first data group into a plurality of sub-data groups; Processing the plurality of sub-data groups in parallel based on the plurality of second computing resources to obtain a plurality of sub-processing results; The multiple sub-processing results are combined to obtain a processing result of the first data group, and the sum of the delay of the parallel processing and the delay of combining the multiple processing results meets the expected processing delay.
2. The method according to claim 1, characterized in that Before segmenting the first data group, the method further includes: Determine a segmentation strategy corresponding to the first data group, wherein the segmentation strategy includes a head and tail index of each sub-data group in the plurality of sub-data groups and a second computing resource corresponding to each sub-data group; The first data group is segmented according to the segmentation strategy.
3. The method according to claim 1 or 2, characterized in that: Before the processing the plurality of sub-data groups in parallel based on the plurality of second computing resources, the method further comprises: The plurality of sub-data groups are respectively scheduled to the plurality of second computing resources based on a deterministic scheduler.
4. The method according to claim 3, characterized in that: The method further comprises: At least one of the plurality of second computing resources is marked as a dedicated computing resource, wherein the dedicated computing resource can only be scheduled by the deterministic scheduler.
5. The method according to claim 2, characterized in that: The segmentation strategy is determined according to at least one of the following strategies: Determining the segmentation strategy according to the computing resources previously used by the first application program; Determining the segmentation strategy according to the head and tail indexes of the sub-data groups obtained by segmenting the previous data group of the first application program and the corresponding computing resources; The splitting strategy is determined according to the computing resources corresponding to the first index of the sub-data group obtained by splitting the previous data group of the first application and the actual load conditions of the corresponding computing resources.
6. The method according to any one of claims 1 to 5, characterized in that The method is applied to a computing platform, the computing platform includes a cache, the cache stores a segmentation record corresponding to the first application, the segmentation record includes a correspondence between a first head and tail index and a third computing resource, and the method includes: Splitting the first data group according to the first head and tail indexes to obtain a first sub-data group corresponding to the first head and tail indexes; processing the first sub-data group based on the third computing resource; The computing platform includes a mobile computing platform or a cloud computing platform.
7. The method according to any one of claims 1 to 6, characterized in that The method further comprises: Record key information generated during data processing, the key information including at least one of estimated processing delay, actual processing delay, expected processing delay, segmentation strategy, usage of corresponding computing resources, computing merging operation records, and related information of scheduler scheduling queues; Analyze the key information, and adjust relevant configurations of data processing according to the analysis results, wherein the relevant configurations include at least one of a threshold of expected processing delay, optional computing resources, a selection strategy for computing resources, and a segmentation strategy update cycle.
8. The method according to any one of claims 1 to 7, characterized in that The method further comprises: When the estimated processing delay is less than the expected processing delay, the first data group is processed based on the first computing resource, and a processing result is returned after waiting for a set time after processing the first data group, where the set time is the difference between the expected processing delay and the estimated processing delay.
9. The method according to claim 8, characterized in that The expected processing delay is determined according to a plurality of historical processing delays corresponding to the first application.
10. The method according to claim 9, characterized in that The expected processing delay satisfies the interval: [T-σ, T+σ], where T is the average value of the multiple historical processing delays, and σ is the standard deviation of the multiple historical processing delays.
11. The method according to any one of claims 1 to 10, characterized in that: The plurality of second computing resources include: at least one of a scalable vector extension SVE, a central processing unit CPU, a graphics processing unit GPU, a digital vision preprocessor DVPP, an image processor ISP, an artificial intelligence AI core, and a vector core; The first data group includes data that needs to be processed in an intelligent driving scenario.
12. A data processing device, characterized in that: The device comprises a processing unit and a plurality of computing resources, The processing unit is used to determine an estimated processing delay of a first data group, the first data group corresponds to a first application, and the first application specifies a first computing resource to process the first data group; when the estimated processing delay is greater than the expected processing delay, split the first data group to obtain a plurality of sub-data groups; and process the plurality of sub-data groups in parallel based on a plurality of second computing resources to obtain a plurality of sub-processing results; Furthermore, the processing result of the first data group is obtained by merging the multiple sub-processing results, the sum of the delay of the parallel processing and the delay of merging the multiple processing results meets the expected processing delay, and the first computing resource and the second computing resource belong to the multiple computing resources.
13. The device according to claim 12, characterized in that The processing unit is further configured to: Determine a segmentation strategy corresponding to the first data group, the segmentation strategy including a head and tail index of each sub-data group in the multiple sub-data groups and a second computing resource corresponding to each sub-data group; and segment the first data group according to the segmentation strategy.
14. The device according to claim 12 or 13, characterized in that The processing unit is further configured to: The plurality of sub-data groups are respectively scheduled to the plurality of second computing resources based on a deterministic scheduler.
15. The device according to claim 14, characterized in that The processing unit is further configured to: At least one of the plurality of second computing resources is marked as a dedicated computing resource, wherein the dedicated computing resource can only be scheduled by the deterministic scheduler.
16. The device according to claim 13, characterized in that The processing unit is further configured to: The splitting strategy is determined according to at least one of the following strategies: determining the splitting strategy based on the computing resources previously used by the first application; determining the splitting strategy based on the head and tail indexes of the sub-data groups obtained by splitting the previous data group of the first application and the corresponding computing resources; determining the splitting strategy based on the computing resources corresponding to the head index of the sub-data group obtained by splitting the previous data group of the first application and the actual load of the corresponding computing resources.
17. The device according to any one of claims 12 to 16, characterized in that The device is applied to a computing platform, the computing platform includes a cache, the cache stores a segmentation record corresponding to the first application, the segmentation record includes a correspondence between a first head and tail index and a third computing resource, and the processing unit is further used to: The first data group is divided according to the first head and tail indexes to obtain a first sub-data group corresponding to the first head and tail indexes; and the first sub-data group is processed based on the third computing resource.
18. The device according to any one of claims 12 to 17, characterized in that The processing unit is further configured to: Record key information generated during data processing, the key information including at least one of estimated processing delay, actual processing delay, expected processing delay, segmentation strategy, usage of corresponding computing resources, computing merging operation records, and related information of scheduler scheduling queues; Analyze the key information, and adjust relevant configurations of data processing according to the analysis results, wherein the relevant configurations include at least one of a threshold of expected processing delay, optional computing resources, a selection strategy for computing resources, and a segmentation strategy update cycle.
19. The device according to any one of claims 12 to 18, characterized in that The processing unit is further configured to: When the estimated processing delay is less than the expected processing delay, the first data group is processed based on the first computing resource, and a processing result is returned after waiting for a set time after processing the first data group, where the set time is the difference between the expected processing delay and the estimated processing delay.
20. The device according to claim 19, characterized in that The expected processing delay is determined according to a plurality of historical processing delays corresponding to the first application.
21. The device according to claim 20, characterized in that The expected processing delay satisfies the interval: [T-σ, T+σ], where T is the average value of the multiple historical processing delays, and σ is the standard deviation of the multiple historical processing delays.
22. The device according to any one of claims 12 to 21, characterized in that: The plurality of second computing resources include: at least one of a scalable vector extension SVE, a central processing unit CPU, a graphics processing unit GPU, a digital vision preprocessor DVPP, an image processor ISP, an artificial intelligence AI core, and a vector core; The first data group includes data that needs to be processed in an intelligent driving scenario.
23. A data processing device, characterized in that: It includes an input / output interface, a processor and a memory, wherein the processor is used to control the input / output interface to send and receive signals or information, the memory is used to store a computer program, and the processor is used to call and run the computer program from the memory, so that the device runs the method as described in any one of claims 1 to 11.
24. An intelligent driving device, characterized in that: The method comprises the apparatus as claimed in any one of claims 12 to 23, wherein the apparatus is applied to a mobile computing platform.