Data processing method and apparatus, and intelligent driving device
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 data processing delay caused by changes in the load rate of computing resources is solved, and more efficient and deterministic data processing.
Patent Information
- Application Number
- PCT/CN2024/098589
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-14
- Filing Date
- 2024-06-12
- Publication Date
- 2024-12-19
AI Technical Summary
The problem of uncertain delay caused by changes in the calculation resource load rate of applications in the intelligent driving vehicle computing platform when processing data.
By determining the estimated processing delay of the data group, if it is greater than the expected delay, it is divided into multiple sub-data groups, and the results are processed in parallel and merged to ensure that the sum of the parallel processing and merge delays meets the expected delay, and determinism is adopted Schedulers and dedicated computing resources to reduce latency uncertainty.
It effectively reduces the uncertainty of data processing delay, improves processing efficiency and resource utilization, and ensures the certainty of data processing.
Smart Images

Figure CN2024098589_19122024_PF_FP_ABST
Abstract
Description
Data processing method, device and intelligent driving equipment
[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on June 14, 2023, with application number 202310706247.4, and priority to the Chinese patent application entitled “Data processing method, device and intelligent driving equipment”, all contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of intelligent driving technology, and more specifically, to a data processing method, apparatus, and intelligent driving device. Background Art
[0003] In current intelligent driving in-vehicle computing platforms, applications (APPs) primarily access computing resources by inputting parameters when calling an application programming interface (API). In other words, once an application specifies a specific computing resource, the application then processes related business data based on that resource.
[0004] However, in practice, adjustments to intelligent driving functions cause the load rate of the computing resources corresponding to the application to fluctuate constantly. This, in turn, results in varying latency when the application processes data due to the varying resource load rate. This leads to latency uncertainty during data processing. For example, when the load rate of the computing resources corresponding to the application is 30%, the data processing latency may be 15ms; when the load rate is 80%, the data processing latency may be 35ms.
[0005] Therefore, how to solve the problem of uncertain data processing delay is an issue that needs to be explored urgently.
[0006] Summary of the Invention
[0007] The present application provides a data processing method, apparatus, and intelligent driving device that can solve the problem of uncertain data processing delay existing in current technologies.
[0008] In a first aspect, a data processing method is provided, including: determining an estimated processing delay of 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, and the sum of the parallel processing delay and the delay of merging the multiple processing results meets the expected processing delay.
[0009] The estimated processing latency for the first data group is the latency required for the first computing resource, designated by the first app, to process the first data group under the current load. It should be understood that when the current load of the first computing resource is high, the first data group cannot be processed immediately and a waiting period is required, resulting in a longer estimated processing latency. When the current load of the first computing resource is low, the first data group can be processed immediately, resulting in a shorter estimated processing latency.
[0010] The plurality of second computing resources can process the plurality of sub-data groups in parallel. It should be understood that, compared with serial data processing, parallel data processing can reduce data processing delay.
[0011] The plurality of second computing resources may or may not include the first computing resource.
[0012] 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 during which the computing resource performs the computing operation. The waiting delay can be determined based on 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 non-existent; when the load rate of the computing resource is high, the waiting delay is long.
[0013] 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.
[0014] The delay of merging multiple processing results mentioned above can be understood as the delay generated when performing a merging operation on the multiple processing results.
[0015] The above-mentioned expected processing delay may be a preset value or a preset range.
[0016] When the expected processing delay is a preset value, the sum of the parallel processing delay and the delay of merging multiple processing results satisfies the expected processing delay, which can be understood as the sum of the parallel processing delay and the delay of merging multiple processing results is equal to the preset value.
[0017] When the expected processing delay is within a preset range, the sum of the parallel processing delay and the delay of merging multiple processing results meeting the expected processing delay can be understood as the sum of the parallel processing delay and the delay of merging multiple processing results falling within the preset range.
[0018] When processing a data group based on the solution of the present application, 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.
[0019] 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 the second computing resources corresponding to each sub-data group; and splitting the first data group according to the splitting strategy.
[0020] The first and last 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.
[0021] Based on the solution of the present application, before splitting a data group, the splitting method of the data group and the computing resources corresponding to each sub-data group can be determined to ensure the deterministic execution of the splitting operation and data processing.
[0022] The present application does not limit the method for determining the splitting strategy, as long as it can ensure that the sum of the delay and the merging delay of each sub-data group when processed in parallel based on the corresponding computing resources meets the expected processing delay.
[0023] 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.
[0024] 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.
[0025] 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 delay.
[0026] 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.
[0027] In other words, dedicated computing resources can only be used to process the sub-data groups scheduled by the deterministic scheduler.
[0028] Based on the solution of this 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 the deterministic scheduler to prevent the computing resources from being occupied by other businesses and ensure the determinism of data processing delay.
[0029] 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.
[0030] 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.
[0031] The above-mentioned previous and prior may refer to the last time or other historical stages.
[0032] The above-mentioned determining the partitioning strategy based on the computing resources previously used by the first APP refers to determining the computing resources in the partitioning strategy based on the computing resources previously (for example, last time) used by the first APP.
[0033] The above-mentioned determination of 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 refers to 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.
[0034] The above-mentioned determination of 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 situation of the corresponding computing resources refers to determining the first and last indexes and corresponding computing resources of the sub-data group 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 situation of the corresponding computing resources.
[0035] 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 add an index after the first index a and correspond to computing resource 1. The strategy is explained in detail below in combination with case 1 and case 2.
[0036] Case 1: When the current load rate of the computing resource 1 is large, an appropriate number of indexes (for example, indexes a to i) are added after the first index a according to the current load situation to correspond to the computing resource 1, 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).
[0037] Case 2: When the current load rate of computing resource 1 is low, additional indices (e.g., indices a through b and c through d) are added after the first index a to correspond to computing resource 1 based on the current load. Here, b is the tail index of sub-data group 1 obtained from the previous data group, and c through d are the indices of sub-data group 2 obtained from the previous data group. It should be understood that when adding indices c through d, the smallest first and last indices in the previous data group's partitioning strategy can be prioritized to reduce the number of computing resources used and lower resource consumption.
[0038] In conjunction with the first aspect, in certain implementations of the first aspect, the method is applied to a computing platform, the computing platform including a cache, the cache storing a segmentation record corresponding to the first APP, the segmentation record including a correspondence between a first head and tail index and a third computing resource, the method comprising: segmenting 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 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.
[0039] This application uses a cache to store the historical segmentation records corresponding to the APP, so that when the current data group is segmented, it can first obtain the historical segmentation records from the cache, and then determine the segmentation method and corresponding computing resources of the current data group based on the obtained segmentation records. On the one hand, compared with obtaining segmentation records from memory, obtaining segmentation records from the cache can increase the acquisition speed and thus improve the efficiency of data processing; on the other hand, obtaining segmentation records from the cache can increase the cache hit rate, thereby improving the overall system throughput and resource utilization.
[0040] In combination with the first aspect, in certain implementations of the first aspect, the method further includes: recording key information generated during data processing, 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 merge operation records, and related information of the scheduler scheduling queue; analyzing the key information, and adjusting the relevant configuration of data processing based on the analysis results, the relevant configuration including at least one of the threshold of expected processing delay, optional computing resources, computing resource selection strategy, and splitting strategy update cycle.
[0041] The optional computing resources refer to available computing resources; the computing resource selection strategy may include a computing resource usage sequence strategy.
[0042] 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 effects.
[0043] In combination with the first aspect, in certain implementations of the first aspect, the method further 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, where the set time is the difference between the expected processing delay and the estimated processing delay.
[0044] Based on the solution of this 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 results can be returned after waiting for a set time after processing, so that the data processing delay meets the expected processing delay, solving the problem of uncertain data processing delay in current technology.
[0045] In combination with the first aspect, in certain implementations of the first aspect, the expected processing delay is determined based on multiple historical processing delays corresponding to the first APP.
[0046] 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.
[0047] Alternatively, 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.
[0048] In combination with the first aspect, in some 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.
[0049] 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 signal 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.
[0050] In a second aspect, a data processing device is provided, which includes a processing unit and multiple computing resources, the processing unit being used to determine an estimated processing delay of a first data group, the first data group corresponding to a first APP, and 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 multiple sub-data groups; processing the multiple sub-data groups in parallel based on multiple second computing resources to obtain multiple sub-processing results; and 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, and the first computing resource and the second computing resource belong to the multiple computing resources.
[0051] 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.
[0052] In combination with the second aspect, in certain implementations of the second aspect, the processing unit is further configured to, based on a deterministic scheduler, schedule the multiple sub-data groups to the multiple second computing resources respectively.
[0053] 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.
[0054] 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 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.
[0055] In conjunction with the second aspect, in certain implementations of the second aspect, the device is applied to a computing platform, the computing platform including a cache, the cache storing a segmentation record corresponding to the first APP, the segmentation record including a correspondence between a first head and tail index and a third computing resource, the processing unit further configured 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. 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 may be a computing platform in a control room in an unmanned operation scenario.
[0056] 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, 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 merge operation records, and related information of the scheduler scheduling queue; analyze the key information and adjust the relevant configuration of data processing based on the analysis results, which relevant configuration includes at least one of the threshold of expected processing delay, optional computing resources, computing resource selection strategy, and splitting strategy update cycle.
[0057] In combination with the second aspect, in certain implementations of the second aspect, the processing unit is also 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.
[0058] In combination with the second aspect, in certain implementations of the second aspect, the expected processing delay is determined based on multiple historical processing delays corresponding to the first APP.
[0059] In combination with the second aspect, in some 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.
[0060] 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.
[0061] 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 the data processing method in the first aspect or any possible implementation of the first aspect.
[0062] In a fourth aspect, a computer-readable medium is provided, which stores a program code. When the program code is run on a computer, the computer executes the data processing method in the first aspect or any possible implementation of the first aspect.
[0063] In a fifth aspect, a computer program product is provided, comprising instructions. 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.
[0064] 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 configured 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.
[0065] In a seventh aspect, a chip is provided, comprising a circuit for executing the data processing method in the first aspect or any possible implementation of the first aspect.
[0066] 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, which is applied to a mobile computing platform. BRIEF DESCRIPTION OF THE DRAWINGS
[0067] FIG1 is a functional schematic diagram of an intelligent driving device 100 provided in an embodiment of the present application;
[0068] FIG2 is a schematic diagram of a system architecture of a computing platform provided in an embodiment of the present application;
[0069] FIG3 is a flow chart of a data processing method provided in an embodiment of the present application;
[0070] FIG4 is a schematic diagram of multiple historical processing delays corresponding to a first APP provided in an embodiment of the present application;
[0071] FIG5 is a schematic diagram of the principle of segmenting a data group provided in an embodiment of the present application;
[0072] FIG6 is a flow chart of another data processing method provided in an embodiment of the present application;
[0073] FIG7 is a flow chart of another data processing method provided in an embodiment of the present application;
[0074] FIG8 is a schematic structural diagram of a data processing device provided in an embodiment of the present application;
[0075] FIG9 is a schematic block diagram of the hardware structure of the data processing device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0076] In the description of the embodiments of the present application, unless otherwise specified, “ / ” means or, for example, A / B can mean A or B; “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.
[0077] 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, and c can be single or plural.
[0078] In the embodiments of this application, prefixes such as "first" and "second" are used only 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 in the embodiments of this application to distinguish description objects does not constitute a limitation on the described objects. For a 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.
[0079] The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.
[0080] The solution of the present application can be applied to intelligent driving devices, for example, in 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.
[0081] Among them, intelligent driving devices can include road vehicles, water vehicles, air vehicles, industrial equipment, agricultural equipment, or entertainment equipment, etc. For example, the intelligent driving device can be a vehicle, which is a vehicle in the broad sense, and can be a transportation tool (such as a commercial vehicle, passenger car, motorcycle, flying car, train, etc.), an industrial vehicle (such as a forklift, trailer, tractor, etc.), an engineering vehicle (such as an excavator, bulldozer, crane, etc.), agricultural equipment (such as a lawn mower, harvester, etc.), amusement equipment, toy vehicles, etc. This application does not specifically limit the type of vehicle. For another example, the intelligent driving device can be a vehicle such as an airplane or a ship.
[0082] The present application solution can also be applied to servers, smart terminals, smart homes, vehicle-mounted embedded devices, etc. For example, it can be applied to smartphones, desktop computers, laptops, tablet computers, wearable devices, robots, etc.
[0083] 1 , the application scenarios of the present application are exemplarily introduced by taking an intelligent driving device as an example.
[0084] Figure 1 is a functional schematic diagram of an intelligent driving device 100 provided in an embodiment of the present application. It should be understood that Figure 1 and the related description are merely examples, and actual intelligent driving devices may not be limited thereto. As shown in Figure 1 , intelligent driving device 100 may include a perception system 110 and a computing platform 120.
[0085] The perception system 110 may include one or more sensors for sensing information about the environment surrounding the vehicle 100. The perception system 110 may include a positioning system, which may be a global positioning system (GPS), a Beidou system, or another positioning system. For 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).
[0086] The computing platform 120 is used to analyze and process 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. A processor is a circuit with signal processing capabilities. In one implementation, the processor may be a circuit with instruction reading and execution capabilities, 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 relationships of hardware circuits. The logical relationships of the hardware circuits may be fixed or reconfigurable. For example, the processor may be a hardware circuit implemented 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 file 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 can 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 for storing instructions, and some or all of the processors 121 to 12n may call the instructions in the memory to implement corresponding functions.
[0087] 2 is a schematic diagram of a system architecture of a computing platform provided in an embodiment of the present application. As shown in FIG2 , the computing platform 200 may include an application layer 210 , a platform software layer 220 , and a platform hardware layer 230 .
[0088] The application layer 210 may include intelligent driving applications, functional safety applications, and information security applications. Each application may include one or more apps, primarily used to implement intelligent driving control and safety management. Apps corresponding to intelligent driving applications may implement perception, positioning, fusion, decision-making, planning, or control, while apps corresponding to functional safety applications and information security applications may implement error monitoring, security policy management, computing resource monitoring, security correction execution, and security alerts.
[0089] The platform software layer 220 may include an API set and an operator set, etc. An API is a set of definitions, programs, and protocols that enable communication between computer software; an operator is a computational logic that can be run on computing resources.
[0090] The platform hardware layer 230 may include at least one computing resource, for example, 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.
[0091] 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, as the intelligent driving function is adjusted, 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.
[0092] Based on this, the present application proposes a data processing method, which can split business data (i.e., the data group below) 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 below) in parallel, thereby effectively reducing the processing delay of the business data and solving the problem of uncertain data processing delay in current technology.
[0093] Figure 3 is a flow chart illustrating a data processing method provided in an embodiment of the present application. Method 300 can be executed by a processing device, wherein the processing device has processing capabilities. For example, the processing device can be one or more devices with processing capabilities, such as a vehicle computer, an onboard chip, an onboard processor, computing platform 120, computing platform 200, or a server. As shown in Figure 3, method 300 includes steps S310 to S340, which are described in detail below.
[0094] S310, determining an estimated processing delay of a first data group when processed based on a first computing resource.
[0095] The first data group corresponds to a first APP, and the first APP specifies a first computing resource to process the first data group.
[0096] The estimated processing latency for the first data set refers to the latency required for the first computing resource, designated by the first app, to process the first data set under the current load. It should be understood that when the current load of the first computing resource is high, the first data set cannot be processed immediately and a waiting period is required, resulting in a longer estimated processing latency. When the current load of the first computing resource is low, the first data set can be processed immediately, resulting in a shorter estimated processing latency.
[0097] When applied to an intelligent driving scenario, the first data group may include data that needs to be processed in the intelligent driving scenario.
[0098] S320: When the estimated processing delay is greater than the expected processing delay, split the first data group into multiple sub-data groups.
[0099] The expected processing delay may be a preset value or a preset range.
[0100] In one 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 of multiple historical processing delays; for another example, the expected processing delay can be determined based on the average and standard deviation of multiple historical processing delays; for another example, the expected processing delay can be determined based on the minimum of multiple historical processing delays, and so on.
[0101] Exemplarily, FIG4 is a schematic diagram of multiple historical processing delays corresponding to the first APP provided in an embodiment of the present application. As shown in FIG4 , the multiple (for example, n) historical processing delays t corresponding to the first APP change in a curve and are uncertain. Based on the example of FIG4 , when the expected processing delay is determined according to 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 the expected processing delay is determined according to 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.
[0102] 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.
[0103] FIG5 is a schematic diagram of the data group segmentation principle provided by an embodiment of the present application. It should be understood that the segmentation method and corresponding computing resources shown in FIG5 are merely examples and are not limited in this application. As shown in FIG5 , the first data group can be segmented to obtain 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.
[0104] In one possible implementation, before splitting the first data group, a splitting strategy corresponding to the first data group can be determined, and then the first data group can be split according to the splitting strategy to ensure deterministic execution of the splitting operation and data processing. The splitting strategy is used to indicate the splitting method of the data group and the computing resources corresponding to each sub-data group. As an example, the splitting strategy can 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 below).
[0105] The first and last 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.
[0106] Taking the data group corresponding to index 0-5000 as an example, the segmentation strategy corresponding to the data group can be shown in Table 1. It should be understood that the segmentation strategy shown in Table 1 is only an example, and other segmentation strategies may exist in actual operation, and this application does not limit this.
[0107] Table 1:
[0108] In actual operation, the data group splitting strategy can be determined based on factors such as the current load conditions and processing delay of each computing resource on the computing platform. This application does not limit the specific method of determining the splitting strategy, as long as it can ensure that the sum of the delay and the merge delay of each sub-data group when processed in parallel based on the corresponding computing resources meets the expected processing delay.
[0109] 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.
[0110] 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) and computing resource 1 corresponding to the first sub-data group based on the delay difference, wherein the delay of processing the first sub-data group based on computing resource 1 satisfies the delay difference.
[0111] 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 based on the above-mentioned delay difference, wherein the delay of processing the second sub-data group based on computing resource 2 satisfies the delay difference.
[0112] 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 based on the above-mentioned delay difference, wherein the delay of processing the third sub-data group based on computing resource 3 satisfies the delay difference.
[0113] This process is deduced in this way 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.
[0114] In another possible implementation, the splitting strategy can be 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 groups 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 groups 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.
[0115] The above-mentioned previous and prior may refer to the last time or other historical stages.
[0116] The above-mentioned determining the partitioning strategy based on the computing resources previously used by the first APP refers to determining the computing resources in the partitioning strategy based on the computing resources previously (for example, last time) used by the first APP.
[0117] The above-mentioned determination of 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 refers to 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.
[0118] The above-mentioned determination of 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 situation of the corresponding computing resources refers to determining the first and last indexes and corresponding computing resources of the sub-data group 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 situation of the corresponding computing resources.
[0119] 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 add an index after the first index a and correspond to computing resource 1. The strategy is explained in detail below in combination with case 1 and case 2.
[0120] Case 1: When the current load rate of the computing resource 1 is large, an appropriate number of indexes (for example, indexes a to i) are added after the first index a according to the current load situation to correspond to the computing resource 1, 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).
[0121] Case 2: When the current load rate of computing resource 1 is low, additional indices (e.g., indices a to b and c to d) are added after the first index a to correspond to computing resource 1 based on the current load. Here, b is the tail index of sub-data group 1 obtained from the previous data group, and c to d are the indices of sub-data group 2 obtained from the previous data group. It should be understood that when adding indices c to d, the smallest first and last indices in the previous data group's partitioning strategy can be given priority to reduce the number of computing resources used and lower resource consumption.
[0122] 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, and 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 can be 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.
[0123] This application uses a cache to store the historical segmentation records corresponding to the APP, so that when the current data group is segmented, it can first obtain the historical segmentation records from the cache, and then determine the segmentation method and corresponding computing resources of the current data group based on the obtained segmentation records. On the one hand, compared with obtaining segmentation records from memory, obtaining segmentation records from the cache can increase the acquisition speed and thus improve the efficiency of data processing; on the other hand, obtaining segmentation records from the cache can increase the cache hit rate, thereby improving the overall system throughput and resource utilization.
[0124] Optionally, after the first data group is split, the multiple sub-data groups obtained by the split can be cached so that the sub-data groups can be called directly from the cache during subsequent scheduling. Compared with calling the sub-data groups from the memory, the calling efficiency of the sub-data groups can be improved.
[0125] It should be understood that an operator set, as a type of computational logic deployed on computing resources, plays a crucial role in data processing. Therefore, the splitting strategy can also include operators corresponding to the sub-data groups, allowing subsequent processing of the sub-data groups based on the corresponding operators and computing resources.
[0126] S330: Process the plurality of sub-data groups in parallel based on the plurality of second computing resources to obtain a plurality of sub-processing results.
[0127] When parallel processing is used, each sub-data group is processed synchronously rather than serially, thereby reducing data processing delay.
[0128] Before executing step S330, the plurality of sub-data groups may be respectively scheduled to the plurality of second computing resources based on a deterministic scheduler to ensure the latency determinism of data processing.
[0129] 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.
[0130] Before executing step S330 (or after determining the partitioning strategy), at least one of the plurality of second computing resources can be marked as a dedicated computing resource. This dedicated computing resource can only be scheduled by the 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.
[0131] The above-mentioned multiple second computing resources may include: at least one of: SVE, CPU, GPU, DVPP, ISP, AI core, vector core, etc.
[0132] The plurality of second computing resources may or may not include the first computing resource.
[0133] S340: Merge multiple sub-processing results to obtain a processing result of the first data group.
[0134] It should be noted that during data processing, the sum of the delay of parallel processing and the delay of merging multiple processing results needs to meet the expected processing delay.
[0135] When the expected processing delay is a preset value, the sum of the parallel processing delay and the delay of merging multiple processing results satisfies the expected processing delay, which can be understood as the sum of the parallel processing delay and the delay of merging multiple processing results is equal to the preset value.
[0136] When the expected processing delay is within a preset range, the sum of the parallel processing delay and the delay of merging multiple processing results meeting the expected processing delay can be understood as the sum of the parallel processing delay and the delay of merging multiple processing results falling within the preset range.
[0137] 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 during which the computing resource performs the computing operation. The waiting delay can be determined based on 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 non-existent; when the load rate of the computing resource is high, the waiting delay is long.
[0138] 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.
[0139] The delay of merging multiple processing results mentioned above can be understood as the delay generated when performing a merging operation on the multiple processing results.
[0140] When processing a data group based on the solution of the present application, 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.
[0141] 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.
[0142] 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.
[0143] Optionally, this application can also record and analyze key information generated during data processing, and adjust the relevant configuration of data processing based on the analysis results to make the data processing capabilities closer to actual business and achieve better deterministic effects.
[0144] 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.
[0145] For example, the relevant configuration may include at least one of a threshold value for expected processing latency, optional computing resources, a computing resource selection strategy, a slicing strategy update period, etc. The optional computing resources refer to available computing resources; the computing resource selection strategy may include a computing resource usage order strategy.
[0146] As an example, FIG6 is a flow chart illustrating another data processing method provided in an embodiment of the present application. Upon determining that the estimated processing delay of a data group (such as the first data group described above) is greater than the expected processing delay, the data group may be processed according to method 600 shown in FIG6 . As shown in FIG6 , method 600 includes steps S610 to S660, which are described below.
[0147] S610: Determine a data group segmentation strategy.
[0148] S620: Mark multiple computing resources in the segmentation strategy (such as the multiple second computing resources) as dedicated computing resources.
[0149] S630: Split the data group into multiple sub-data groups.
[0150] The relevant contents involved in steps S610 to S630 can be found in the relevant introduction of the above step S320 and will not be repeated here.
[0151] S640: Based on the deterministic scheduler, the plurality of sub-data groups are respectively transferred to the plurality of computing resources.
[0152] S650: Process the multiple sub-data groups in parallel based on the multiple computing resources to obtain multiple sub-computation results.
[0153] The relevant contents involved in steps S640 and S650 can be found in the relevant introduction of the above step S330 and will not be repeated here.
[0154] S660: Merge multiple sub-calculation results to obtain the calculation result of the data group.
[0155] For details, please refer to the relevant introduction in the above step S340, which will not be repeated here.
[0156] 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 can then be split according to the splitting strategy to obtain multiple sub-data groups. After the splitting, the split sub-data groups can be scheduled to dedicated computing resources for processing based on a deterministic scheduler, thereby ensuring that the processing delay of the data is certain.
[0157] As an example, FIG7 is a flow chart of another data processing method provided in an embodiment of the present application. As shown in FIG7 , method 700 includes steps S710 to S790, which are described below. It should be understood that FIG7 is merely an example, and in actual operation, the steps may be performed in other orders, and this application does not limit this.
[0158] S710: Determine the expected processing delay and the estimated processing delay of a data group (such as the first data group mentioned above).
[0159] The specific determination method can be found in the relevant introduction of the above steps S310 and S320, which will not be repeated here.
[0160] S720: Determine the relationship between the estimated processing delay and the expected processing delay.
[0161] 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.
[0162] S730: Divide the data group into multiple sub-data groups.
[0163] S740: Perform parallel processing on the multiple sub-data groups based on multiple computing resources (such as the multiple second computing resources mentioned above) to obtain multiple sub-processing results.
[0164] S750: Merge multiple sub-processing results to obtain a processing result for the data group.
[0165] After obtaining the processing result of the data group, execute S790 to return the processing result to the APP corresponding to the data group.
[0166] For the relevant contents of steps S730 to S750, please refer to the introduction of steps S320 to S340 above and will not be repeated here.
[0167] 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.
[0168] 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.
[0169] S780: Process the data group based on the computing resources specified by the APP corresponding to the data group.
[0170] After obtaining the processing result, execute step S790 to return the processing result to the APP corresponding to the data group.
[0171] S790: Return the processing result to the APP corresponding to the data group.
[0172] 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.
[0173] In the various embodiments of the present application, unless otherwise specified or there is a logical conflict, the terms and / or descriptions between the various embodiments are consistent and can be referenced by each other. The technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.
[0174] The method provided in the embodiments of the present application is described in detail above with reference to Figures 1 to 7 . The apparatus provided in the embodiments of the present application will be described in detail below with reference to Figures 8 and 9 . It should be understood that the description of the apparatus embodiment corresponds to the description of the method embodiment. Therefore, for matters not described in detail, reference can be made to the method embodiment above, and for the sake of brevity, no further description will be given here.
[0175] Figure 8 is a structural diagram of a data processing device provided by an embodiment of the present application. The device 800 includes a processing unit 810 and multiple computing resources 820. 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, split the first data group to obtain multiple sub-data groups; process the multiple sub-data groups in parallel based on multiple second computing resources to obtain multiple sub-processing results; and merge the multiple sub-processing results 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.
[0176] When applied to an intelligent driving scenario, the first data group may include data that needs to be processed in the intelligent driving scenario.
[0177] 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.
[0178] Optionally, the processing unit 810 may also be configured to schedule the multiple sub-data groups to the multiple second computing resources respectively based on a deterministic scheduler.
[0179] Optionally, the processing unit 810 may be further 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.
[0180] Optionally, the processing unit 810 can also be 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; and 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.
[0181] Optionally, the apparatus 800 may be applied to a computing platform, which may include a cache storing a segmentation record corresponding to the first APP, the segmentation record including a correspondence between a first head and tail index and a third computing resource. Based on the cache, the processing unit 810 may also be configured 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.
[0182] The computing platform may include a mobile computing platform or a cloud computing platform. The mobile computing platform may include an on-board computing platform or a computing platform mounted on an intelligent robot. The on-board computing platform may include, for example, a vehicle computer, an on-board chip, an on-board 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.
[0183] 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 based on 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.
[0184] 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.
[0185] Optionally, the expected processing delay may be determined according to multiple historical processing delays corresponding to the first APP.
[0186] 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.
[0187] Optionally, the plurality of second computing resources may include at least one of: SVE, CPU, GPU, DVPP, ISP, AI core, vector core, etc.
[0188] Figure 9 is a schematic block diagram of the hardware structure of a data processing device provided in an embodiment of the present application. Optionally, the device 900 can be a computer device. The device 900 includes a memory 910, a processor 920, and a communication interface 930. The memory 910, processor 920, and communication interface 930 can be connected to each other via a bus.
[0189] 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 programs. When the program stored in the memory 910 is executed by the processor 920, the processor 920 is configured to perform each step in the method 300, 600, or 700 of the embodiments of the present application.
[0190] The processor 920 can be a CPU, a microprocessor, an ASIC, a GPU or one or more integrated circuits to execute relevant programs to implement the various steps in method 300, 600 or 700 of the method embodiment of the present application.
[0191] The processor 920 may also be an integrated circuit chip with signal processing capabilities. In the implementation process, each step in the method 300, 600 or 700 of the present application may be completed by hardware integrated logic circuits in the processor 920 or software instructions.
[0192] 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.
[0193] The embodiment of the present application further provides a computer-readable storage medium, comprising instructions, which, when executed on a computer, enable the computer to execute each step in the above-mentioned method 300, 600 or 700.
[0194] The embodiment of the present application further provides a computer program product, which includes instructions. When the instructions are run on a computer, each step in the above method 300, 600 or 700 is executed.
[0195] An embodiment of the present application also provides a computing device, comprising: at least one processor and a memory, wherein the at least one processor is coupled to the memory and is configured to read and execute instructions in the memory to perform each step in the above-mentioned method 300, 600 or 700.
[0196] 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 and executes each step in the above-mentioned method 300, 600 or 700, or the chip executes each step in the above-mentioned method 300, 600 or 700 through a hardware circuit.
[0197] An embodiment of the present application further 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.
[0198] Those skilled 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 beyond the scope of this application.
[0199] Those skilled in the art will 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.
[0200] In the several embodiments provided in this 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 merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, 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.
[0201] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0202] 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.
[0203] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection 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: a scalable vector extension SVE, a central processing unit CPU, a graphics processing unit GPU, a digital vision At least one of the pre-processing DVPP, image processor ISP, artificial intelligence AI core, and 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, 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.
Citation Information
Patent Citations
System and method for multimedia data parallel processing
CN103064935A
Robot task division-oriented end, side and cloud collaborative computing device
CN112287609A
Computing resource configuration method and device
CN115357339A
SLO-aware artificial intelligence inference scheduler for heterogeneous processors in edge platforms
US20220414503A1
