WO2024255752A1 - 数据处理方法、装置和智能驾驶设备 - Google Patents
数据处理方法、装置和智能驾驶设备 Download PDFInfo
- Publication number
- WO2024255752A1 WO2024255752A1 PCT/CN2024/098589 CN2024098589W WO2024255752A1 WO 2024255752 A1 WO2024255752 A1 WO 2024255752A1 CN 2024098589 W CN2024098589 W CN 2024098589W WO 2024255752 A1 WO2024255752 A1 WO 2024255752A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processing
- data group
- sub
- data
- delay
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Definitions
- the present application relates to the field of intelligent driving technology, and more specifically, to a data processing method, device and intelligent driving equipment.
- APP application programming interface
- API application programming interface
- 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.
- the load rate of the computing resources corresponding to the application is 30%
- the data processing delay may be 15ms
- the load rate of the computing resources is 80%
- the data processing delay may be 35ms.
- 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.
- a data processing method 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.
- 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.
- 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.
- the plurality of second computing resources may include the first computing resource, or may not include the first computing resource.
- 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.
- 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.
- 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.
- the above-mentioned expected processing delay may be a preset value or a preset range.
- 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.
- the processing delay can be understood as the sum of the delay of parallel processing and the delay of merging multiple processing results falling within a preset range.
- the estimated processing delay of the data group when processed based on the computing resources specified by the current APP can be determined first.
- 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.
- the method 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.
- 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.
- 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.
- 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.
- the method 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.
- 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.
- 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.
- 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.
- the dedicated computing resources can only be used to process the sub-data groups scheduled by the deterministic scheduler.
- the computing resources corresponding to the sub-data group 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.
- 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.
- the segmentation strategy of the current data group 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.
- 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.
- 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.
- 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.
- 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.
- Case 2 When the current load rate of the computing resource 1 is relatively low, a supplementary index is added after the first index a according to the current load situation (for example, Indexes a to b and c to d) correspond to the computing resource 1.
- b is the tail index of the sub-data group 1 obtained from the previous data group
- 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 supplementing indexes c to d, the first and last indexes with the smallest scale in the segmentation strategy of the previous data group can be supplemented first to reduce the number of computing resources used and reduce resource consumption.
- 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.
- 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.
- 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.
- 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.
- the optional computing resources refer to available computing resources; the computing resource selection strategy may include a computing resource usage sequence strategy.
- 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.
- 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.
- the data group 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.
- the expected processing delay is determined according to multiple historical processing delays corresponding to the first APP.
- 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.
- 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.
- 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.
- 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 (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 the intelligent driving scenario.
- a scalable vector extension SVE
- CPU central processing unit
- GPU graphics processing unit
- DVPP digital video pre-processing
- ISP image signal processor
- AI artificial intelligence
- the first data group includes data that needs to be processed in the intelligent driving scenario.
- a data processing device which includes a processing unit and multiple 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 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 parallel processing delay and the merging delay of the multiple processing results meets the expected processing delay, and the first A computing resource and the second computing resource belong to the plurality of computing resources.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- the expected processing delay is determined according to multiple historical processing delays corresponding to the first APP.
- 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.
- 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.
- a data processing device 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.
- a computer-readable medium which stores a program code.
- the 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.
- a computer program product 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.
- a computing device 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.
- a chip comprising a circuit for executing a data processing method as in the first aspect or any possible implementation manner of the first aspect.
- an intelligent driving device 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.
- FIG1 is a functional schematic diagram of an intelligent driving device 100 provided in an embodiment of the present application.
- FIG2 is a schematic diagram of a system architecture of a computing platform provided in an embodiment of the present application.
- FIG3 is a flow chart of a data processing method provided in an embodiment of the present application.
- FIG4 is a schematic diagram of multiple historical processing delays corresponding to a first APP provided in an embodiment of the present application.
- FIG5 is a schematic diagram of the principle of segmenting a data group provided in an embodiment of the present application.
- FIG6 is a flow chart of another data processing method provided in an embodiment of the present application.
- FIG7 is a flow chart of another data processing method provided in an embodiment of the present application.
- FIG8 is a schematic diagram of the structure of a data processing device provided in an embodiment of the present application.
- FIG. 9 is a schematic block diagram of the hardware structure of the data processing device provided in an embodiment of the present application.
- 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.
- a and/or B can mean: A exists alone, A and B exist at the same time, and B exists alone.
- At least one means one or more
- plural 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.
- at least one of a, b, or c can mean: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, and c can be single or multiple.
- 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.
- the present application scheme 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.
- 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.
- MCU microcontroller unit
- ECU electronic control unit
- the intelligent driving equipment may include road vehicles, water vehicles, air vehicles, industrial equipment, agricultural equipment, or entertainment equipment, etc.
- 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.
- the intelligent driving equipment may be a vehicle such as an airplane or a ship.
- the present application scheme can also be applied to servers, smart terminals, smart homes, vehicle-mounted embedded devices, etc.
- it can be applied to smart phones, desktop computers, laptops, tablet computers, wearable devices, robots, etc.
- the application scenario of the present application is exemplarily introduced by taking an intelligent driving device as an example.
- FIG1 is a functional schematic diagram of an intelligent driving device 100 provided in an embodiment of the present application. It should be understood that FIG1 and related descriptions are only examples, and actual intelligent driving devices may not be limited thereto. As shown in FIG1 , the intelligent driving device 100 may include a perception system 110 and a computing platform 120.
- 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.
- GPS global positioning system
- the perception system 110 may also include one or more of a laser radar, a millimeter wave radar, an ultrasonic radar, a camera device, and an inertial measurement unit (IMU).
- IMU inertial measurement unit
- 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 capabilities.
- 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).
- the processor may implement certain functions through the logical relationship of a hardware circuit. The logical relationship of the hardware circuit is fixed or reconfigurable.
- the processor is a hardware circuit implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), such as a field programmable gate array (FPGA).
- ASIC application-specific integrated circuit
- PLD programmable logic device
- FPGA field programmable gate array
- the processor loads the configuration document to implement the process of hardware circuit configuration, which can be understood as the process of the processor loading instructions to implement the functions of some or all of the above units.
- the processor can 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.
- the computing platform 120 can also include a memory, the memory is used to store instructions, and some or all of the processors 121 to 12n can call the instructions in the memory to implement the corresponding functions.
- the computing platform 200 may include an application layer 210 , a platform software layer 220 , and a platform hardware layer 230 .
- 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.
- 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.
- the platform software layer 220 may include an API set and an operator set, etc.
- 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.
- 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.
- the APP 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.
- 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.
- 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.
- 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.
- FIG3 is a flow chart of a data processing method provided by 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.
- the method 300 includes steps S310 to S340, which are described in detail below.
- the first data group corresponds to a first APP, and the first APP specifies a first computing resource to process the first data group.
- 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.
- the first data group may include data that needs to be processed in the intelligent driving scenario.
- the expected processing delay may be a preset value or a preset range.
- the expected processing delay can be determined based on multiple historical processing delays corresponding to the first APP.
- 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.
- FIG4 is a schematic diagram of multiple historical processing delays corresponding to the first APP provided in an embodiment of the present application.
- the multiple (for example, n) historical processing delays t corresponding to the first APP vary in a curve and are uncertain.
- 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.
- 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.
- FIG5 is a schematic diagram of the principle of segmentation of a data group provided in an embodiment of the present application. It should be understood that the segmentation method shown in FIG5 and the corresponding calculation method As shown in FIG5 , 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- head and tail indexes for example, 0 and L1
- 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.
- 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.
- 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.
- the third sub-data group for example, L2+1 and L3, where L3 is less than L
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- each sub-data group is processed synchronously rather than in a serial manner, thereby reducing data processing delay.
- 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.
- 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.
- 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.
- 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.
- the above-mentioned multiple second computing resources may include: at least one of: SVE, CPU, GPU, DVPP, ISP, AI core, vector core, etc.
- the plurality of second computing resources may include the first computing resource, or may not include the first computing resource.
- 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.
- 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.
- 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.
- 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.
- 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.
- the estimated processing delay of the data group when processed based on the computing resources specified by the current APP can be determined first.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- the optional computing resources refer to available computing resources; the computing resource selection strategy may include a computing resource usage order strategy.
- FIG6 is a flow chart of another data processing method provided by an embodiment of the present application.
- the data group can be processed according to the method 600 shown in FIG6.
- the method 600 includes steps S610 to S660, which are described below.
- S620 Mark multiple computing resources in the segmentation strategy (such as the multiple second computing resources mentioned above) as dedicated computing resources.
- steps S610 to S630 can be found in the relevant introduction of the above step S320, which will not be repeated here.
- steps S640 and S650 can be found in the relevant introduction of the above step S330, which will not be repeated here.
- 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.
- 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.
- FIG7 is a flow chart of another data processing method provided by an embodiment of the present application. As shown in FIG7, the method 700 includes steps S710 to S790, which are described below. It should be understood that FIG7 is only an example, and in actual operation, it can also be performed in other orders, and the present application does not limit this.
- the specific determination method can refer to the relevant introduction in the above steps S310 and S320, which will not be repeated here.
- steps S730 to S750 please refer to the introduction of steps S320 to S340 above, which will not be repeated here.
- 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.
- step S770 wait for the set time, and then execute step S790 to return the processing result to the APP corresponding to the data group.
- step S790 After obtaining the processing result, execute step S790 to return the processing result to the APP corresponding to the data group.
- the device 800 includes a processing unit 810 and a plurality of computing resources 820.
- the processing unit 810 is used to: determine an estimated processing delay of 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; 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.
- the first data group may include data that needs to be processed in the intelligent driving scenario.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- the expected processing delay may be determined according to multiple historical processing delays corresponding to the first APP.
- 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.
- the plurality of second computing resources may include: at least one of SVE, CPU, GPU, DVPP, ISP, AI core, vector core, etc. One less.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- the embodiment of the present application also provides a computer program product, which includes instructions.
- a computer program product which includes instructions.
- 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.
- 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.
- 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.
- the disclosed systems, devices and methods can be implemented in other ways.
- the device embodiments described above are only schematic.
- 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.
- 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.
- 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.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法、装置和智能驾驶设备,应用于智能驾驶技术领域。其中,该方法包括:确定第一数据组的预估处理时延,该第一数据组对应第一应用程序,该第一应用程序指定第一计算资源处理该第一数据组;在该预估处理时延大于期望处理时延时,切分该第一数据组得到多个子数据组;基于多个第二计算资源并行处理该多个子数据组,得到多个子处理结果;合并该多个子处理结果得到该第一数据组的处理结果,该并行处理的时延和合并该多个处理结果的时延之和满足该期望处理时延。本申请方案能够解决当前技术中所存在的数据处理时延不确定的问题。
Description
本申请要求在2023年06月14日提交中国国家知识产权局、申请号为202310706247.4的中国专利申请的优先权,发明名称为“数据处理方法、装置和智能驾驶设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及智能驾驶技术领域,并且更具体地,涉及一种数据处理方法、装置和智能驾驶设备。
在当前智能驾驶车载计算平台中,应用程序(application,APP)主要通过调用应用程序编程接口(application programming interface,API)时输入的参数来实现计算资源的调用。即就是说,一旦在应用程序中指定使用某种计算资源,后续该应用程序便基于该指定的计算资源处理相关业务数据。
然而实际中,智能驾驶功能的调整导致应用程序所对应计算资源的负载率不断发生变化,进而导致该应用程序在处理数据过程中会因资源负载率的变化而产生不同的时延,即导致在处理数据过程中存在时延不确定的问题。例如,当应用程序所对应计算资源的负载率为30%时,数据的处理时延可能为15ms;在该计算资源的负载率为80%时,该数据的处理时延可能为35ms。
因此,如何解决数据处理时延不确定的问题是当下亟需探索的问题。
发明内容
本申请提供一种数据处理方法、装置和智能驾驶设备,能够解决当前技术中存在的数据处理时延不确定的问题。
第一方面,提供了一种数据处理方法,包括:确定第一数据组的预估处理时延,该第一数据组对应第一APP,该第一APP指定第一计算资源处理该第一数据组;在该预估处理时延大于期望处理时延时,切分该第一数据组得到多个子数据组;基于多个第二计算资源并行处理该多个子数据组,得到多个子处理结果;合并该多个子处理结果得到该第一数据组的处理结果,该并行处理的时延和合并该多个处理结果的时延之和满足该期望处理时延。
上述第一数据组的预估处理时延是指第一APP所指定的第一计算资源在当前负载情况下处理第一数据组的时延。应理解,在该第一计算资源的当前负载率较大时,无法立即处理第一数据组,需要等待一段时间,因此预估处理时延较大;在该第一计算资源的当前负载率较小时,可以立即处理第一数据组,因此预估处理时延较小。
上述多个第二计算资源可以并行处理多个子数据组。应理解,并行处理数据相较于串行处理数据而言,能够降低数据的处理时延。
上述多个第二计算资源可以包括第一计算资源,也可以不包括第一计算资源。
多个子数据组中每个子数据组的处理时延包括对应的计算资源基于该子数据组执行计算操作之前的等待时延和该计算资源执行计算操作的计算时延。其中,等待时延可以根据对应的计算资源的负载情况确定,例如,在该计算资源的负载率较低时,等待时延较小或者不存在等待时延;在该计算资源的负载率较高时,等待时延较长。
由于多个子数据组被并行处理,因此,多个子数据组并行处理的时延可以根据多个子数据组分别对应的处理时延中的最大处理时延确定。
上述合并多个处理结果的时延可以理解为对多个处理结果执行合并操作时所产生的时延。
上述期望处理时延可以是预设值,也可以是预设范围。
在上述期望处理时延为预设值时,上述并行处理的时延和合并多个处理结果的时延之和满足期望处理时延可以理解为,并行处理的时延和合并多个处理结果的时延之和等于该预设值。
在上述期望处理时延为预设范围时,上述并行处理的时延和合并多个处理结果的时延之和满足期望
处理时延可以理解为,并行处理的时延和合并多个处理结果的时延之和落入预设范围内。
基于本申请方案在处理数据组时,可以先确定该数据组基于当前APP所指定的计算资源处理时的预估处理时延,在预估处理时延大于期望处理时延时对数据组进行切分以得到多个子数据组,并重新指定多个计算资源并行处理切分后的子数据组,从而能够有效降低数据的处理时延,解决当前技术中存在的数据处理时延不确定的问题。
结合第一方面,在第一方面的某些实现方式中,在切分该第一数据组之前,该方法还包括:确定该第一数据组对应的切分策略,该切分策略包括该多个子数据组中每个子数据组的首尾索引和每个子数据组对应的第二计算资源;根据该切分策略切分该第一数据组。
其中,子数据组的首尾索引用于指示子数据组在原始数据组中的位置和数据量大小,索引也可以描述为节点、序号、编号等。
基于本申请方案,在对数据组进行切分之前,可以先确定数据组的切分方式以及各个子数据组对应的计算资源,以保证切分操作和数据处理的确定性执行。
本申请不限定切分策略的确定方式,只要能够保证各个子数据组基于对应计算资源并行处理时的时延和合并时延之和满足期望处理时延即可。
结合第一方面,在第一方面的某些实现方式中,在该基于多个第二计算资源并行处理该多个子数据组之前,该方法还包括:基于确定性调度器将该多个子数据组分别调度至该多个第二计算资源。
其中,确定性调度器是指能够保证系统在某个时间内完成某项任务的调度器,即就是说,确定性调度器能够保证每个任务的处理时延是确定的。
基于本申请方案,可以基于确定性调度器将多个子数据组分别调度至多个第二计算资源,以保证数据处理时延的确定性。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:将该多个第二计算资源中的至少一个标记为专用计算资源,该专用计算资源只能被该确定性调度器调度。
换句话来讲,专用计算资源只能用于处理该确定性调度器调度的子数据组。
基于本申请方案,在子数据组对应的计算资源确定后,可以将该计算资源标记为专用计算资源,只允许该计算资源被确定性调度器调度,以防止该计算资源被其他业务占用,保证数据处理时延的确定性。
结合第一方面,在第一方面的某些实现方式中,按照如下策略中的至少一项确定该切分策略:根据该第一APP先前已使用的计算资源确定该切分策略;根据切分该第一APP的在先数据组得到的子数据组的首尾索引以及对应的计算资源确定该切分策略;根据切分该第一APP的在先数据组得到的子数据组的首索引对应的计算资源以及该对应计算资源的实际负载情况确定该切分策略。
基于本申请方案,在确定当前数据组的切分策略时可以参照对应APP先前数据组的切分策略,从而能够降低系统资源消耗。
上述先前和在先可以为上一次,也可以为其他历史阶段。
上述根据该第一APP先前已使用的计算资源确定该切分策略,是指根据第一APP先前(例如,上一次)已使用的计算资源确定切分策略中的计算资源。
上述根据切分该第一APP的在先数据组得到的子数据组的首尾索引以及对应的计算资源确定该切分策略,是指根据切分第一APP的在先数据组(例如,上一次执行切分的数据组)得到的子数据组的首尾索引以及对应的计算资源确定当前切分策略中的子数据组的首尾索引和对应的计算资源。
上述根据切分该第一APP的在先数据组得到的子数据组的首索引对应的计算资源以及该对应计算资源的实际负载情况确定该切分策略,是指根据切分第一APP的在先数据组(例如,上一次执行切分的数据组)得到的子数据组的首索引对应的计算资源以及该对应计算资源的实际负载情况确定当前切分策略中的子数据组的首尾索引和对应的计算资源。
具体地,可以先根据在先数据组得到的子数据组1的首索引a对应的计算资源1确定当前切分策略中的一个计算资源为计算资源1,再结合该计算资源1的当前实际负载情况,在首索引a后补充索引并对应到计算资源1,下面结合情况1和情况2对该策略进行详细说明。
情况1:在该计算资源1的当前负载率较大时,则根据当前负载情况在首索引a后补充适量索引(例如,索引a至i)对应到该计算资源1,并将该子数据组1的剩余索引(例如,i+1至b,其中b为在先数据组得到的子数据组1的尾索引)对应到其他的计算资源(例如,计算资源2)。
情况2:在该计算资源1的当前负载率较小时,则根据当前负载情况在首索引a后补充索引(例如,
索引a至b以及c至d)对应到该计算资源1。其中,b为在先数据组得到的子数据组1的尾索引,c至d可以为在先数据组得到的子数据组2的索引。应理解,在补充索引c至d时,可以优先补充在先数据组的切分策略中的规模最小的首尾索引,以减少计算资源的使用数目,降低资源消耗。
结合第一方面,在第一方面的某些实现方式中,该方法应用于计算平台,该计算平台包括缓存,该缓存中存储有该第一APP对应的切分记录,该切分记录包括第一首尾索引和第三计算资源的对应关系,该方法包括:根据该第一首尾索引切分该第一数据组,得到该第一首尾索引对应的第一子数据组;基于该第三计算资源处理该第一子数据组。该计算平台包括移动计算平台或云端计算平台。该移动计算平台包括车载计算平台或智能机器人上装配的计算平台。该云端计算平台可以是无人作业场景下控制室中的计算平台。
本申请通过缓存来存储APP对应的历史切分记录,使得当前数据组在进行切分时,可以先从缓存中获取历史切分记录,再根据所获取的切分记录确定当前数据组的切分方式和对应的计算资源。一方面,相较于从内存获取切分记录而言,从缓存中获取切分记录能够提高获取的速度,进而提高数据处理的效率;另一方面,从缓存中获取切分记录,能够提高缓存的命中率,从而能够提高系统整体的吞吐量和资源利用率。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:记录数据处理过程中产生的关键信息,该关键信息包括预估处理时延、实际处理时延、期望处理时延、切分策略、对应计算资源的使用情况、计算合并操作记录、调度器调度队列的相关信息中的至少一项;分析该关键信息,并根据分析结果调整数据处理的相关配置,该相关配置包括期望处理时延的阈值、可选计算资源、计算资源的选择策略、切分策略更新周期中的至少一项。
其中,可选计算资源是指可以使用的计算资源;计算资源的选择策略可以包括计算资源的使用顺序策略。
基于本申请方案,可以在数据处理过程中记录相关信息,并根据这些信息对数据处理的相关配置进行优化,以使得数据处理能力更贴近实际业务,达到更好的确定性效果。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:在该预估处理时延小于该期望处理时延时,基于该第一计算资源处理该第一数据组,并在处理该第一数据组后等待设定时间后返回处理结果,该设定时间为该期望处理时延与该预估处理时延之差。
基于本申请方案,在预估处理时延小于期望处理时延时,可以基于APP指定的计算资源处理数据组,并在处理后等待设定时间后再返回处理结果,以使得数据的处理时延满足期望处理时延,解决当前技术中存在的数据处理时延不确定的问题。
结合第一方面,在第一方面的某些实现方式中,该期望处理时延根据该第一APP对应的多个历史处理时延确定。
例如,可以根据多个历史处理时延的平均值确定期望处理时延;又例如,可以根据多个历史处理时延的平均值和标准差确定期望处理时延;又例如,可以根据多个历史处理时延的最小值确定期望处理时延,等等。
或者,该期望处理时延也可以由用户或开发人员预先根据自身期望确定,或者由计算平台根据智能驾驶的实际需求确定。
结合第一方面,在第一方面的某些实现方式中,该期望处理时延满足区间:[T-σ,T+σ],其中,T为该多个历史处理时延的平均值,σ为该多个历史处理时延的标准差。
结合第一方面,在第一方面的某些实现方式中,该多个第二计算资源包括:可伸缩矢量扩展(scalable vector extension,SVE)、中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、数字视觉预处理(digital video pre-processing,DVPP)、图像处理器(image signal processor,ISP)、人工智能(artificial intelligence,AI)核(core)、矢量核(vector core)等中的至少一种;该第一数据组包括智能驾驶场景中需要处理的数据。
第二方面,提供了一种数据处理装置,该装置包括处理单元和多个计算资源,该处理单元用于,确定第一数据组的预估处理时延,该第一数据组对应第一APP,该第一应用程序指定第一计算资源处理该第一数据组;在该预估处理时延大于期望处理时延时,切分该第一数据组得到多个子数据组;基于多个第二计算资源并行处理该多个子数据组,得到多个子处理结果;以及,合并该多个子处理结果得到该第一数据组的处理结果,该并行处理的时延和合并该多个处理结果的时延之和满足该期望处理时延,该第
一计算资源和该第二计算资源属于该多个计算资源。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于,确定该第一数据组对应的切分策略,该切分策略包括该多个子数据组中每个子数据组的首尾索引和每个子数据组对应的第二计算资源;以及,根据该切分策略切分该第一数据组。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于,基于确定性调度器将该多个子数据组分别调度至该多个第二计算资源。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于,将该多个第二计算资源中的至少一个标记为专用计算资源,该专用计算资源只能被该确定性调度器调度。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于,按照如下策略中的至少一项确定该切分策略:根据该第一APP先前已使用的计算资源确定该切分策略;根据切分该第一APP的在先数据组得到的子数据组的首尾索引以及对应的计算资源确定该切分策略;根据切分该第一APP的在先数据组得到的子数据组的首索引对应的计算资源以及该对应计算资源的实际负载情况确定该切分策略。
结合第二方面,在第二方面的某些实现方式中,该装置应用于计算平台,该计算平台包括缓存,该缓存中存储有该第一APP对应的切分记录,该切分记录包括第一首尾索引和第三计算资源的对应关系,该处理单元还用于,根据该第一首尾索引切分该第一数据组,得到该第一首尾索引对应的第一子数据组;基于该第三计算资源处理该第一子数据组。该计算平台包括移动计算平台或云端计算平台。该移动计算平台包括车载计算平台或智能机器人上装配的计算平台。该云端计算平台可以是无人作业场景下控制室中的计算平台。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于,记录数据处理过程中产生的关键信息,该关键信息包括预估处理时延、实际处理时延、期望处理时延、切分策略、对应计算资源的使用情况、计算合并操作记录、调度器调度队列的相关信息中的至少一项;分析该关键信息,并根据分析结果调整数据处理的相关配置,该相关配置包括期望处理时延的阈值、可选计算资源、计算资源的选择策略、切分策略更新周期中的至少一项。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于,在该预估处理时延小于该期望处理时延时,基于该第一计算资源处理该第一数据组,并在处理该第一数据组后等待设定时间后返回处理结果,该设定时间为该期望处理时延与该预估处理时延之差。
结合第二方面,在第二方面的某些实现方式中,该期望处理时延根据该第一APP对应的多个历史处理时延确定。
结合第二方面,在第二方面的某些实现方式中,该期望处理时延满足区间:[T-σ,T+σ],其中,T为该多个历史处理时延的平均值,σ为该多个历史处理时延的标准差。
结合第二方面,在第二方面的某些实现方式中,该多个第二计算资源包括:SVE、CPU、GPU、DVPP、ISP、AI核、矢量核中的至少一种;该第一数据组包括智能驾驶场景中需要处理的数据。
第三方面,提供了一种数据处理装置,包括输入输出接口、处理器和存储器,该处理器用于控制输入输出接口收发信号或信息,该存储器用于存储计算机程序,该处理器用于从该存储器中调用并运行该计算机程序,使得该数据处理装置执行如第一方面或第一方面中任一可能实现方式中的数据处理方法。
第四方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得计算机执行如第一方面或第一方面中任一可能实现方式中的数据处理方法。
第五方面,提供一种计算机程序产品,包含指令,当该指令在计算机上运行时,如第一方面或第一方面中任一可能实现方式中的数据处理方法被执行。
第六方面,提供了一种计算设备,包括:至少一个处理器和存储器,该至少一个处理器与该存储器耦合,用于读取并执行该存储器中的指令,以执行如第一方面或者第一方面的任一可能的实现方式中的数据处理方法。
第七方面,提供一种芯片,该芯片包括用于执行如第一方面或者第一方面的任一可能的实现方式中的数据处理方法的电路。
第八方面,提供了一种智能驾驶设备,包括如第二方面或第二方面中任一可能实现方式中的装置,或包括如第三方面中的装置,该装置应用于移动计算平台。
图1是本申请实施例提供的智能驾驶设备100的一个功能性示意图;
图2是本申请实施例提供的计算平台的一个系统架构示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的第一APP对应的多个历史处理时延的示意图;
图5是本申请实施例提供的数据组的切分原理示意图;
图6是本申请实施例提供的另一种数据处理方法的流程示意图;
图7是本申请实施例提供的又一种数据处理方法的流程示意图;
图8是本申请实施例提供的数据处理装置的结构示意图;
图9是本申请实施例提供的数据处理装置的硬件结构示意性框图。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本申请实施例中采用诸如“第一”、“第二”的前缀词,仅仅为了区分不同的描述对象,对被描述对象的位置、顺序、优先级、数量或内容等没有限定作用。本申请实施例中对序数词等用于区分描述对象的前缀词的使用不对所描述对象构成限制,对所描述对象的陈述参见权利要求或实施例中上下文的描述,不应因为使用这种前缀词而构成多余的限制。
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请方案可以应用于智能驾驶设备中,例如应用于智能驾驶设备中的中央计算平台、智能驾驶域控制器、座舱域控制器、微控制单元(microcontroller unit,MCU)、电子控制单元(electronic control unit,ECU)等车载计算平台中。
其中,智能驾驶设备可以包括路上交通工具、水上交通工具、空中交通工具、工业设备、农业设备、或娱乐设备等。例如智能驾驶设备可以为车辆,该车辆为广义概念上的车辆,可以是交通工具(如商用车、乘用车、摩托车、飞行车、火车等),工业车辆(如:叉车、挂车、牵引车等),工程车辆(如挖掘机、推土车、吊车等),农用设备(如割草机、收割机等),游乐设备,玩具车辆等,本申请对车辆的类型不作具体限定。再如,智能驾驶设备可以为飞机、或轮船等交通工具。
本申请方案还可以应用于服务器、智能终端、智能家居、车载嵌入式设备等设备中。例如,可以应用于智能手机、台式电脑、笔记本电脑、平板电脑、可穿戴设备、机器人、等中。
下面结合图1,以智能驾驶设备为例,对本申请的应用场景进行示例性介绍。
图1是本申请实施例提供的智能驾驶设备100的一个功能性示意图。应理解,图1及相关描述仅为一种示例,实际智能驾驶设备可以不限于此。如图1所示,智能驾驶设备100可以包括感知系统110和计算平台120。
其中,感知系统110可以包括感测关于车辆100周边的环境的信息的一种或多种传感器。感知系统110可以包括定位系统,定位系统可以是全球定位系统(global positioning system,GPS),也可以是北斗系统或者其他定位系统。又例如,感知系统110还可以包括激光雷达、毫米波雷达、超声雷达、摄像装置以及、惯性测量单元(inertial measurement unit,IMU)中的一种或者多种。
计算平台120用于对感知系统110感测的数据进行分析及处理,并实现对智能驾驶设备100的部分或所有功能的控制。计算平台120可包括处理器121至12n,处理器是一种具有信号处理能力的电路,在一种实现中,处理器可以是具有指令读取与运行能力的电路,例如CPU、微处理器、GPU(可以理解为一种微处理器)、或数字信号处理器(digital signal processor,DSP)等;在另一种实现中,处理器可以通过硬件电路的逻辑关系实现一定功能,该硬件电路的逻辑关系是固定的或可以重构的,例如处理器为专用集成电路(application-specific integrated circuit,ASIC)或可编程逻辑器件(programmable logic device,PLD)实现的硬件电路,例如现场可编程门阵列(field programmable gate array,FPGA)。在可重构的硬
件电路中,处理器加载配置文档,实现硬件电路配置的过程,可以理解为处理器加载指令,以实现以上部分或全部单元的功能的过程。此外,处理器还可以是针对人工智能设计的硬件电路,其可以理解为一种ASIC,例如神经网络处理单元(neural network processing unit,NPU)、张量处理单元(tensor processing unit,TPU)、深度学习处理单元(deep learning processing unit,DPU)等。此外,计算平台120还可以包括存储器,存储器用于存储指令,处理器121至12n中的部分或全部处理器可以调用存储器中的指令,以实现相应的功能。
示例性地,图2是本申请实施例提供的计算平台的一个系统架构示意图。如图2所示,该计算平台200可以包括应用层210、平台软件层220和平台硬件层230。
其中,应用层210可以包括智能驾驶应用、功能安全应用和信息安全应用等,每种应用可以包括一个或多个APP,主要用于实现智能驾驶的控制及安全管理。其中,智能驾驶应用对应的APP可以实现感知、定位、融合、决策、规划或控制等;功能安全应用和信息安全应用对应的APP可以实现错误监测、安全策略管理、计算资源监测、执行安全纠正以及安全警示等。
平台软件层220可以包括API集合和算子集合等。其中,API是一组定义、程序及协议的集合,通过API可以实现计算机软件之间的相互通信;算子为计算逻辑,其可以在计算资源上运行。
平台硬件层230可以包括至少一种计算资源,例如可以包括CPU、SVE、GPU、DVPP、ISP、AI核、矢量核等中的至少一种,这些计算资源可以提供并行计算能力,且每种计算资源可以包括一个或多个。
基于计算平台200,在基于某个APP处理业务数据时,该APP会向对应的API下发参数以调用该参数所指示的计算资源来处理该业务数据。其中,该参数通常是由该APP的开发人员或用户事先设置的。这便意味着,该APP对应的计算资源也是事先指定的。然而实际中,随着智能驾驶功能的调整,该APP所对应计算资源的负载率会不断发生变化,导致在处理数据过程中存在时延不确定的问题。
基于此,本申请提出了一种数据处理方法,能够在业务数据的预估处理时延大于期望处理时延时对业务数据(即下文中的数据组)进行切分,并重新指定多个计算资源并行处理切分后的业务数据(即下文中的子数据组),从而能够有效降低业务数据的处理时延,解决当前技术中存在的数据处理时延不确定的问题。
图3是本申请实施例提供的一种数据处理方法的流程示意图。方法300可以由处理装置执行,其中,处理装置具有处理功能,例如,处理装置可以为车机、车载芯片、车载处理器、计算平台120、计算平台200或者服务器等具有处理功能的装置中的一个或多个。如图3所示,该方法300包括步骤S310至S340,下面对这些步骤进行详细介绍。
S310,确定第一数据组基于第一计算资源处理时的预估处理时延。
其中,该第一数据组对应第一APP,该第一APP指定第一计算资源处理第一数据组。
上述第一数据组的预估处理时延是指第一APP所指定第一计算资源的在当前负载情况下处理第一数据组的时延。应理解,在该第一计算资源的当前负载率较大时,无法立即处理第一数据组,需要等待一段时间,因此预估处理时延较大;在该第一计算资源的当前负载率较小时,可以立即处理第一数据组,因此预估处理时延较小。
在应用于智能驾驶场景时,上述第一数据组可以包括智能驾驶场景中需要处理的数据。
S320,在预估处理时延大于期望处理时延时,切分第一数据组得到多个子数据组。
其中,期望处理时延可以是预设值,也可以是预设范围。
在一种可能的实现方式中,该期望处理时延可以根据第一APP对应的多个历史处理时延确定。例如,可以根据多个历史处理时延的平均值确定期望处理时延;又例如,可以根据多个历史处理时延的平均值和标准差确定期望处理时延;再例如,可以根据多个历史处理时延的最小值确定期望处理时延,等等。
示例性地,图4是本申请实施例提供的第一APP对应的多个历史处理时延的示意图。如图4所示,第一APP对应的多个(例如,n个)历史处理时延t呈曲线变化,是不确定的。基于图4示例,在根据多个历史处理时延的平均值确定期望处理时延时,该期望处理时延可以为T,其中,T为多个历史处理时延的平均值;在根据多个历史处理时延的平均值和标准差确定期望处理时延时,该期望处理时延可以满足区间:[T-σ,T+σ],其中,T为多个历史处理时延的平均值,σ为多个历史处理时延的标准差。
在另一种可能的实现方式中,该期望处理时延也可以由用户或开发人员预先根据自身期望确定,或者由计算平台根据智能驾驶的实际需求确定。
图5是本申请实施例提供的数据组的切分原理示意图。应理解,图5所示的切分方式以及对应的计
算资源仅为示例,本申请对此不做限定。如图5所示,第一数据组可以经过切分得到多个子数据组,该多个子数据组可以被多个计算资源并行处理并得到多个子处理结果,通过对多个子处理结果的合并可以得到第一数据组的处理结果,该合并后的处理结果和对第一数据组直接进行处理的结果相同。
在一种可能的实现方式中,在切分该第一数据组之前,可以先确定该第一数据组对应的切分策略,再根据该切分策略切分该第一数据组,以保证切分操作和数据处理的确定性执行。其中,该切分策略用于指示数据组的切分方式以及各个子数据组对应的计算资源。作为一个示例,该切分策略可以包括该多个子数据组中每个子数据组的首尾索引和每个子数据组对应的计算资源(即下文中的第二计算资源)。
其中,子数据组的首尾索引用于指示子数据组在原始数据组中的位置和数据量大小,索引也可以描述为节点、序号、编号等。
以数据组的对应索引为0-5000为例,该数据组对应的切分策略可以如表1所示。应理解,该表1所示切分策略仅为示例,实际操作中也可以存在其他的切分策略,本申请对此不做限定。
表1:
实际操作中,可以结合计算平台上各个计算资源当前的负载情况、处理时延等因素确定数据组的切分策略,本申请不限定切分策略的具体确定方式,只要能够保证各个子数据组基于对应计算资源并行处理时的时延和合并时延之和满足期望处理时延即可。
在一种可能的实现方式中,可以采用贪心算法确定切分策略。具体地,首先假设数据组对应的索引为0-L。
第一步:确定期望时延与合并时延之差,根据时延差值确定第一子数据组对应的首尾索引(例如0和L1)和计算资源1,其中,基于计算资源1处理第一子数据组的时延满足时延差值。
第二步:若L-L1>0,根据上述时延差值确定第二子数据组对应的首尾索引(例如L1+1和L2,其中L2小于L)和计算资源2,其中,基于计算资源2处理第二子数据组的时延满足时延差值。
第三步:若L-L2>0,根据上述时延差值确定第三子数据组对应的首尾索引(例如L2+1和L3,其中,L3小于L)和计算资源3,其中,基于计算资源3处理第三子数据组的时延满足时延差值。
以此类推,直至L-Ln=0,再统计每一步中的首尾索引和对应的计算资源得到切分策略。
在另一种可能的实现方式中,可以按照如下策略中的至少一项确定切分策略:根据该第一APP先前已使用的计算资源确定该切分策略;根据切分该第一APP的在先数据组得到的子数据组的首尾索引以及对应的计算资源确定该切分策略;根据切分该第一APP的在先数据组得到的子数据组的首索引对应的计算资源以及该对应计算资源的实际负载情况确定该切分策略,等。基于以上策略确定切分策略能够降低系统资源消耗。
上述先前和在先可以为上一次,也可以为其他历史阶段。
上述根据该第一APP先前已使用的计算资源确定该切分策略,是指根据第一APP先前(例如,上一次)已使用的计算资源确定切分策略中的计算资源。
上述根据切分该第一APP的在先数据组得到的子数据组的首尾索引以及对应的计算资源确定该切分策略,是指根据切分第一APP的在先数据组(例如,上一次执行切分的数据组)得到的子数据组的首尾索引以及对应的计算资源确定当前切分策略中的子数据组的首尾索引和对应的计算资源。
上述根据切分该第一APP的在先数据组得到的子数据组的首索引对应的计算资源以及该对应计算资源的实际负载情况确定该切分策略,是指根据切分第一APP的在先数据组(例如,上一次执行切分的数据组)得到的子数据组的首索引对应的计算资源以及该对应计算资源的实际负载情况确定当前切分策略中的子数据组的首尾索引和对应的计算资源。
具体地,可以先根据在先数据组得到的子数据组1的首索引a对应的计算资源1确定当前切分策略中的一个计算资源为计算资源1,再结合该计算资源1的当前实际负载情况,在首索引a后补充索引并对应到计算资源1,下面结合情况1和情况2对该策略进行详细说明。
情况1:在该计算资源1的当前负载率较大时,则根据当前负载情况在首索引a后补充适量索引(例如,索引a至i)对应到该计算资源1,并将该子数据组1的剩余索引(例如,i+1至b,其中b为在先数据组得到的子数据组1的尾索引)对应到其他的计算资源(例如,计算资源2)。
情况2:在该计算资源1的当前负载率较小时,则根据当前负载情况在首索引a后补充索引(例如,索引a至b以及c至d)对应到该计算资源1。其中,b为在先数据组得到的子数据组1的尾索引,c至d可以为在先数据组得到的子数据组2的索引。应理解,在补充索引c至d时,可以优先补充在先数据组的切分策略中的规模最小的首尾索引,以减少计算资源的使用数目,降低资源消耗。
可选地,上述方法300可以应用于计算平台,该计算平台可以包括缓存,该缓存中可以存储有第一APP对应的切分记录,在该切分记录包括第一首尾索引和第三计算资源的对应关系时。可以直接根据该第一首尾索引切分该第一数据组,得到该第一首尾索引对应的第一子数据组;再基于该第三计算资源处理该第一子数据组。该计算平台包括移动计算平台或云端计算平台。该移动计算平台包括车载计算平台或智能机器人上装配的计算平台。该云端计算平台可以是无人作业场景下控制室中的计算平台。
本申请通过缓存来存储APP对应的历史切分记录,使得当前数据组在进行切分时,可以先从缓存中获取历史切分记录,再根据所获取的切分记录确定当前数据组的切分方式和对应的计算资源。一方面,相较于从内存获取切分记录而言,从缓存中获取切分记录能够提高获取的速度,进而提高数据处理的效率;另一方面,从缓存中获取切分记录,能够提高缓存的命中率,从而能够提高系统整体的吞吐量和资源利用率。
可选地,在对第一数据组执行切分之后,可以将切分得到的多个子数据组进行缓存,以便后续调度时可以直接从缓存中调用子数据组,相较于从内存中调用子数据组而言,能够提高子数据组的调用效率。
应理解,算子集合作为一种计算逻辑部署在计算资源上,在数据处理时发挥着重要的作用。因此切分策略中还可以包括子数据组对应的算子,使得后续可以基于对应算子和计算资源处理子数据组。
S330,基于多个第二计算资源并行处理多个子数据组,得到多个子处理结果。
采用并行处理的方式时,各个子数据组是同步进行处理的,而不是以串行的方式执行的,从而能够降低数据的处理时延。
在步骤S330执行之前,可以先基于确定性调度器将多个子数据组分别调度至多个第二计算资源,以保证数据处理的时延确定性。
其中,确定性调度器是指能够保证系统在某个时间内完成某项任务的调度器,即就是说,确定性调度器能够保证每个任务的处理时延是确定的。
在步骤S330执行之前(或者在确定切分策略之后),可以将上述多个第二计算资源中的至少一个标记为专用计算资源,该专用计算资源只能被确定性调度器调度。换句话来讲,专用计算资源只能用于处理该确定性调度器调度的子数据组,从而能够防止该计算资源被其他业务占用,保证数据处理时延的确定性。
上述多个第二计算资源可以包括:SVE、CPU、GPU、DVPP、ISP、AI核、矢量核等中的至少一种。
上述多个第二计算资源可以包括第一计算资源,也可以不包括第一计算资源。
S340,合并多个子处理结果得到第一数据组的处理结果。
需要说明的是,在数据处理的过程中,并行处理的时延和合并多个处理结果的时延之和需要满足期望处理时延。
在上述期望处理时延为预设值时,上述并行处理的时延和合并多个处理结果的时延之和满足期望处理时延可以理解为,并行处理的时延和合并多个处理结果的时延之和等于该预设值。
在上述期望处理时延为预设范围时,上述并行处理的时延和合并多个处理结果的时延之和满足期望处理时延可以理解为,并行处理的时延和合并多个处理结果的时延之和落入预设范围内。
多个子数据组中每个子数据组的处理时延包括对应的计算资源基于该子数据组执行计算操作之前的等待时延和该计算资源执行计算操作的计算时延。其中,等待时延可以根据对应的计算资源的负载情况确定,例如,在该计算资源的负载率较低时,等待时延较小或者不存在等待时延;在该计算资源的负载率较高时,等待时延较长。
由于多个子数据组被并行处理,因此,多个子数据组并行处理的时延可以根据多个子数据组分别对应的处理时延中的最大处理时延确定。
上述合并多个处理结果的时延可以理解为对多个处理结果执行合并操作时所产生的时延。
基于本申请方案在处理数据组时,可以先确定该数据组基于当前APP所指定的计算资源处理时的预估处理时延,在预估处理时延大于期望处理时延时对数据组进行切分以得到多个子数据组,并重新指定多个计算资源并行处理切分后的子数据组,从而能够有效降低数据的处理时延,解决当前技术中存在的数据处理时延不确定的问题。
可选地,在预估处理时延小于期望处理时延时,可以基于第一计算资源处理第一数据组,并在处理第一数据组后等待设定时间后再返回处理结果,其中,设定时间为该期望处理时延与该预估处理时延之差,以使得数据的处理时延满足期望处理时延,解决当前技术中存在的数据处理时延不确定的问题。
可选地,在预估处理时延满足期望处理时延时,可以直接基于第一计算资源处理第一数据组,并在处理第一数据组后直接返回处理结果。
可选地,本申请还可以记录并分析数据处理过程中产生的关键信息,并根据分析结果调整数据处理的相关配置,以使得数据处理能力更贴近实际业务,达到更好的确定性效果。
示例性地,关键信息可以包括预估处理时延、实际处理时延、期望处理时延、切分策略、对应计算资源的使用情况、计算合并操作记录、调度器调度队列的相关信息等中的至少一项。
示例性地,相关配置可以包括期望处理时延的阈值、可选计算资源、计算资源的选择策略、切分策略更新周期等中的至少一项。其中,可选计算资源是指可以使用的计算资源;计算资源的选择策略可以包括计算资源的使用顺序策略。
作为一个示例,图6是本申请实施例提供的另一种数据处理方法的流程示意图。在确定数据组(如上述第一数据组)的预估处理时延大于期望处理时延时,可以按照图6所示方法600对该数据组进行处理。如图6所示,该方法600包括步骤S610至S660,下面对这些步骤进行介绍。
S610,确定数据组的切分策略。
S620,将切分策略中的多个计算资源(如上述多个第二计算资源)标记专用计算资源。
S630,对该数据组进行切分,得到多个子数据组。
步骤S610至S630所涉及的相关内容可参见上述步骤S320中的相关介绍,不再赘述。
S640,基于确定性调度器将多个子数据组分别调用至多个计算资源。
S650,基于多个计算资源对多个子数据组进行并行处理,得到多个子计算结果。
步骤S640和S650所涉及的相关内容可参见上述步骤S330中的相关介绍,不再赘述。
S660,合并多个子计算结果,得到该数据组的计算结果。
具体可参见上述步骤S340中的相关介绍,不再赘述。
基于方法600,在确定数据组的预估处理时延大于期望处理时延时,可以先确定出切分策略,并将切分策略中的计算资源标记为专用计算资源,再根据切分策略对数据组进行切分以得到多个子数据组,在切分后再基于确定性调度器将切分后的子数据组调度至专用计算资源上进行处理,从而能够保证数据的处理时延是确定的。
作为一个示例,图7是本申请实施例提供的又一种数据处理方法的流程示意图。如图7所示,该方法700包括步骤S710至S790,下面对这些步骤进行介绍。应理解,图7仅作为一种示例,实际操作中也可以按照其他顺序来执行,本申请对此不做限定。
S710,确定数据组(如上述第一数据组)的期望处理时延和预估处理时延。
具体确定方式可以参见上述步骤S310和S320中的相关介绍,不再赘述。
S720,判断预估处理时延与期望处理时延的大小关系。
在预估处理时延大于期望处理时延时,继续执行步骤S730至S750;在预估处理时延小于期望处理时延时,继续执行步骤S760和S770;在预估处理时延等于期望处理时延时,继续执行步骤S780。
S730,将该数据组切分为多个子数据组。
S740,基于多个计算资源(如上述多个第二计算资源)对多个子数据组进行并行处理,得到多个子处理结果。
S750,合并多个子处理结果得到该数据组的处理结果。
在得到该数据组的处理结果后,执行S790将处理结果返回给该数据组对应的APP。
关于步骤S730至S750的相关内容可参见上文步骤S320至S340中的介绍,不再赘述。
S760,基于该数据组对应APP所指定的计算资源(如上述第一计算资源)处理该数据组。
S770,等待设定时间,再执行步骤S790将处理结果返回给该数据组对应的APP。其中,设定时间为
期望处理时延与预估处理时延之差。
S780,基于该数据组对应APP所指定的计算资源处理该数据组。
在得到处理结果后,执行步骤S790将处理结果返回给该数据组对应的APP。
S790,返回处理结果给该数据组对应的APP。
基于方法700,实际操作中可以根据数据组的预估处理时延和期望处理时延的大小关系确定出不同的数据处理方案,使得在不同情况下均能保证数据处理时延是确定的。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,各个实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
上文中结合图1至图7详细说明了本申请实施例提供的方法。下面将结合图8和图9详细说明本申请实施例提供的装置。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
图8是本申请实施例提供的数据处理装置的结构示意图。该装置800包括处理单元810和多个计算资源820。其中,该处理单元810用于:确定第一数据组的预估处理时延,该第一数据组对应第一APP,该第一应用程序指定第一计算资源处理该第一数据组;在该预估处理时延大于期望处理时延时,切分该第一数据组得到多个子数据组;基于多个第二计算资源并行处理该多个子数据组,得到多个子处理结果;以及,合并该多个子处理结果得到该第一数据组的处理结果,该并行处理的时延和合并该多个处理结果的时延之和满足该期望处理时延。该第一计算资源和该第二计算资源属于该多个计算资源820。
在应用于智能驾驶场景时,上述第一数据组可以包括智能驾驶场景中需要处理的数据。
可选地,该处理单元810还可以用于,确定该第一数据组对应的切分策略,该切分策略包括该多个子数据组中每个子数据组的首尾索引和每个子数据组对应的第二计算资源;以及,根据该切分策略切分该第一数据组。
可选地,该处理单元810还可以用于,基于确定性调度器将该多个子数据组分别调度至该多个第二计算资源。
可选地,该处理单元810还可以用于,将该多个第二计算资源中的至少一个标记为专用计算资源。其中,该专用计算资源只能被该确定性调度器调度。
可选地,该处理单元810还可以用于,按照如下策略等中的至少一项确定该切分策略:根据该第一APP先前已使用的计算资源确定该切分策略;根据切分该第一APP的在先数据组得到的子数据组的首尾索引以及对应的计算资源确定该切分策略;以及,根据切分该第一APP的在先数据组得到的子数据组的首索引对应的计算资源以及该对应计算资源的实际负载情况确定该切分策略。
可选地,该装置800可以应用于计算平台,该计算平台可以包括缓存,该缓存中存储有该第一APP对应的切分记录,该切分记录包括第一首尾索引和第三计算资源的对应关系。基于该缓存,该处理单元810还可以用于,根据该第一首尾索引切分该第一数据组,得到该第一首尾索引对应的第一子数据组;基于该第三计算资源处理该第一子数据组。
该计算平台可以包括移动计算平台或云端计算平台。该移动计算平台可以包括车载计算平台或智能机器人上装配的计算平台,车载计算平台例如可以是车机、车载芯片、车载处理器以及前述的计算平台120或计算平台200。该云端计算平台可以是服务器或无人作业场景下控制室中的计算平台。
可选地,该处理单元810还可以用于,记录数据处理过程中产生的关键信息,该关键信息包括预估处理时延、实际处理时延、期望处理时延、切分策略、对应计算资源的使用情况、计算合并操作记录、调度器调度队列的相关信息等中的至少一项;分析该关键信息,并根据分析结果调整数据处理的相关配置,该相关配置包括期望处理时延的阈值、可选计算资源、计算资源的选择策略、切分策略更新周期等中的至少一项。
可选地,该处理单元810还可以用于,在该预估处理时延小于该期望处理时延时,基于第一计算资源处理该第一数据组,并在处理该第一数据组后等待设定时间后返回处理结果,该设定时间为该期望处理时延与该预估处理时延之差。
可选地,期望处理时延可以根据该第一APP对应的多个历史处理时延确定。
可选地,期望处理时延可以满足区间:[T-σ,T+σ],其中,T为该多个历史处理时延的平均值,σ为该多个历史处理时延的标准差。
可选地,该多个第二计算资源可以包括:SVE、CPU、GPU、DVPP、ISP、AI核、矢量核等中的至
少一种。
图9是本申请实施例提供的数据处理装置的硬件结构示意性框图。可选地,该装置900具体可以是一种计算机设备。该装置900包括存储器910、处理器920以及通信接口930。其中,存储器910、处理器920、通信接口930可以通过总线实现彼此之间的通信连接。
存储器910可以是只读存储器(read-only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器910可以存储程序,当存储器910中存储的程序被处理器920执行时,处理器920用于执行本申请实施例的方法300、600或700中的各个步骤。
处理器920可以采用CPU、微处理器、ASIC、GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请方法实施例的方法300、600或700中的各个步骤。
处理器920还可以是一种集成电路芯片,具有信号处理能力。在实现过程中,本申请的方法300、600或700中的各个步骤可以通过处理器920中的硬件的集成逻辑电路或者软件形式的指令完成。
通信接口930使用例如但不限于收发器一类的收发装置,来实现装置900与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当该指令在计算机上运行时,使得该计算机执行用于执行上述方法300、600或700中的各个步骤。
本申请实施例还提供了一种计算机程序产品,包含指令,当该指令在计算机上运行时,上述方法300、600或700中的各个步骤被执行。
本申请实施例还提供了一种计算设备,包括:至少一个处理器和存储器,该至少一个处理器与该存储器耦合,用于读取并执行该存储器中的指令,以执行上述方法300、600或700中的各个步骤。
本申请实施例还提供了一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述方法300、600或700中的各个步骤,或该芯片通过硬件电路执行上述方法300、600或700中的各个步骤。
本申请实施例还提供了一种智能驾驶设备,包括上述装置800和/或装置900,上述装置800和/或装置900可以应用于移动计算平台。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (24)
- 一种数据处理方法,其特征在于,包括:确定第一数据组的预估处理时延,所述第一数据组对应第一应用程序,所述第一应用程序指定第一计算资源处理所述第一数据组;在所述预估处理时延大于期望处理时延时,切分所述第一数据组得到多个子数据组;基于多个第二计算资源并行处理所述多个子数据组,得到多个子处理结果;合并所述多个子处理结果得到所述第一数据组的处理结果,所述并行处理的时延和合并所述多个处理结果的时延之和满足所述期望处理时延。
- 根据权利要求1所述的方法,其特征在于,在切分所述第一数据组之前,所述方法还包括:确定所述第一数据组对应的切分策略,所述切分策略包括所述多个子数据组中每个子数据组的首尾索引和每个子数据组对应的第二计算资源;根据所述切分策略切分所述第一数据组。
- 根据权利要求1或2所述的方法,其特征在于,在所述基于多个第二计算资源并行处理所述多个子数据组之前,所述方法还包括:基于确定性调度器将所述多个子数据组分别调度至所述多个第二计算资源。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:将所述多个第二计算资源中的至少一个标记为专用计算资源,所述专用计算资源只能被所述确定性调度器调度。
- 根据权利要求2所述的方法,其特征在于,按照如下策略中的至少一项确定所述切分策略:根据所述第一应用程序先前已使用的计算资源确定所述切分策略;根据切分所述第一应用程序的在先数据组得到的子数据组的首尾索引以及对应的计算资源确定所述切分策略;根据切分所述第一应用程序的在先数据组得到的子数据组的首索引对应的计算资源以及所述对应计算资源的实际负载情况确定所述切分策略。
- 根据权利要求1至5中任一项所述的方法,其特征在于,所述方法应用于计算平台,所述计算平台包括缓存,所述缓存中存储有所述第一应用程序对应的切分记录,所述切分记录包括第一首尾索引和第三计算资源的对应关系,所述方法包括:根据所述第一首尾索引切分所述第一数据组,得到所述第一首尾索引对应的第一子数据组;基于所述第三计算资源处理所述第一子数据组;所述计算平台包括移动计算平台或云端计算平台。
- 根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:记录数据处理过程中产生的关键信息,所述关键信息包括预估处理时延、实际处理时延、期望处理时延、切分策略、对应计算资源的使用情况、计算合并操作记录、调度器调度队列的相关信息中的至少一项;分析所述关键信息,并根据分析结果调整数据处理的相关配置,所述相关配置包括期望处理时延的阈值、可选计算资源、计算资源的选择策略、切分策略更新周期中的至少一项。
- 根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:在所述预估处理时延小于所述期望处理时延时,基于所述第一计算资源处理所述第一数据组,并在处理所述第一数据组后等待设定时间后返回处理结果,所述设定时间为所述期望处理时延与所述预估处理时延之差。
- 根据权利要求8所述的方法,其特征在于,所述期望处理时延根据所述第一应用程序对应的多个历史处理时延确定。
- 根据权利要求9所述的方法,其特征在于,所述期望处理时延满足区间:[T-σ,T+σ],其中,T为所述多个历史处理时延的平均值,σ为所述多个历史处理时延的标准差。
- 根据权利要求1至10中任一项所述的方法,其特征在于:所述多个第二计算资源包括:可伸缩矢量扩展SVE、中央处理器CPU、图形处理器GPU、数字视觉 预处理DVPP、图像处理器ISP、人工智能AI核、矢量核中的至少一种;所述第一数据组包括智能驾驶场景中需要处理的数据。
- 一种数据处理装置,其特征在于,所述装置包括处理单元和多个计算资源,所述处理单元用于,确定第一数据组的预估处理时延,所述第一数据组对应第一应用程序,所述第一应用程序指定第一计算资源处理所述第一数据组;在所述预估处理时延大于期望处理时延时,切分所述第一数据组得到多个子数据组;基于多个第二计算资源并行处理所述多个子数据组,得到多个子处理结果;以及,合并所述多个子处理结果得到所述第一数据组的处理结果,所述并行处理的时延和合并所述多个处理结果的时延之和满足所述期望处理时延,所述第一计算资源和所述第二计算资源属于所述多个计算资源。
- 根据权利要求12所述的装置,其特征在于,所述处理单元还用于,确定所述第一数据组对应的切分策略,所述切分策略包括所述多个子数据组中每个子数据组的首尾索引和每个子数据组对应的第二计算资源;以及,根据所述切分策略切分所述第一数据组。
- 根据权利要求12或13所述的装置,其特征在于,所述处理单元还用于,基于确定性调度器将所述多个子数据组分别调度至所述多个第二计算资源。
- 根据权利要求14所述的装置,其特征在于,所述处理单元还用于,将所述多个第二计算资源中的至少一个标记为专用计算资源,所述专用计算资源只能被所述确定性调度器调度。
- 根据权利要求13所述的装置,其特征在于,所述处理单元还用于,按照如下策略中的至少一项确定所述切分策略:根据所述第一应用程序先前已使用的计算资源确定所述切分策略;根据切分所述第一应用程序的在先数据组得到的子数据组的首尾索引以及对应的计算资源确定所述切分策略;根据切分所述第一应用程序的在先数据组得到的子数据组的首索引对应的计算资源以及所述对应计算资源的实际负载情况确定所述切分策略。
- 根据权利要求12至16中任一项所述的装置,其特征在于,所述装置应用于计算平台,所述计算平台包括缓存,所述缓存中存储有所述第一应用程序对应的切分记录,所述切分记录包括第一首尾索引和第三计算资源的对应关系,所述处理单元还用于,根据所述第一首尾索引切分所述第一数据组,得到所述第一首尾索引对应的第一子数据组;基于所述第三计算资源处理所述第一子数据组。
- 根据权利要求12至17中任一项所述的装置,其特征在于,所述处理单元还用于,记录数据处理过程中产生的关键信息,所述关键信息包括预估处理时延、实际处理时延、期望处理时延、切分策略、对应计算资源的使用情况、计算合并操作记录、调度器调度队列的相关信息中的至少一项;分析所述关键信息,并根据分析结果调整数据处理的相关配置,所述相关配置包括期望处理时延的阈值、可选计算资源、计算资源的选择策略、切分策略更新周期中的至少一项。
- 根据权利要求12至18中任一项所述的装置,其特征在于,所述处理单元还用于,在所述预估处理时延小于所述期望处理时延时,基于所述第一计算资源处理所述第一数据组,并在处理所述第一数据组后等待设定时间后返回处理结果,所述设定时间为所述期望处理时延与所述预估处理时延之差。
- 根据权利要求19所述的装置,其特征在于,所述期望处理时延根据所述第一应用程序对应的多个历史处理时延确定。
- 根据权利要求20所述的装置,其特征在于,所述期望处理时延满足区间:[T-σ,T+σ],其中,T为所述多个历史处理时延的平均值,σ为所述多个历史处理时延的标准差。
- 根据权利要求12至21中任一项所述的装置,其特征在于:所述多个第二计算资源包括:可伸缩矢量扩展SVE、中央处理器CPU、图形处理器GPU、数字视觉预处理DVPP、图像处理器ISP、人工智能AI核、矢量核中的至少一种;所述第一数据组包括智能驾驶场景中需要处理的数据。
- 一种数据处理装置,其特征在于,包括输入输出接口、处理器和存储器,所述处理器用于控制输入输出接口收发信号或信息,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述装置运行如权利要求1至11中任一项所述的方法。
- 一种智能驾驶设备,其特征在于,包括如权利要求12至23中任意一项所述的装置,所述装置应用于移动计算平台。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310706247.4A CN119201366A (zh) | 2023-06-14 | 2023-06-14 | 数据处理方法、装置和智能驾驶设备 |
| CN202310706247.4 | 2023-06-14 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024255752A1 true WO2024255752A1 (zh) | 2024-12-19 |
Family
ID=93851383
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2024/098589 Ceased WO2024255752A1 (zh) | 2023-06-14 | 2024-06-12 | 数据处理方法、装置和智能驾驶设备 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN119201366A (zh) |
| WO (1) | WO2024255752A1 (zh) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103064935A (zh) * | 2012-12-24 | 2013-04-24 | 深圳先进技术研究院 | 一种多媒体数据并行处理系统及方法 |
| CN112287609A (zh) * | 2020-12-28 | 2021-01-29 | 之江实验室 | 一种面向机器人任务划分的端、边、云协同计算装置 |
| CN115357339A (zh) * | 2022-08-15 | 2022-11-18 | 支付宝(杭州)信息技术有限公司 | 计算资源的配置方法及装置 |
| US20220414503A1 (en) * | 2021-06-23 | 2022-12-29 | Korea Advanced Institute Of Science And Technology | Slo-aware artificial intelligence inference scheduler for heterogeneous processors in edge platforms |
-
2023
- 2023-06-14 CN CN202310706247.4A patent/CN119201366A/zh active Pending
-
2024
- 2024-06-12 WO PCT/CN2024/098589 patent/WO2024255752A1/zh not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103064935A (zh) * | 2012-12-24 | 2013-04-24 | 深圳先进技术研究院 | 一种多媒体数据并行处理系统及方法 |
| CN112287609A (zh) * | 2020-12-28 | 2021-01-29 | 之江实验室 | 一种面向机器人任务划分的端、边、云协同计算装置 |
| US20220414503A1 (en) * | 2021-06-23 | 2022-12-29 | Korea Advanced Institute Of Science And Technology | Slo-aware artificial intelligence inference scheduler for heterogeneous processors in edge platforms |
| CN115357339A (zh) * | 2022-08-15 | 2022-11-18 | 支付宝(杭州)信息技术有限公司 | 计算资源的配置方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119201366A (zh) | 2024-12-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12596571B2 (en) | Instruction sets for generating schedules for task execution in computing systems | |
| CN114327843B (zh) | 任务调度方法及装置 | |
| US20230022294A1 (en) | Method for Scheduling Hardware Accelerator and Task Scheduler | |
| JP7811515B2 (ja) | システム・オン・チップのプログラム可能なビジョン・アクセラレータ用内蔵自己テスト | |
| US20230111014A1 (en) | Using a hardware sequencer in a direct memory access system of a system on a chip | |
| JP2023021911A (ja) | システム・オン・チップにおいて、ただ1回のサイクルで複数ポイントのテーブル・ルックアップを実行すること | |
| US20240296068A1 (en) | Execution schedule switching for task management of computing systems | |
| CN115509986A (zh) | 核间通信方法、电子设备及存储介质 | |
| CN117501278A (zh) | 运算加速方法及运算加速器 | |
| US20240428596A1 (en) | Object track management for autonomous systems and applications | |
| JP7839704B2 (ja) | ベクトル・プロセッサを使用して、システム・オン・チップにおいて特徴追跡動作のためのダイレクト・メモリ・アクセス・システムを設定すること | |
| JP2023021912A (ja) | システム・オン・チップの分離式ルックアップ・テーブル・アクセラレータを使用してテーブルのルックアップを高速化すること | |
| CN117112165A (zh) | 虚拟现实应用任务的处理方法、装置、虚拟现实系统 | |
| WO2024255752A1 (zh) | 数据处理方法、装置和智能驾驶设备 | |
| US11630730B1 (en) | Data processing pipeline error recovery | |
| US20250165288A1 (en) | EXECUTION SCHEDULE PARTITIONING for Computing Systems | |
| Elliott et al. | Gpusync: Architecture-aware management of gpus for predictable multi-gpu real-time systems | |
| US20240410726A1 (en) | Synchronizing multi-modal sensor measurements for object tracking in autonomous systems and applications | |
| WO2024067080A1 (zh) | 带宽调整方法、装置及智能驾驶设备 | |
| JP2022507939A (ja) | 調整されたコンポーネントインターフェース制御フレームワーク | |
| CN117742941A (zh) | 一种工程机械算力扩展方法、装置、芯片及存储介质 | |
| WO2018107394A1 (en) | I/o emulation abortion in virtualized environments | |
| CN118525269B (zh) | 计算资源的调用方法、调用装置及智能驾驶设备 | |
| CN121070837B (zh) | 中断上报处理电路及电子装置 | |
| US12333340B1 (en) | Data processing pipeline horizontal scaling |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24822701 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |