Startup control method, device, vehicle, storage medium and program product

By dividing multiple nodes associated with autonomous driving functions into multiple nodes in parallel startup, the problem of launching for a long time for the startup function of the autonomous driving function has been solved, and the startup speed and user experience are improved.

CN118953416BActive Publication Date: 2025-01-28XIAOMI EV TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411419677.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-11
Publication Date
2025-01-28
Estimated Expiration
2044-10-11

AI Technical Summary

Technical Problem

The startup of the autonomous driving function takes a long time, which affects the user experience.

Method used

By determining multiple nodes associated with autonomous driving function, and according to the expected launch time of the node, the node is divided into multiple node groups to ensure that the difference between the total start time of different node groups is less than the threshold, and then these node groups are launched parallel to start in parallel to these node groups Essence

Benefits of technology

By starting the node parallel startup, the starting speed of the node is significantly improved, thereby accelerating the startup process of autonomous driving function and improving the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118953416B_ABST
    Figure CN118953416B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a startup control method, device, vehicle, storage medium and program product, which belongs to the field of autonomous driving technology. The method includes: determining multiple nodes associated with the autonomous driving function; dividing the multiple nodes into multiple node groups according to the expected startup time of the nodes, the difference between the total startup time of different node groups is less than a threshold value, and the total startup time is the sum of the expected startup time of the nodes in the node group; and starting the multiple node groups in parallel. In this way, by dividing the multiple nodes associated with the autonomous driving function into multiple node groups for parallel startup, it is helpful to improve the startup speed of the nodes, and then help to improve the startup speed of the autonomous driving function.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of autonomous driving technology, and in particular to a startup control method, device, vehicle, storage medium, and program product. Background Art

[0002] Autonomous driving is a technology that uses sensors, artificial intelligence and control systems to enable vehicles to autonomously perceive the environment and drive safely. When using the autonomous driving function, you need to start the software related to the autonomous driving function. However, in relevant scenarios, these startups take a long time, which may affect the user experience. Summary of the invention

[0003] In order to overcome the problems existing in the related art, the present disclosure provides a startup control method, device, vehicle, storage medium and program product.

[0004] According to a first aspect of an embodiment of the present disclosure, there is provided a startup control method, comprising:

[0005] Identify multiple nodes associated with the autonomous driving function;

[0006] According to the estimated startup time of the nodes, the multiple nodes are divided into multiple node groups, the difference between the total startup time of different node groups is less than a threshold, and the total startup time is the sum of the estimated startup time of the nodes in the node group;

[0007] The plurality of node groups are started in parallel.

[0008] Optionally, dividing the multiple nodes into multiple node groups according to the estimated startup duration of the nodes includes:

[0009] For the target node group of the current node to be allocated, determining the target startup duration of the target node group;

[0010] According to the estimated startup time of the node, selecting a first value number of nodes from the nodes that have not been grouped among the multiple nodes, wherein the difference between the total startup time of the first value number of nodes and the target startup time is the smallest;

[0011] The target node group is generated according to the first numerical number of nodes.

[0012] Optionally, determining a target startup duration of the target node group of the current node to be allocated includes:

[0013] Determine a first startup duration according to the total startup duration of the node group that has completed grouping;

[0014] Determine a second startup duration according to the number of node groups that have not yet been grouped and the estimated startup duration of the nodes that have not yet been grouped;

[0015] A larger one of the first startup duration and the second startup duration is determined as the target startup duration.

[0016] Optionally, determining the first startup duration according to the total startup duration of the grouped node groups includes:

[0017] For the node groups that have been grouped, determining the maximum value of the total startup duration of the node groups to obtain the first startup duration;

[0018] The determining the second startup duration according to the number of the node groups that have not yet been grouped and the estimated startup duration of the nodes that have not yet been grouped includes:

[0019] Calculate the number of the node groups that have not been grouped according to the total number of the determined node groups and the number of the node groups that have been grouped;

[0020] Based on the total startup duration of the nodes that have not yet been grouped and the number of the node groups that have not yet been grouped, the average startup duration of the node groups that have not yet been grouped is calculated to obtain the second startup duration.

[0021] Optionally, generating the target node group according to the first numerical number of nodes includes:

[0022] Calculate the difference between the total startup time of the first number of nodes and the target startup time to obtain a first difference value;

[0023] Calculate the difference between the total startup time of the nodes that have not yet been grouped and the target startup time to obtain the difference time;

[0024] Selecting a second value number of nodes from the nodes that have not been grouped, wherein a second difference between the total startup duration of the second value number of nodes and the difference duration is the smallest;

[0025] The target node group is generated according to the first difference value, the second difference value, the first numerical number of nodes, the second numerical number of nodes, and the nodes that have not yet been grouped.

[0026] Optionally, generating the target node group according to the first difference value, the second difference value, the first numerical value of nodes, the second numerical value of nodes, and the nodes that have not yet been grouped includes:

[0027] When the first difference value is less than or equal to the second difference value, determining the first value number of nodes as the target node group;

[0028] When the first difference value is greater than the second difference value, determine the nodes other than the second value number of nodes among the nodes that have not been grouped, and obtain the remaining nodes;

[0029] The remaining nodes are determined as the target node group.

[0030] Optionally, dividing the multiple nodes into multiple node groups according to the estimated startup duration of the nodes includes:

[0031] When the number of node groups that have been grouped reaches the total number of determined node groups and there are nodes that have not been grouped, the nodes that have not been grouped are allocated to the node groups that have been grouped.

[0032] Optionally, the allocating the ungrouped nodes to the group of grouped nodes comprises:

[0033] Determine the node with the longest estimated startup time among the nodes that have not been grouped, and obtain the target node;

[0034] Determine the node group with the shortest total startup time among the node groups that have completed grouping;

[0035] The target node is allocated to the node group with the shortest total startup time.

[0036] Optionally, the startup control method includes:

[0037] For the node, obtaining multiple historical startup durations of the node;

[0038] An estimated startup duration of the node is determined according to the multiple historical startup durations.

[0039] Optionally, the multiple nodes are nodes in the same process, and the dividing the multiple nodes into multiple node groups according to the estimated startup duration of the nodes includes:

[0040] determining the number of threads within the process;

[0041] According to the estimated startup time of the node, the plurality of nodes are divided into a plurality of node groups corresponding to the number of threads;

[0042] The step of starting the plurality of node groups in parallel comprises:

[0043] For different node groups, nodes in the node groups are started in parallel through different threads.

[0044] According to a second aspect of an embodiment of the present disclosure, there is provided a startup control device, comprising:

[0045] A first module is configured to determine a plurality of nodes associated with an autonomous driving function;

[0046] A second module is configured to divide the multiple nodes into multiple node groups according to the expected startup time of the nodes, the difference between the total startup time of different node groups is less than a threshold, and the total startup time is the sum of the expected startup time of the nodes in the node group;

[0047] The third module is configured to start the multiple node groups in parallel.

[0048] Optionally, the second module includes:

[0049] The first submodule is configured to determine a target startup duration of the target node group for the current target node group to be assigned;

[0050] A second submodule is configured to select a first value number of nodes from the nodes that have not been grouped among the multiple nodes according to the estimated startup time of the node, and the difference between the total startup time of the first value number of nodes and the target startup time is the smallest;

[0051] The third submodule is configured to generate the target node group according to the first numerical number of nodes.

[0052] Optionally, the first submodule includes:

[0053] The first subunit is configured to determine a first startup duration according to a total startup duration of the node group that has completed grouping;

[0054] The second subunit is configured to determine a second startup duration according to the number of node groups that have not yet been grouped and the estimated startup duration of the nodes that have not yet been grouped;

[0055] The third subunit is configured to determine a larger one of the first startup duration and the second startup duration as the target startup duration.

[0056] Optionally, the first subunit is configured as:

[0057] For the node groups that have been grouped, determining the maximum value of the total startup duration of the node groups to obtain the first startup duration;

[0058] The second subunit is configured as follows:

[0059] Calculate the number of the node groups that have not been grouped according to the total number of the determined node groups and the number of the node groups that have been grouped;

[0060] Based on the total startup duration of the nodes that have not yet been grouped and the number of the node groups that have not yet been grouped, the average startup duration of the node groups that have not yet been grouped is calculated to obtain the second startup duration.

[0061] Optionally, the third submodule includes:

[0062] A fourth subunit is configured to calculate a difference between the total startup duration of the first number of nodes and the target startup duration to obtain a first difference value;

[0063] A fifth subunit is configured to calculate the difference between the total startup time of the nodes that have not yet been grouped and the target startup time to obtain the difference time;

[0064] A sixth subunit is configured to select a second value number of nodes from the nodes that have not been grouped, and a second difference between the total startup duration of the second value number of nodes and the difference duration is the smallest;

[0065] The seventh subunit is configured to generate the target node group according to the first difference value, the second difference value, the first numerical number of nodes, the second numerical number of nodes, and the nodes that have not yet been grouped.

[0066] Optionally, the seventh subunit is configured as:

[0067] When the first difference value is less than or equal to the second difference value, determining the first value number of nodes as the target node group;

[0068] When the first difference value is greater than the second difference value, determine the nodes other than the second value number of nodes among the nodes that have not been grouped, and obtain the remaining nodes;

[0069] The remaining nodes are determined as the target node group.

[0070] Optionally, the second module includes:

[0071] The fourth submodule is configured to, when the number of node groups that have been grouped reaches the total number of determined node groups and there are nodes that have not been grouped, allocate the nodes that have not been grouped to the node groups that have been grouped.

[0072] Optionally, the fourth submodule includes:

[0073] An eighth subunit is configured to determine a node with the longest estimated startup time among the nodes that have not yet been grouped, and obtain a target node;

[0074] A ninth subunit is configured to determine, among the node groups that have completed grouping, a node group with a minimum total startup time;

[0075] The tenth subunit is configured to allocate the target node to the node group with the shortest total startup time.

[0076] Optionally, the startup control device includes:

[0077] The fourth module is configured to obtain, for the node, multiple historical startup durations of the node;

[0078] The fifth module is configured to determine the expected startup duration of the node based on the multiple historical startup durations.

[0079] Optionally, the multiple nodes are nodes in the same process, and the second module includes:

[0080] A fifth submodule is configured to determine the number of threads in the process;

[0081] A sixth submodule is configured to divide the plurality of nodes into a plurality of node groups corresponding to the number of threads according to the estimated startup duration of the nodes;

[0082] The third module is configured as follows:

[0083] For different node groups, nodes in the node groups are started in parallel through different threads.

[0084] According to a third aspect of an embodiment of the present disclosure, a vehicle is provided, comprising:

[0085] processor;

[0086] a memory for storing processor-executable instructions;

[0087] The processor is configured to execute the steps of any one of the methods described in the first aspect.

[0088] According to a fourth aspect of an embodiment of the present disclosure, there is provided a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps of any one of the methods described in the first aspect are implemented.

[0089] According to a fifth aspect of an embodiment of the present disclosure, a computer program product is provided, including a computer program, which implements the steps of any one of the methods in the first aspect when executed by a processor.

[0090] In the above scheme, multiple nodes associated with the autonomous driving function can be determined, and according to the estimated startup time of the nodes, the multiple nodes can be divided into multiple node groups for parallel startup. The difference between the total startup time of different node groups is less than a threshold value, and the total startup time is the sum of the estimated startup time of the nodes in the node group. In this way, by dividing the multiple nodes associated with the autonomous driving function into multiple node groups for parallel startup, it is helpful to improve the startup speed of the nodes, and further help to improve the startup speed of the autonomous driving function.

[0091] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0092] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the present disclosure.

[0093] Figure 1 The diagram is a schematic diagram showing a node startup according to an exemplary embodiment.

[0094] Figure 2 The figure is a flow chart showing a startup control method according to an exemplary embodiment.

[0095] Figure 3 is a flowchart of an implementation of step S22 according to an exemplary embodiment.

[0096] Figure 4 is a flowchart of an implementation of step S33 according to an exemplary embodiment.

[0097] Figure 5 The figure is a block diagram of a startup control device according to an exemplary embodiment.

[0098] Figure 6 is a block diagram of a vehicle according to an exemplary embodiment. DETAILED DESCRIPTION

[0099] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present disclosure. Instead, they are merely examples of devices and methods consistent with some aspects of the present disclosure as detailed in the appended claims.

[0100] Before introducing the startup control method, device, vehicle, storage medium, and program product of the present disclosure, the relevant scenarios of the embodiments of the present disclosure are first described.

[0101] Autonomous driving is a technology that uses sensors, artificial intelligence, and control systems to enable vehicles to autonomously perceive the environment and drive safely. The perception, positioning, and control modules in autonomous driving can be abstracted into several standard computing modules, which can be called nodes. The complete calculation is achieved through the flow of data frames between nodes.

[0102] As autonomous driving functions develop, a complete autonomous driving function may require the use of hundreds of nodes, which are distributed and run on several processes. Considering the overhead of the operating system and inter-process communication, the number of processes is often much smaller than the number of nodes, so there may be multiple nodes on each process.

[0103] According to relevant standards, EM (Execution Management) is the execution management module of autonomous driving software, and its management content includes initialization, startup and exit of autonomous driving applications. Generally speaking, after the autonomous driving control domain starts to power on, the operating system on the SoC (System on Chip) side is initialized, and then EM is started as the entry program of the autonomous driving software. During the startup phase of the autonomous driving software, EM starts all processes and then all nodes. After all nodes have completed the initialization logic, the entire autonomous driving software is in a usable state.

[0104] The startup time of the autonomous driving software can include the startup time of the operating system and the startup time of the node. Among them, the startup time of the operating system is relatively fixed, so the startup time of the node has a greater impact on the startup time of the autonomous driving software.

[0105] Figure 1 FIG. 1 is a schematic diagram of a node startup shown in an exemplary embodiment of the present disclosure. Figure 1 , the autonomous driving function software may involve process A, process B and process C, where process A includes 5 nodes, process B includes 3 nodes, and process C includes 4 nodes. At startup, each node inside the process can be opened serially. Since the autonomous driving function may require the support of each node, even if the nodes in processes B and C have been started, it is necessary to wait for the nodes in process A to start before starting the autonomous driving function. This results in a slow startup speed.

[0106] To this end, an embodiment of the present disclosure provides a startup control method. Figure 2 is a flowchart of a startup control method shown in an exemplary embodiment of the present disclosure, referring to Figure 2 , the startup control method comprises:

[0107] In step S21, a plurality of nodes associated with the autonomous driving function are determined.

[0108] In step S22, the multiple nodes are divided into multiple node groups according to the expected startup time of the nodes.

[0109] Wherein, the difference value between the total startup durations of different node groups is less than a threshold value, and the total startup duration is the sum of the expected startup durations of the nodes in the node group. The difference value may describe the difference between the total startup durations of the different node groups. In a possible implementation, the difference value may be the variance of the total startup durations of each node group.

[0110] In step S23, multiple node groups are started in parallel.

[0111] In this way, by dividing the multiple nodes associated with the autonomous driving function into multiple node groups and starting them in parallel, it helps to improve the startup speed of the nodes, and further helps to improve the startup speed of the autonomous driving function.

[0112] The following is an exemplary description of the implementation of the above steps S21 to S23.

[0113] In step S21, multiple nodes associated with the autonomous driving function are determined. The nodes may include computing modules involved in the autonomous driving function, such as computing modules obtained by segmenting the perception, positioning, control and other modules in the autonomous driving function.

[0114] In step S22, the multiple nodes are divided into multiple node groups according to the expected startup time of the nodes.

[0115] In a possible implementation, multiple historical startup durations of the node may be acquired for the node, so that the estimated startup duration of the node may be determined according to the multiple historical startup durations.

[0116] For example, after the automatic driving function is started, the startup time of each node in the current startup process can be saved locally. In this way, when the automatic driving function is started next time, the saved historical startup time of each node can be read, and the estimated startup time can be determined according to the historical startup time of the node.

[0117] For example, in one implementation, for each node, the average startup duration of the node may be calculated based on multiple historical startup durations of the node. In this way, the average startup duration may be determined as the estimated startup duration of the node during this startup.

[0118] In one implementation, the median of the values ​​of multiple historical startup durations of the node may also be determined. In this way, the median may be determined as the estimated startup duration for this startup.

[0119] Figure 3 is an implementation flow chart of step S22 shown in an exemplary embodiment of the present disclosure, referring to Figure 3 , the multiple nodes are divided into multiple node groups according to the expected startup time of the nodes, including:

[0120] In step S31, for the target node group of the current node to be allocated, a target startup duration of the target node group is determined.

[0121] In a possible implementation, the target startup duration may be preset for each node group, and the target startup duration may be an empirical value set based on demand.

[0122] In a possible implementation, the first startup duration may also be determined according to the total startup duration of the grouped node groups. As an example, the maximum value of the total startup duration of the grouped node groups may be determined to obtain the first startup duration.

[0123] For example, if the node groups that have been grouped are node group 1 and node group 2, the total startup time of node group 1 is 20ms, and the total startup time of node group 2 is 30ms. In this way, the total startup time of the larger node group 2 can be determined as the first startup time. By selecting the maximum value of the total startup time as the first startup time, it helps to accelerate the convergence of the calculation process and improve the node startup speed.

[0124] It should be noted that, in a possible implementation, the first startup duration may also be determined in other ways based on demand. For example, the average total startup duration of the node groups that have been grouped may be calculated to obtain the first startup duration.

[0125] In addition, the second startup duration may be determined according to the number of node groups that have not yet been grouped and the estimated startup duration of the nodes that have not yet been grouped.

[0126] As an example, the number of the node groups that have not been grouped can be calculated based on the total number of determined node groups and the number of the node groups that have been grouped. In this way, the average startup time of the node groups that have not been grouped can be calculated based on the total startup time of the nodes that have not been grouped and the number of the node groups that have not been grouped, to obtain the second startup time.

[0127] For example, if the total number of determined node groups is 5, the number of node groups that have completed grouping is 2, and the total startup time of the nodes that have not completed grouping is 120ms. In this way, it can be determined that the number of node groups that have not completed grouping is 3, and the average startup time of the three node groups is 120 / 3=40ms. That is, the second startup time is 40ms at this time.

[0128] After determining the first startup duration and the second startup duration, the larger one of the first startup duration and the second startup duration can be determined as the target startup duration. Using the above example, the first startup duration is 30ms and the second startup duration is 40ms, so the target startup duration can be determined to be 40ms.

[0129] In some implementations, the target startup duration of the i-th node group can be calculated by the following formula: : Among them, S1,…,S i-1 are the total startup time of the 1st to i-1th node groups that have completed grouping, is the average startup time of the remaining node groups for the current i-th node group, Please refer to the calculation process of the second startup duration for the calculation method.

[0130] In the above calculation formula, the target startup duration is the maximum value of the two candidate values. The first candidate value represents the maximum value of the total startup duration of the i-1 node groups that have completed grouping. The second value represents the average startup duration of each node group after the remaining nodes are evenly divided into the remaining ungrouped node groups. Taking the maximum value of the two as the target startup duration of the i-th group can ensure that the calculation process converges as soon as possible.

[0131] Reference Figure 3 In step S32, according to the estimated startup time of the node, a first number of nodes are selected from the nodes that have not been grouped among the multiple nodes, and the difference between the total startup time of the first number of nodes and the target startup time is the smallest.

[0132] In a possible implementation, the difference value may be an absolute value of a difference between the total startup duration and the target startup duration.

[0133] In a possible implementation, the ratio of the total startup duration to the target startup duration may be calculated, and the difference between the ratio and 1 may be calculated, and the absolute value of the difference may be used as the difference value.

[0134] In one implementation, the first numerical value of nodes may be determined by traversing and exhaustively enumerating.

[0135] In one implementation, the first numerical number of nodes may be determined by a solution method for the 01 knapsack problem.

[0136] In step S33, a target node group is generated according to the first numerical number of nodes.

[0137] Figure 4 is an implementation flow chart of step S33 shown in an exemplary embodiment of the present disclosure, referring to Figure 4 , generating a target node group according to the first numerical value of nodes, comprises:

[0138] In step S41, the difference between the total startup duration of a first number of nodes and the target startup duration is calculated to obtain a first difference value.

[0139] Exemplarily, the total startup time of the first value nodes is 40ms, and the target startup time is 50ms. Taking the difference value as the absolute value of the difference between the total startup time and the target startup time as an example, the first difference value may be 10ms.

[0140] In step S42, the difference between the total startup duration of the nodes that have not yet been grouped and the target startup duration is calculated to obtain the difference duration.

[0141] Exemplarily, the total startup time of the nodes that have not yet been grouped may be, for example, 400 ms, and the difference time may be 400-50=350 ms.

[0142] In step S43, a second number of nodes are selected from the nodes that have not been grouped, and the second difference between the total startup duration and the difference duration of the second number of nodes is the smallest.

[0143] Using the above example, a second number of nodes can be selected from the ungrouped nodes, and the second difference between the total startup time of the second number of nodes and 350ms is the smallest. In other words, a second number of nodes can be selected from the ungrouped nodes, so that the total startup time of the second number of nodes is closest to 350ms.

[0144] In step S44, a target node group is generated according to the first difference value, the second difference value, the first numerical value of nodes, the second numerical value of nodes, and nodes that have not yet been grouped.

[0145] For example, in a possible implementation, the first difference value is less than or equal to the second difference value. In this case, the total startup duration of the first number of nodes is closer to the target startup duration, so the first number of nodes can be determined as the target node group.

[0146] In a possible implementation, the first difference value is greater than the second difference value. In this case, the nodes other than the second value number of nodes in the nodes that have not yet been grouped can be determined to obtain the remaining nodes. It should be understood that when the first difference value is greater than the second difference value, the total startup duration of the remaining nodes is closer to the target startup duration relative to the total startup duration of the first value number of nodes. Therefore, the remaining nodes can be determined as the target node group so that the total startup duration of the target node group is closer to the required target startup duration.

[0147] It is also worth noting that Figure 3 The process of generating the target node group shown can be executed multiple times. For example, for each node group to be generated, the node group can be used as the target node group, so as to Figure 3 The process shown generates the target node group.

[0148] Reference Figure 2 After generating multiple node groups, in step S23, the multiple node groups are started in parallel.

[0149] For example, in one possible implementation, multiple node groups may be started in parallel by utilizing the multi-core, high computing power properties of the computing platform.

[0150] In a possible implementation, the multiple nodes are nodes in the same process, and the multiple nodes are divided into multiple node groups according to the estimated startup duration of the nodes, including:

[0151] determining the number of threads within the process;

[0152] According to the estimated startup time of the node, the plurality of nodes are divided into a plurality of node groups corresponding to the number of threads;

[0153] The step of starting the plurality of node groups in parallel comprises:

[0154] For different node groups, nodes in the node groups are started in parallel through different threads.

[0155] For example, if the number of threads in a process is 5, the nodes in the process may be divided into 5 node groups. In this way, each node in a node group may be started by a thread, thereby realizing parallel startup of the 5 node groups.

[0156] In addition, in some implementations, the number of the node groups may also be a preset empirical value, which is not limited in the embodiments of the present disclosure.

[0157] In the above scheme, multiple nodes associated with the autonomous driving function can be determined, and according to the estimated startup time of the nodes, the multiple nodes can be divided into multiple node groups for parallel startup. The difference between the total startup time of different node groups is less than a threshold value, and the total startup time is the sum of the estimated startup time of the nodes in the node group. In this way, by dividing the multiple nodes associated with the autonomous driving function into multiple node groups for parallel startup, it is helpful to improve the startup speed of the nodes, and further help to improve the startup speed of the autonomous driving function.

[0158] In addition, high-concurrency startup nodes may seize computing resources, which may lead to a decrease in startup speed. To this end, the above solution also designs a way to group according to the number of threads or experience values. In this way, limited concurrent startup can be achieved. While using computing resources to concurrently start nodes, the negative impact of excessive concurrency is avoided. In this way, the startup speed of the autonomous driving software can be improved.

[0159] It is also worth noting that the more complex part of the above scheme is the process of determining the nodes in each node group. Considering that this process can be regarded as a 01 knapsack problem, if the number of selected nodes is , the average startup time of each group is , then the time complexity of the 01 knapsack problem is , and the space complexity is 。

[0160] Considering the actual scenario of intelligent driving, the order of magnitude of nodes is 100, and the order of magnitude of time consumption is related to the unit of quantization. If the unit of quantization is given as 1 / 10 second, then its order of magnitude is also 100. In this way, both time and space complexity can be controlled within Based on the computing power currently used in autonomous driving, the complexity is acceptable.

[0161] In some scenarios, after the node groups are grouped, there may still be nodes that have not been grouped. In this case, the multiple nodes are divided into multiple node groups according to the expected startup time of the nodes, including:

[0162] When the number of node groups that have been grouped reaches the total number of determined node groups and there are nodes that have not been grouped, the nodes that have not been grouped are allocated to the node groups that have been grouped.

[0163] In a possible implementation, the nodes that have not yet been grouped may be randomly assigned to the group of nodes that have been grouped.

[0164] In a possible implementation, the node with the longest estimated startup time among the nodes that have not been grouped can also be determined to obtain the target node. And the node group with the shortest total startup time among the node groups that have been grouped can be determined. In this way, the target node can be assigned to the node group with the shortest total startup time.

[0165] By allocating the target node with the longest estimated startup time to the node group with the shortest total startup time, the total startup time of each node group can be more balanced, which helps to improve the startup speed.

[0166] Based on the same inventive concept, an embodiment of the present disclosure provides a startup control device. Figure 5 is a block diagram of a startup control device shown in an exemplary embodiment of the present disclosure, referring to Figure 5 , the startup control device comprises:

[0167] A first module 501 is configured to determine a plurality of nodes associated with an autonomous driving function;

[0168] The second module 502 is configured to divide the multiple nodes into multiple node groups according to the expected startup time of the nodes, the difference between the total startup time of different node groups is less than a threshold, and the total startup time is the sum of the expected startup time of the nodes in the node group;

[0169] The third module 503 is configured to start the multiple node groups in parallel.

[0170] By using the above startup control device, multiple nodes associated with the autonomous driving function can be determined, and according to the estimated startup time of the nodes, the multiple nodes can be divided into multiple node groups for parallel startup. Among them, the difference between the total startup time of different node groups is less than the threshold value, and the total startup time is the sum of the estimated startup time of the nodes in the node group. In this way, by dividing the multiple nodes associated with the autonomous driving function into multiple node groups for parallel startup, it is helpful to improve the startup speed of the nodes, and then help to improve the startup speed of the autonomous driving function.

[0171] Optionally, the second module 502 includes:

[0172] The first submodule is configured to determine a target startup duration of the target node group for the current target node group to be assigned;

[0173] A second submodule is configured to select a first value number of nodes from the nodes that have not been grouped among the multiple nodes according to the estimated startup time of the node, and the difference between the total startup time of the first value number of nodes and the target startup time is the smallest;

[0174] The third submodule is configured to generate the target node group according to the first numerical number of nodes.

[0175] Optionally, the first submodule includes:

[0176] The first subunit is configured to determine a first startup duration according to a total startup duration of the node group that has completed grouping;

[0177] The second subunit is configured to determine a second startup duration according to the number of node groups that have not yet been grouped and the estimated startup duration of the nodes that have not yet been grouped;

[0178] The third subunit is configured to determine a larger one of the first startup duration and the second startup duration as the target startup duration.

[0179] Optionally, the first subunit is configured as:

[0180] For the node groups that have been grouped, determining the maximum value of the total startup duration of the node groups to obtain the first startup duration;

[0181] The second subunit is configured as follows:

[0182] Calculate the number of the node groups that have not been grouped according to the total number of the determined node groups and the number of the node groups that have been grouped;

[0183] Based on the total startup duration of the nodes that have not yet been grouped and the number of the node groups that have not yet been grouped, the average startup duration of the node groups that have not yet been grouped is calculated to obtain the second startup duration.

[0184] Optionally, the third submodule includes:

[0185] A fourth subunit is configured to calculate a difference between the total startup duration of the first number of nodes and the target startup duration to obtain a first difference value;

[0186] A fifth subunit is configured to calculate the difference between the total startup time of the nodes that have not yet been grouped and the target startup time to obtain the difference time;

[0187] A sixth subunit is configured to select a second value number of nodes from the nodes that have not been grouped, and a second difference between the total startup duration of the second value number of nodes and the difference duration is the smallest;

[0188] The seventh subunit is configured to generate the target node group according to the first difference value, the second difference value, the first numerical number of nodes, the second numerical number of nodes, and the nodes that have not yet been grouped.

[0189] Optionally, the seventh subunit is configured as:

[0190] When the first difference value is less than or equal to the second difference value, determining the first value number of nodes as the target node group;

[0191] When the first difference value is greater than the second difference value, determine the nodes other than the second value number of nodes among the nodes that have not been grouped, and obtain the remaining nodes;

[0192] The remaining nodes are determined as the target node group.

[0193] Optionally, the second module 502 includes:

[0194] The fourth submodule is configured to, when the number of node groups that have been grouped reaches the total number of determined node groups and there are nodes that have not been grouped, allocate the nodes that have not been grouped to the node groups that have been grouped.

[0195] Optionally, the fourth submodule includes:

[0196] An eighth subunit is configured to determine a node with the longest estimated startup time among the nodes that have not yet been grouped, and obtain a target node;

[0197] A ninth subunit is configured to determine, among the node groups that have completed grouping, a node group with a minimum total startup time;

[0198] The tenth subunit is configured to allocate the target node to the node group with the shortest total startup time.

[0199] Optionally, the startup control device includes:

[0200] The fourth module is configured to obtain, for the node, multiple historical startup durations of the node;

[0201] The fifth module is configured to determine the expected startup duration of the node based on the multiple historical startup durations.

[0202] Optionally, the multiple nodes are nodes in the same process, and the second module 502 includes:

[0203] A fifth submodule is configured to determine the number of threads in the process;

[0204] A sixth submodule is configured to divide the plurality of nodes into a plurality of node groups corresponding to the number of threads according to the estimated startup duration of the nodes;

[0205] The third module 503 is configured as follows:

[0206] For different node groups, nodes in the node groups are started in parallel through different threads.

[0207] The present disclosure provides a vehicle, including:

[0208] processor;

[0209] a memory for storing processor-executable instructions;

[0210] The processor is configured to execute the steps of the startup control method provided in any embodiment of the present disclosure.

[0211] An embodiment of the present disclosure provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps of the startup control method provided in any embodiment of the present disclosure are implemented.

[0212] An embodiment of the present disclosure provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of the startup control method provided in any embodiment of the present disclosure.

[0213] Regarding the startup control device in the above embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the startup control method, and will not be elaborated here.

[0214] Figure 6 6 is a block diagram of a vehicle 600 according to an exemplary embodiment. For example, the vehicle 600 may be a hybrid vehicle, a non-hybrid vehicle, an electric vehicle, a fuel cell vehicle, or other types of vehicles. The vehicle 600 may be an autonomous vehicle, a semi-autonomous vehicle, or a non-autonomous vehicle.

[0215] Reference Figure 6 , the vehicle 600 may include various subsystems, for example, an infotainment system 610, a perception system 620, a decision control system 630, a drive system 640, and a computing platform 650. The vehicle 600 may also include more or fewer subsystems, and each subsystem may include multiple components. In addition, each subsystem and each component of the vehicle 600 may be interconnected by wire or wireless means.

[0216] In some embodiments, the infotainment system 610 may include a communication system, an entertainment system, and a navigation system, among others.

[0217] The perception system 620 may include several sensors for sensing information about the environment around the vehicle 600. For example, the perception system 620 may include a global positioning system (the global positioning system may be a GPS system, or a Beidou system or other positioning systems), an inertial measurement unit (IMU), a laser radar, a millimeter wave radar, an ultrasonic radar, and a camera.

[0218] The decision control system 630 may include a computing system, a vehicle controller, a steering system, a throttle, and a braking system.

[0219] The drive system 640 may include components that provide powered motion for the vehicle 600. In one embodiment, the drive system 640 may include an engine, an energy source, a transmission system, and wheels. The engine may be one or a combination of an internal combustion engine, an electric motor, and an air compression engine. The engine is capable of converting energy provided by the energy source into mechanical energy.

[0220] Some or all functions of the vehicle 600 are controlled by a computing platform 650. The computing platform 650 may include at least one processor 651 and a memory 652, and the processor 651 may execute instructions 653 stored in the memory 652.

[0221] The processor 651 may be any conventional processor, such as a commercially available CPU. The processor may also include a graphics processor (Graphic Process Unit, GPU), a field programmable gate array (Field Programmable Gate Array, FPGA), a system on chip (System on Chip, SOC), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC) or a combination thereof.

[0222] The memory 652 may be implemented by any type of volatile or nonvolatile memory device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.

[0223] In addition to the instructions 653 , the memory 652 may also store data, such as road maps, route information, and data such as the location, direction, and speed of the vehicle. The data stored in the memory 652 may be used by the computing platform 650 .

[0224] In the embodiment of the present disclosure, the processor 651 may execute the instruction 653 to complete all or part of the steps of the above-mentioned startup control method.

[0225] In addition, the word "exemplary" is used herein to indicate serving as an example, instance, or diagram. Any aspect or design described as "exemplary" in this article is not necessarily understood to be advantageous compared to other aspects or designs. On the contrary, the use of the word exemplary is intended to present concepts in a specific way. As used herein, the term "or" is intended to represent an inclusive "or" rather than an exclusive "or". That is, unless otherwise specified or clear from the context, "X applies A or B" is intended to represent any one of the natural inclusive arrangements. That is, if X applies A; X applies B; or X applies both A and B, "X applies A or B" is satisfied under any of the aforementioned examples. In addition, unless otherwise specified or clearly pointed to a singular form from the context, the articles "one" and "an" as used in this application and the appended claims are generally understood to mean "one or more".

[0226] Likewise, although the present disclosure has been shown and described with respect to one or more implementations, equivalent variations and modifications will occur to those skilled in the art after reading and understanding the specification and drawings. The present disclosure includes all such modifications and variations and is limited only by the scope of the claims. In particular, with respect to the various functions performed by the components (e.g., modules) described above, unless otherwise noted, the terms used to describe such components are intended to correspond to any component (functionally equivalent) that performs the specific functions of the described components, even if the structure is not equivalent to the disclosed structure. In addition, although specific features of the present disclosure may have been disclosed with respect to only one of several implementations, such features may be combined with one or more other features of other implementations as may be desired and beneficial to any given or specific application. In addition, with respect to "including", "having", "having", "having", or variations thereof used in a specific embodiment or claim, such terms are intended to be inclusive in a manner similar to the term "comprising".

[0227] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. This application is intended to cover any modification, use or adaptation of the present disclosure, which follows the general principles of the present disclosure and includes common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The specification and examples are intended to be exemplary only, and the true scope and spirit of the present disclosure are indicated by the appended claims.

[0228] It should be understood that the present disclosure is not limited to the exact structures that have been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

[0229] In addition, unless otherwise specified, the features of some embodiments of the present disclosure described herein may be combined with each other. As used herein, the term "and / or" includes any one of the related listed items and any combination of any two or more; similarly, "at least one of . . . " includes any one of the related listed items and any combination of any two or more.

[0230] Although terms such as "first", "second" and "third" may be used herein to describe various modules, these modules are not limited to these terms. On the contrary, these terms are only used to distinguish one module from another. Therefore, without departing from the teachings of the various examples, the first module mentioned in the examples described herein may also be referred to as the second module. In addition, the terms "first" and "second" are used only for descriptive purposes and cannot be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, the features defined as "first" and "second" may explicitly or implicitly include at least one of the features. In the description herein, the meaning of "multiple" is at least two, such as two, three, etc., unless otherwise clearly and specifically defined.

Claims

1. A startup control method, characterized in that: include: Identify multiple nodes associated with the autonomous driving function; According to the estimated startup time of the nodes, the multiple nodes are divided into multiple node groups, the difference between the total startup time of different node groups is less than a threshold, and the total startup time is the sum of the estimated startup time of the nodes in the node group; Starting the multiple node groups in parallel; The dividing the plurality of nodes into a plurality of node groups according to the estimated startup duration of the nodes comprises: For the target node group of the current node to be allocated, determining the target startup duration of the target node group; According to the estimated startup time of the node, selecting a first value number of nodes from the nodes that have not been grouped among the multiple nodes, wherein the difference between the total startup time of the first value number of nodes and the target startup time is the smallest; The target node group is generated according to the first numerical number of nodes.

2. The method according to claim 1, characterized in that The step of determining a target startup duration of the target node group for the current node to be allocated includes: Determine a first startup duration according to the total startup duration of the node group that has completed grouping; Determine a second startup duration according to the number of node groups that have not yet been grouped and the estimated startup duration of the nodes that have not yet been grouped; A larger one of the first startup duration and the second startup duration is determined as the target startup duration.

3. The method according to claim 2, characterized in that The determining of the first startup duration according to the total startup duration of the node group that has completed grouping includes: For the node groups that have been grouped, determining the maximum value of the total startup duration of the node groups to obtain the first startup duration; The determining the second startup duration according to the number of the node groups that have not yet been grouped and the estimated startup duration of the nodes that have not yet been grouped includes: Calculate the number of the node groups that have not been grouped according to the total number of the determined node groups and the number of the node groups that have been grouped; Based on the total startup duration of the nodes that have not yet been grouped and the number of the node groups that have not yet been grouped, the average startup duration of the node groups that have not yet been grouped is calculated to obtain the second startup duration.

4. The method according to claim 1, characterized in that The generating the target node group according to the first numerical number of nodes includes: Calculate the difference between the total startup time of the first number of nodes and the target startup time to obtain a first difference value; Calculate the difference between the total startup time of the nodes that have not yet been grouped and the target startup time to obtain the difference time; Selecting a second value number of nodes from the nodes that have not been grouped, wherein a second difference between the total startup duration of the second value number of nodes and the difference duration is the smallest; The target node group is generated according to the first difference value, the second difference value, the first numerical number of nodes, the second numerical number of nodes, and the nodes that have not yet been grouped.

5. The method according to claim 4, characterized in that The generating the target node group according to the first difference value, the second difference value, the first numerical value of nodes, the second numerical value of nodes, and the nodes that have not been grouped yet includes: When the first difference value is less than or equal to the second difference value, determining the first value number of nodes as the target node group; When the first difference value is greater than the second difference value, determine the nodes other than the second value number of nodes among the nodes that have not been grouped, and obtain the remaining nodes; The remaining nodes are determined as the target node group.

6. The method according to claim 1, characterized in that The dividing the plurality of nodes into a plurality of node groups according to the estimated startup duration of the nodes comprises: When the number of node groups that have been grouped reaches the total number of determined node groups and there are nodes that have not been grouped, the nodes that have not been grouped are allocated to the node groups that have been grouped.

7. The method according to claim 6, characterized in that The allocating the nodes that have not been grouped yet to the grouped node group includes: Determine the node with the longest estimated startup time among the nodes that have not been grouped, and obtain the target node; Determine the node group with the shortest total startup time among the node groups that have completed grouping; The target node is allocated to the node group with the shortest total startup time.

8. The method according to any one of claims 1 to 7, characterized in that include: For the node, obtaining multiple historical startup durations of the node; An estimated startup duration of the node is determined according to the multiple historical startup durations.

9. The method according to any one of claims 1 to 7, characterized in that The multiple nodes are nodes in the same process, and the multiple nodes are divided into multiple node groups according to the estimated startup time of the nodes, including: determining the number of threads within the process; According to the estimated startup time of the node, the plurality of nodes are divided into a plurality of node groups corresponding to the number of threads; The step of starting the plurality of node groups in parallel comprises: For different node groups, nodes in the node groups are started in parallel through different threads.

10. A startup control device, characterized in that: include: A first module is configured to determine a plurality of nodes associated with an autonomous driving function; A second module is configured to divide the multiple nodes into multiple node groups according to the expected startup time of the nodes, the difference between the total startup time of different node groups is less than a threshold, and the total startup time is the sum of the expected startup time of the nodes in the node group; A third module is configured to start the multiple node groups in parallel; The second module comprises: The first submodule is configured to determine a target startup duration of the target node group for the current target node group to be assigned; A second submodule is configured to select a first value number of nodes from the nodes that have not been grouped among the multiple nodes according to the estimated startup time of the node, and the difference between the total startup time of the first value number of nodes and the target startup time is the smallest; The third submodule is configured to generate the target node group according to the first numerical number of nodes.

11. A vehicle, characterized in that: include: processor; a memory for storing processor-executable instructions; The processor is configured to execute the steps of the method according to any one of claims 1 to 9.

12. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 9 are implemented.

13. A computer program product, characterized in that The invention comprises a computer program, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Task node allocation method and device, electronic equipment and storage medium

    CN116107753A