Bandwidth construction, prediction method and related apparatus
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- YINWANG INTELLIGENT TECHNOLOGIES CO LTD
- Filing Date
- 2024-09-12
- Publication Date
- 2026-07-10
AI Technical Summary
In existing autonomous driving systems, the real-time changes in bandwidth requirements of memory access components lead to wasted bandwidth resources and affect system performance. Furthermore, traditional static configuration cannot accurately predict bandwidth pressure.
By acquiring the bandwidth sampling values of memory access components and the runtime sequence of computing tasks, a fine-grained computing task-level bandwidth distribution is constructed. Combined with bandwidth configuration information, real-time prediction is performed to achieve accurate perception and control of bandwidth pressure.
It improves bandwidth resource utilization, enhances the performance and stability of the autonomous driving system, adapts to system upgrades and iterations, and reduces the frequency requirements of hardware monitoring.
Smart Images

Figure CN122375017A_ABST
Abstract
Description
Bandwidth construction and prediction method and related device TECHNICAL FIELD
[0001] The present application relates to the field of intelligent vehicles, in particular to a bandwidth construction and prediction method and related device. BACKGROUND
[0002] With the enrichment and perfection of the automatic driving system function, more and more businesses run on the intelligent driving platform. For example, the businesses include thread processing on the CPU, artificial intelligence (AI) model inference on the graphics processing unit (GPU), image processing on the image signal processor (ISP), etc. These businesses share the bandwidth resources of the system, and the AI model inference has a large demand for bandwidth resources and is the main factor affecting the performance of the system.
[0003] In order to alleviate the bandwidth competition, static bandwidth flow control configuration (such as setting bandwidth water limit, etc.) is generally used to balance the bandwidth demand among various memory components (CPU, GPU, ISP, etc.). However, the bandwidth of the memory components is fixedly allocated based on experience, and in actual operation, the bandwidth of the memory components changes in real time, which may result in that the bandwidth of the memory components is much smaller than the pre-allocated bandwidth, causing waste of bandwidth resources and affecting the performance of the automatic driving system.
[0004] SUMMARY
[0005] The present application discloses a bandwidth construction and prediction method and related device, which can realize fine-grained bandwidth distribution construction of the operation task level on the memory component to more accurately predict the bandwidth of the memory component, thereby not only improving the utilization rate of bandwidth resources, but also improving the performance of the automatic driving system.
[0006] In a first aspect, the present application provides a bandwidth construction method, which comprises: first, obtaining first bandwidth data and task scheduling information, wherein the first bandwidth data comprises n bandwidth sampling values of a first memory component of a vehicle in a first driving scene, m operation tasks associated with the first driving scene run on the first memory component, and the task scheduling information is used to indicate the running time sequence of the m operation tasks, and n and m are positive integers greater than 1; then, obtaining second bandwidth data according to the first bandwidth data and the task scheduling information, the second bandwidth data being used to indicate the distribution information of the bandwidth of each operation task in the m operation tasks in the time domain in the first driving scene.
[0007] In the method, in the first driving scene, the bandwidth distribution of the operation tasks on the memory component in the first driving scene is constructed by obtaining the bandwidth sampling value of the memory component and the running time sequence of each operation task on the memory component. The operation task level bandwidth distribution is more fine-grained than the memory component level bandwidth distribution, which is conducive to more accurately predicting the bandwidth of the memory component and providing support for the upper-layer business to perceive the bandwidth pressure of the memory component. It is also conducive to improving the utilization rate of bandwidth resources and improving the performance of the autonomous driving system.
[0008] In a possible implementation manner of the first aspect, before the first bandwidth data is obtained, the method further includes: starting the autonomous driving system of the vehicle, and the m operation tasks are scheduled and executed under the condition that the autonomous driving system is started.
[0009] That is, the first bandwidth data and the task scheduling information are obtained in real time or online during the starting and running of the autonomous driving system in the first driving scene. In this way, the online construction of the fine-grained operation task level bandwidth distribution on the memory component can be implemented. This method of constructing the bandwidth distribution does not need to rely on prior calibration or training, and can be applied even if the autonomous driving system is upgraded and iterated.
[0010] In a possible implementation manner of the first aspect, the types to which the m operation tasks belong include at least one of an artificial intelligence (AI) model, a process, and an image signal processing algorithm.
[0011] That is, the m operation tasks can all be of the same type, for example, all being AI models. Alternatively, some of the m operation tasks can be of one type, and the other operation tasks can be of another type. The application scenarios are wide.
[0012] In a possible implementation manner of the first aspect, the task scheduling information includes the running time of each operation task in the m operation tasks.
[0013] Here, the running time can be represented by an absolute time (for example, using the standard time of the national time center), which can make the running time more intuitive and clear. In some schemes, the running time can also be represented in a relative time manner (for example, based on a reference time point and a relative time length), which can effectively reduce the length of the task scheduling information and save the overhead of the resource transmission air interface. In the case where the running time of each operation task is known, the running time sequence of each operation task can be quickly determined.
[0014] In a possible implementation manner of the first aspect, in the collection of the n bandwidth sampling values, each operation task in the m operation tasks is executed at least once.
[0015] Therefore, the task scheduling information also includes the running time of each operation task in each running of the m operation tasks. The more the running times of the operation task, the more the bandwidth data of the operation task obtained, and the higher the accuracy of the bandwidth distribution of the operation task constructed.
[0016] In a possible implementation of the first aspect, the n bandwidth sampling values correspond to n time points, the i th bandwidth sampling value is obtained at the i th time point, the i th bandwidth sampling value is the sum of the bandwidth values of at least one operation task in the m operation tasks at the i th time point, i is a positive integer less than or equal to n; obtaining the second bandwidth data according to the first bandwidth data and the task scheduling information includes: determining a weight matrix according to the task scheduling information, the weight matrix being used to indicate whether each operation task runs at each of the n time points; solving the bandwidth value of each operation task based on the weight matrix and the n bandwidth sampling values; obtaining the second bandwidth data according to the bandwidth value of each operation task.
[0017] By implementing this implementation, since there is a mathematical relationship between the bandwidth sampling value of the memory component and the bandwidth value of the operation task running on the memory component, the bandwidth value of each operation task on the memory component can be solved by using a multiple linear regression method based on the weight matrix and the bandwidth sampling value of the memory component, so that the distribution information of the bandwidth of each operation task in the time domain can be determined.
[0018] In a possible implementation of the first aspect, the weight matrix includes a first weight value, the first weight value being a weight value of the j th operation task at the i th time point, j being a positive integer less than or equal to m; when the first weight value is a first value, the first weight value indicates that the j th operation task runs at the i th time point, and the bandwidth value of the j th operation task at the i th time point is not zero; when the first weight value is a second value, the first weight value indicates that the j th operation task does not run at the i th time point, and the bandwidth value of the j th operation task at the i th time point is zero.
[0019] For example, the first value is "1", and the second value is "0".
[0020] It can be understood that when the first weight value is the first value, it means that the j th operation task is related to the i th bandwidth sampling value, specifically, the bandwidth value of the j th operation task at the i th time point is a component of the i th bandwidth sampling value; when the first weight value is the second value, it means that the j th operation task is not related to the i th bandwidth sampling value.
[0021] In a possible implementation of the first aspect, the first operation task is any one of the m operation tasks, the first operation task has p bandwidth values, p is a positive integer less than or equal to n, the second bandwidth data includes bandwidth data of the first operation task, the bandwidth data of the first operation task is used to indicate distribution information of bandwidth of the first operation task in the time domain in the first driving scene; the second bandwidth data is obtained according to the bandwidth values of each operation task, including: performing fusion according to the p bandwidth values and phase information of the p bandwidth values to obtain the bandwidth data of the first operation task.
[0022] The phase information of the qth bandwidth value in the p bandwidth values is used to indicate a phase offset between a time corresponding to the qth bandwidth value and a start time of running of the first operation task, q is a positive integer less than or equal to p.
[0023] By implementing the implementation, the distribution information of the bandwidth of the first operation task in the time domain can be determined based on the bandwidth values of the first operation task and the phase information of each bandwidth value of the first operation task. The first operation task is any one of the m operation tasks, and therefore the distribution information of the bandwidth of each operation task in the time domain can be obtained, that is, the second bandwidth data is obtained.
[0024] In a possible implementation of the first aspect, in a case where the first operation task performs multiple runs in a first time period, a bandwidth value of a first run of the first operation task includes a first bandwidth value, a bandwidth value of a second run of the first operation task includes a second bandwidth value, the n time points belong to the first time period, and the first bandwidth value and the second bandwidth value both belong to the p bandwidth values; the phase information of the first bandwidth value is used to indicate a phase offset between a time corresponding to the first bandwidth value and a start time of the first run of the first operation task, and the phase information of the second bandwidth value is used to indicate a phase offset between a time corresponding to the second bandwidth value and a start time of the second run of the first operation task.
[0025] Since the bandwidth distribution of the same operation task in the same driving scene has similarity, with an increase in the number of runs of the operation task, the bandwidth data of the operation task is more abundant, and therefore the precision of the bandwidth distribution of the operation task constructed is higher. In this way, without increasing the sampling frequency of the hardware bandwidth monitoring register, the bandwidth of the first memory component monitored by the hardware bandwidth monitoring register at a low frequency for a long time can also make the bandwidth distribution of the operation task constructed reach a high-precision effect.
[0026] In a possible implementation of the first aspect, the method further includes: obtaining first bandwidth configuration information, the first bandwidth configuration information being used to indicate bandwidth requirements of each operation task in the first driving scene, and the first bandwidth configuration information being associated with the second bandwidth data; and determining the bandwidth of the first memory component at the next time according to the first bandwidth configuration information and the task scheduling information.
[0027] Exemplarily, the task scheduling information can be obtained in a historical running process of the automatic driving system in the first driving scene, that is, the task scheduling information is obtained historically; or the task scheduling information can be obtained in a current running process of the automatic driving system in the first driving scene, that is, the task scheduling information is obtained online or in real time.
[0028] In this way, in combination of the first bandwidth configuration information and the task scheduling information, the bandwidth of the first memory component at the next time can be predicted in a timely manner, thereby providing support for the upper-layer service to perceive the bandwidth pressure of the memory component in advance, and enabling the upper-layer service to perceive the bandwidth pressure of the memory component in advance.
[0029] In a possible implementation of the first aspect, the first bandwidth configuration information includes bandwidth performance parameters of each operation task in the first driving scene, and the bandwidth performance parameters include a bandwidth peak value and at least one of the following parameters: a bandwidth average value, an inference duration, and a bandwidth peak value occurrence time.
[0030] By implementing this implementation, the bandwidth performance of each operation task can be known through the first bandwidth configuration information, and the bandwidth performance is not limited to the bandwidth requirement (that is, the bandwidth peak value), but can also be the inference duration, the bandwidth average value, the bandwidth peak value occurrence time, and the like.
[0031] In a possible implementation of the first aspect, obtaining the first bandwidth configuration information includes: sending first information to a network side device, the first information including an identifier of the first driving scene and the second bandwidth data; and receiving the first bandwidth configuration information from the network side device.
[0032] By implementing this implementation, the method can be applied to a vehicle, and after the vehicle locally constructs the second bandwidth data, the vehicle can send the second bandwidth data to the network side device, and the network side device can obtain the first bandwidth configuration information based on the second bandwidth data, so that the vehicle can obtain the first bandwidth configuration information from the network side device, thereby saving the consumption of local computing power of the vehicle.
[0033] In a possible implementation of the first aspect, obtaining the first bandwidth configuration information includes: obtaining the first bandwidth configuration information according to the second bandwidth data.
[0034] In this implementation, the method can be applied to a computing device, which can be a vehicle or a network-side device. The computing device can locally construct the second bandwidth data and obtain the first bandwidth configuration information based on the second bandwidth data, so as to facilitate local and rapid use of the first bandwidth configuration information.
[0035] In a possible implementation of the first aspect, the bandwidth of the first memory access component at the next time is determined according to the first bandwidth configuration information and the task scheduling information, including: according to the task scheduling information, it is determined that the operation task running at the next time of the first memory access component is a second operation task, and the second operation task belongs to the m operation tasks; the bandwidth performance parameter of the second operation task in the first driving scene is obtained by searching the first bandwidth configuration information based on the identifier of the second operation task; and the bandwidth of the first memory access component at the next time is determined according to the bandwidth performance parameter of the second operation task in the first driving scene.
[0036] For example, when the second operation task is one operation task, the bandwidth of the first memory access component at the next time is the bandwidth peak value of the second operation task in the first driving scene; when the second operation task includes multiple operation tasks, the bandwidth of the first memory access component at the next time is the sum of the bandwidth peak values of the multiple operation tasks in the first driving scene.
[0037] By implementing this implementation, the bandwidth pressure distribution of each operation task on the memory access component can be known in advance by obtaining the bandwidth configuration information corresponding to the memory access component in the driving scene in which the vehicle is currently located, in combination with the running time sequence of each operation task on the memory access component, so that the bandwidth of the memory access component at the next time can be determined, and the prediction of the bandwidth pressure of the memory access component is realized.
[0038] In a second aspect, the present application provides a bandwidth prediction method, including: obtaining first bandwidth configuration information, the first bandwidth configuration information being used to indicate the bandwidth demand of each operation task in m operation tasks in a first driving scene, the m operation tasks being run on a first memory access component of a vehicle, the m operation tasks being associated with the first driving scene, and m being a positive integer greater than 1; and obtaining the bandwidth of the first memory access component at the next time according to task scheduling information and the first bandwidth configuration information in the case that the vehicle is in the first driving scene, wherein the task scheduling information is used to indicate the running time sequence of the m operation tasks.
[0039] In the above method, in the automatic driving process, the bandwidth configuration information corresponding to the memory access component in the driving scene in which the vehicle is currently located can be obtained, in combination with the running time sequence of each operation task on the memory access component indicated by the task scheduling information, so that the bandwidth pressure distribution of each operation task on the memory access component can be known in advance, the bandwidth of the memory access component at the next time can be determined, the accuracy of the bandwidth prediction of the memory access component is improved, and the utilization rate of the bandwidth resource and the performance of the automatic driving system are also improved.
[0040] In a possible implementation of the second aspect, the first bandwidth configuration information includes a bandwidth performance parameter of each operation task in the first driving scene, and the bandwidth performance parameter includes a bandwidth peak value and at least one of the following parameters: a bandwidth average value; an inference duration; and a bandwidth peak value occurrence time.
[0041] In a possible implementation of the second aspect, the m operation tasks are scheduled to be executed in a case where an automatic driving system of the vehicle is started.
[0042] In a possible implementation of the second aspect, the type to which the m operation tasks belong includes at least one of an artificial intelligence (AI) model, a process, and an image signal processing algorithm.
[0043] In a possible implementation of the second aspect, the first bandwidth configuration information is associated with target bandwidth data, and the target bandwidth data is used to indicate distribution information of a bandwidth of each operation task of the m operation tasks in the time domain in the first driving scene.
[0044] For example, the first bandwidth configuration information is obtained based on the target bandwidth data.
[0045] The beneficial effects of some embodiments of the second aspect can refer to the description of the beneficial effects of the corresponding features of the first aspect, which will not be repeated here.
[0046] In a possible implementation of the second aspect, the target bandwidth data is obtained by executing the method of the first aspect. Here, the target bandwidth data is the second bandwidth data in the first aspect. In this implementation, the method can be applied to the vehicle, that is, the vehicle can not only perform bandwidth prediction, but also perform construction of the target bandwidth data.
[0047] In a possible implementation of the second aspect, according to the task scheduling information and the first bandwidth configuration information, the bandwidth of the first memory component at the next time point is determined, including: according to the task scheduling information, determining that an operation task running at the next time point of the first memory component is a first operation task, and the first operation task belongs to the m operation tasks; obtaining a bandwidth performance parameter of the first operation task in the first driving scene based on an identifier of the first operation task and the first bandwidth configuration information; and obtaining the bandwidth of the first memory component at the next time point according to the bandwidth performance parameter of the first operation task in the first driving scene.
[0048] For example, when the second operation task is one operation task, the bandwidth of the first memory component at the next time point is a bandwidth peak value of the second operation task in the first driving scene; and when the second operation task includes multiple operation tasks, the bandwidth of the first memory component at the next time point is a sum of bandwidth peak values of the multiple operation tasks in the first driving scene.
[0049] In the implementation, by obtaining the bandwidth configuration information corresponding to the memory component in the current driving scene of the vehicle, and combining the running time sequence of each operation task on the memory component, the bandwidth pressure distribution of each operation task on the memory component can be known in advance, so that the bandwidth of the memory component at the next moment can be determined, and the prediction of the bandwidth pressure of the memory component is realized.
[0050] In a possible implementation of the second aspect, the obtaining of the first bandwidth configuration information comprises: obtaining mapping information, the mapping information comprising a correspondence relationship among an identifier of the first memory component, an identifier of the first driving scene, and the first bandwidth configuration information; and searching the mapping information based on the identifier of the first driving scene and the identifier of the first memory component to obtain the first bandwidth configuration information.
[0051] It can be understood that the automatic driving system involves various driving scenes, and the operation tasks associated with different driving scenes can be different, and the performance of the same operation task in different driving scenes can also be different. The mapping information described above comprises the bandwidth configuration information corresponding to different memory components in different driving scenes, which provides support for bandwidth prediction and flow control adjustment of the vehicle in different driving scenes.
[0052] Optionally, the obtaining of the first bandwidth configuration information comprises: sending a first request to a network side device, the first request comprising the identifier of the first driving scene and the identifier of the first memory component; and receiving the first bandwidth configuration information from the network side device, the first bandwidth configuration information being associated with the first request.
[0053] In this implementation, the method can be applied to a vehicle. When the vehicle has a demand for using the first bandwidth configuration information, the vehicle sends a first request to a network side device to request the first bandwidth configuration information, which is beneficial to improving the utilization rate of the local storage space of the vehicle.
[0054] Optionally, the method further comprises: sending bandwidth prediction information to the flow control adjuster, the bandwidth prediction information comprising the bandwidth of the first memory component at the next moment.
[0055] In this implementation, the bandwidth prediction information of the memory component is reported to the flow control adjuster, so that the flow control adjuster can perceive the bandwidth pressure of the memory component in advance based on the bandwidth prediction information received this time, and can adjust the bandwidth resource of the memory component in time to ensure the normal operation of the key business of the automatic driving system.
[0056] In a third aspect, the present application provides a device for constructing bandwidth, comprising: an acquisition unit configured to acquire first bandwidth data and task scheduling information, wherein the first bandwidth data comprises n bandwidth sampling values of a first memory accessing component of a vehicle in a first driving scene, m operation tasks associated with the first driving scene are running on the first memory accessing component, and the task scheduling information is used to indicate a running time sequence of the m operation tasks, wherein n and m are positive integers greater than 1; and a processing unit configured to obtain second bandwidth data according to the first bandwidth data and the task scheduling information, wherein the second bandwidth data is used to indicate distribution information of bandwidth of each operation task in the m operation tasks in the time domain in the first driving scene.
[0057] In a possible implementation manner of the third aspect, the processing unit is further configured to start an automatic driving system of the vehicle, and the m operation tasks are scheduled to be executed in a case where the automatic driving system is started.
[0058] In a possible implementation manner of the third aspect, the types to which the m operation tasks belong include at least one of an artificial intelligence (AI) model, a process, and an image signal processing algorithm.
[0059] In a possible implementation manner of the third aspect, the task scheduling information comprises running time of each operation task in the m operation tasks.
[0060] In a possible implementation manner of the third aspect, each operation task in the m operation tasks is run at least once in a process of collecting the n bandwidth sampling values.
[0061] In a possible implementation manner of the third aspect, the n bandwidth sampling values correspond to n time points, an i-th bandwidth sampling value is collected at an i-th time point, the i-th bandwidth sampling value is a sum of bandwidth values of at least one operation task in the m operation tasks at the i-th time point, i is a positive integer less than or equal to n, and the processing unit is specifically configured to: determine a weight matrix according to the task scheduling information, wherein the weight matrix is used to indicate whether each operation task is running at each of the n time points; solve a bandwidth value of each operation task based on the weight matrix and the n bandwidth sampling values; and obtain the second bandwidth data according to the bandwidth value of each operation task.
[0062] In a possible implementation manner of the third aspect, the weight matrix comprises a first weight value, the first weight value is a weight value of a j-th operation task at an i-th time point, j is a positive integer less than or equal to m, when the first weight value is a first value, the first weight value indicates that the j-th operation task is running at the i-th time point, and the bandwidth value of the j-th operation task at the i-th time point is not zero, and when the first weight value is a second value, the first weight value indicates that the j-th operation task is not running at the i-th time point, and the bandwidth value of the j-th operation task at the i-th time point is zero.
[0063] In a possible implementation of the third aspect, the first operation task is any one of the m operation tasks, the first operation task has p bandwidth values, p is a positive integer less than or equal to n, the second bandwidth data includes bandwidth data of the first operation task, and the bandwidth data of the first operation task is used to indicate distribution information of bandwidth of the first operation task in the time domain in the first driving scene; and the processing unit is specifically configured to: perform fusion according to the p bandwidth values and phase information of the p bandwidth values to obtain the bandwidth data of the first operation task.
[0064] In a possible implementation of the third aspect, in a case where the first operation task is executed for multiple runs in a first time period, a bandwidth value of a first run of the first operation task includes a first bandwidth value, a bandwidth value of a second run of the first operation task includes a second bandwidth value, the n time points belong to the first time period, and the first bandwidth value and the second bandwidth value both belong to the p bandwidth values; and the phase information of the first bandwidth value is used to indicate a phase offset between a time point corresponding to the first bandwidth value and a starting time point of the first run of the first operation task, and the phase information of the second bandwidth value is used to indicate a phase offset between a time point corresponding to the second bandwidth value and a starting time point of the second run of the first operation task.
[0065] In a possible implementation of the third aspect, the obtaining unit is further configured to obtain first bandwidth configuration information, the first bandwidth configuration information is used to indicate bandwidth demand of each operation task in the m operation tasks in the first driving scene, and the first bandwidth configuration information is associated with the second bandwidth data; and the processing unit is further configured to determine the bandwidth of the first memory component at the next time point according to the first bandwidth configuration information and the task scheduling information.
[0066] In a possible implementation of the third aspect, the first bandwidth configuration information includes a bandwidth performance parameter of each operation task in the first driving scene, and the bandwidth performance parameter includes a bandwidth peak value and at least one of the following parameters: a bandwidth average value, an inference duration, and a bandwidth peak value occurrence time.
[0067] In a possible implementation of the third aspect, the apparatus further includes a sending unit configured to send first information to a network side device, the first information including an identifier of the first driving scene and the second bandwidth data; and the obtaining unit is configured to receive first bandwidth configuration information from the network side device.
[0068] In a possible implementation of the third aspect, the processing unit is further configured to: obtain the first bandwidth configuration information according to the second bandwidth data.
[0069] In a possible implementation manner of the third aspect, the processing unit is specifically configured to: determine, according to the task scheduling information, that the operation task running at the next time of the first memory component is a second operation task, the second operation task belonging to the m operation tasks; find the first bandwidth configuration information based on the identifier of the second operation task, to obtain the bandwidth performance parameter of the second operation task in the first driving scene; and determine the bandwidth of the first memory component at the next time according to the bandwidth performance parameter of the second operation task in the first driving scene.
[0070] In a fourth aspect, the present application provides a device for predicting bandwidth, comprising: an acquisition unit configured to acquire first bandwidth configuration information, the first bandwidth configuration information being used to indicate bandwidth requirements of each operation task in m operation tasks in a first driving scene, the m operation tasks being run on a first memory component of a vehicle, the m operation tasks being associated with the first driving scene, m being a positive integer greater than 1; and a processing unit configured to, when the vehicle is in the first driving scene, obtain the bandwidth of the first memory component at the next time according to task scheduling information and the first bandwidth configuration information, wherein the task scheduling information is used to indicate the running time sequence of the m operation tasks.
[0071] In a possible implementation manner of the fourth aspect, the first bandwidth configuration information comprises a bandwidth performance parameter of each operation task in the first driving scene, the bandwidth performance parameter comprising a bandwidth peak value and at least one of the following parameters: a bandwidth average value, an inference time length, and a bandwidth peak value occurrence time.
[0072] In a possible implementation manner of the fourth aspect, the m operation tasks are scheduled to be executed when an automatic driving system of the vehicle is started.
[0073] In a possible implementation manner of the fourth aspect, the types to which the m operation tasks belong comprise at least one of the following: an artificial intelligence (AI) model, a process, and an image signal processing algorithm.
[0074] In a possible implementation manner of the fourth aspect, the first bandwidth configuration information is associated with target bandwidth data, the target bandwidth data being used to indicate distribution information of the bandwidth of each operation task in the m operation tasks in the time domain in the first driving scene.
[0075] In a possible implementation manner of the fourth aspect, the target bandwidth data is obtained by the processing unit by executing the related method of the first aspect.
[0076] In a possible implementation manner of the fourth aspect, the processing unit is specifically configured to: determine, according to the task scheduling information, that the operation task running at the next time by the first memory access component is the first operation task, the first operation task belonging to the m operation tasks; obtain the bandwidth performance parameter of the first operation task in the first driving scene based on the identifier of the first operation task and the first bandwidth configuration information; and obtain the bandwidth of the first memory access component at the next time according to the bandwidth performance parameter of the first operation task in the first driving scene.
[0077] In a possible implementation manner of the fourth aspect, the obtaining unit is specifically configured to: obtain mapping information, the mapping information including a correspondence relationship among the identifier of the first memory access component, the identifier of the first driving scene, and the first bandwidth configuration information; and the processing unit is configured to: find the mapping information based on the identifier of the first driving scene and the identifier of the first memory access component, and obtain the first bandwidth configuration information.
[0078] Optionally, the apparatus further includes a sending unit configured to send, to a network side device, a first request including the identifier of the first driving scene and the identifier of the first memory access component; and the obtaining unit is configured to receive, from the network side device, the first bandwidth configuration information associated with the first request.
[0079] Optionally, the sending unit is further configured to send, to the flow control regulator, bandwidth prediction information including the bandwidth of the first memory access component at the next time.
[0080] In a fifth aspect, the present application provides a computing apparatus, including a processor and a memory, wherein the memory is configured to store program instructions; the processor invokes the program instructions in the memory, so that the apparatus executes the method in the first aspect or any possible implementation manner of the first aspect, and / or executes the method in the second aspect or any possible implementation manner of the second aspect.
[0081] Exemplarily, the computing apparatus can be a chip.
[0082] In a sixth aspect, the present application provides a vehicle, including the apparatus in the third aspect or any possible implementation manner of the third aspect, and / or including the apparatus in the fourth aspect or any possible implementation manner of the fourth aspect; or including the apparatus in the fifth aspect.
[0083] In a seventh aspect, the present application provides a computer readable storage medium, including computer instructions, when the computer instructions are run by a processor, implementing the method in the first aspect or any possible implementation manner of the first aspect, and / or implementing the method in the second aspect or any possible implementation manner of the second aspect.
[0084] In an eighth aspect, the present application provides a computer program product, which, when executed by a processor, implements the method of the first aspect or any possible implementation of the first aspect, and / or implements the method of the second aspect or any possible implementation of the second aspect.
[0085] Exemplarily, the computer program product can be a software installation package. BRIEF DESCRIPTION OF DRAWINGS
[0086] FIG. 1 is a schematic diagram of a bandwidth processing system according to an embodiment of the present application;
[0087] FIG. 2 is a flowchart of a bandwidth construction method according to an embodiment of the present application;
[0088] FIG. 3 is a timing diagram of an operation task indicated by some task scheduling information according to an embodiment of the present application;
[0089] FIG. 4 is a bandwidth sampling diagram of a first memory access component according to an embodiment of the present application;
[0090] FIG. 5 is a diagram of a bandwidth value of an operation task after being solved according to an embodiment of the present application;
[0091] FIG. 6 is a diagram of high-precision construction of a bandwidth distribution of an operation task according to an embodiment of the present application;
[0092] FIG. 7 is a flowchart of a bandwidth prediction method according to an embodiment of the present application;
[0093] FIG. 8 is a diagram of mapping information according to an embodiment of the present application;
[0094] FIG. 9 is a diagram of an application scenario according to an embodiment of the present application;
[0095] FIG. 10 is a structural diagram of a computing device according to an embodiment of the present application;
[0096] FIG. 11 is a structural diagram of a computing device according to an embodiment of the present application. DETAILED DESCRIPTION
[0097] The prefix such as "first", "second" in the present application is only used to distinguish different description objects, and has no limitation on the position, order, priority, quantity or content of the described object. For example, the ordinal number before the described object "field" in "first field" and "second field" does not limit the position or order between "fields", and "first" and "second" do not limit whether the "fields" modified by them are in the same message or not, nor the order of "first field" and "second field". For another example, the ordinal number before the described object "level" in "first level" and "second level" does not limit the priority between "levels". For another example, the quantity of the described object is not limited by the prefix, which can be one or more. For example, "first device", where the quantity of "device" can be one or more. In addition, the objects modified by different prefix words can be the same or different. For example, the described object is "device", and "first device" and "second device" can be the same device, the same type of device or different types of devices. For another example, the described object is "information", and "first information" and "second information" can be information of the same content or information of different content. In summary, the use of prefix words in the embodiments of the present application for distinguishing description objects does not constitute a limitation on the described objects, and the statements of the described objects refer to the description of the context in the claims or embodiments, and should not constitute an unnecessary limitation because of the use of such prefix words.
[0098] For ease of understanding, the related terms and the like that may be involved in the embodiments of the present application are introduced below.
[0099] (1) DDR bandwidth
[0100] The double data rate (DDR) bandwidth generally refers to the rate at which the memory or video memory in the system can transmit data, which is generally measured by the amount of data (bits or bytes) transmitted per second. DDR bandwidth is an important performance indicator, which directly affects the processing speed and efficiency of the system on data.
[0101] In the present scheme, the DDR bandwidth is simply referred to as bandwidth.
[0102] (2) Driving scene
[0103] The driving scene can be simply referred to as scene, which refers to the environmental space in which the vehicle travels, including but not limited to traffic participants, surrounding environment, etc. The driving scene can be used to test the reaction ability and performance of the automatic driving system under various conditions, that is, the performance of the automatic driving system is affected by the driving scene.
[0104] (3) Automatic driving system
[0105] An autonomous driving system, or intelligent driving system, refers to a computer system that utilizes data collected by a perception system (e.g., multiple sensors) to identify or detect objects, forms results through computation and analysis, and controls a terminal or assists a human driver or other decision-making mechanism to control the terminal. In some solutions, the autonomous driving system integrates an intelligent driving algorithm (or model), which refers to an algorithm capable of processing data to form an output result, which can be directly used to control a vehicle, and / or used to assist other decision-making mechanisms (e.g., a human driver) to control the vehicle.
[0106] The society of automotive engineers (SAE) provides a driving automation classification standard, including driving levels L0 to L5, wherein the L0 level is no automation, the vehicle is fully operated by a human driver, and the driver can get warnings or assistance from the driving system during driving, such as autonomous emergency braking (AEB), blind spot monitoring (BSM) or lane departure warning (LDW) and the like. The L1 level is driving support, the driving operation is completed by the human driver and the driving system, the driving system can provide driving support to the steering wheel or acceleration and deceleration operation through the driving environment, and other driving operations are performed by the human driver, such as adaptive cruise control (ACC) or lane keep assistance / support (LKA / LKS) and the like. The L2 level is partial automation, the driving system provides driving support to multiple items of the steering wheel and acceleration and deceleration, and other driving actions are performed by the human driver, such as a following function combined with adaptive cruise control (ACC) and lane keep assistance (LKA). The L3 level is conditional automation, all driving operations can be completed by the driving system, but the human driver needs to respond to the request of the driving system at appropriate times, that is, the human driver needs to be prepared to take over the driving system. The L4 level is high automation, all driving operations can be completed by the driving system, and the human driver does not necessarily need to respond to the request of the driving system, for example, the human driver can not take over the driving under the condition that the road and environmental conditions allow (such as a closed park, a highway, an urban road or a fixed driving route and the like). The L5 level is full automation, driving operations under various road and environmental conditions that the human driver can handle can be completed by the driving system. It can be seen that the levels of L0 to L2, the driving system mainly provides support for the driver, and the driver still needs to be prepared to drive, and to turn, brake or accelerate as needed to ensure safety. The levels of L3 to L5, the driving system can replace the driver to complete all driving operations, under the L3 level, the driver needs to be prepared to take over the driving, and under the L4 and L5 levels, the driving system can realize full driving under partial conditions and all conditions, and the driver can choose whether to take over.
[0107] The above classification is an example, and can be changed as the technology evolves or in different countries or regions have different regulations. For example, the Ministry of Industry and Information Technology of China proposes a classification of vehicle automation including 6 levels of vehicle driving automation, where levels 0-2 are driving assistance, the system assists humans to perform dynamic driving tasks, and the driving subject is still the driver; levels 3-5 are automatic driving, the system replaces humans to perform dynamic driving tasks under designed operating conditions, and the driving subject is the system when the function is activated. The names and definitions of each level are as follows: Level 0 driving automation (emergency assistance) system cannot continuously perform vehicle lateral or longitudinal motion control in dynamic driving tasks, but has the ability to continuously perform partial target and event detection and response in dynamic driving tasks. Level 1 driving automation (partial driver assistance) system continuously performs vehicle lateral or longitudinal motion control in dynamic driving tasks under its designed operating conditions (or ODD for short), and has the ability to detect and respond to partial targets and events that are compatible with the vehicle lateral or longitudinal motion control performed. Level 2 driving automation (combined driver assistance) system continuously performs vehicle lateral and longitudinal motion control in dynamic driving tasks under its designed operating conditions, and has the ability to detect and respond to partial targets and events that are compatible with the vehicle lateral and longitudinal motion control performed. Level 3 driving automation (conditionally automated driving) system continuously performs all dynamic driving tasks under its designed operating conditions. Level 4 driving automation (highly automated driving) system continuously performs all dynamic driving tasks under its designed operating conditions and automatically executes a minimum risk strategy. Level 5 driving automation (fully automated driving) system continuously performs all dynamic driving tasks under any drivable conditions and automatically executes a minimum risk strategy. Among them, lateral control is mainly used for vehicle steering control, such as controlling steering wheel torque or angle to control the direction of the vehicle; longitudinal control is mainly used for vehicle speed control, such as controlling brake pedal, accelerator pedal, or gear to control vehicle acceleration / deceleration, braking, etc.
[0108] Here, the automatic driving system in the present scheme can be any level of automatic driving system that can participate in vehicle driving partially or entirely.
[0109] The above terms can be optionally applied in the embodiments below.
[0110] The bandwidth processing system can construct bandwidths of each operation task based on bandwidth sampling data of a memory access component and a running time sequence of the operation task on the memory access component, and can also predict bandwidths based on distribution of the bandwidths of each operation task in a time domain. In this way, based on modeling results of operation task-level bandwidths in a fine-grained manner, the bandwidth of the memory access component can be more accurately predicted, thereby improving the performance of the autonomous driving system.
[0111] The composition of the bandwidth processing system is introduced below. Referring to FIG. 1, FIG. 1 is an architecture schematic diagram of a bandwidth processing system provided in an embodiment of the present application. As shown in FIG. 1, the bandwidth processing system includes a terminal device and a network side device, where the terminal device and the network side device communicate through a network connection, for example, in a wireless manner.
[0112] The terminal device is a device with bandwidth regulation requirements. For example, the terminal device can be a vehicle, a robot, a drone, or the like, which is an intelligent terminal with bandwidth regulation requirements. The vehicle can be a vehicle configured with an autonomous driving system. The vehicle can be a traffic tool (such as a commercial vehicle, a passenger vehicle, a motorcycle, a flying vehicle, 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.), an agricultural device (such as a mower, a harvester, etc.), or the like. For another example, the robot can be an automated guided vehicle (AGV), a walkable conversational robot, a service robot, a dancing robot, or the like.
[0113] In an implementation manner, a bandwidth modeling apparatus is deployed on the terminal device. For example, the bandwidth modeling apparatus can model operation task-level bandwidths based on bandwidth sampling data of a memory access component, to obtain distribution information of the bandwidths of each operation task on the memory access component in a time domain. The bandwidth modeling apparatus can also obtain a bandwidth performance parameter of the operation task according to the distribution information of the operation task in the time domain, where the bandwidth performance parameter can be a bandwidth peak value, for example. Here, the memory access component refers to a computing hardware that needs to access a memory.
[0114] Here, the bandwidth modeling apparatus can be a component within the terminal device, such as a chip, integrated circuit, etc. When the terminal device is a vehicle, the bandwidth modeling apparatus can be a controller or a central computing unit, etc. on the vehicle, which is a hardware and software integrated platform for supporting intelligent driving, i.e., a vehicle computing platform, such as a mobile data center (MDC). In some scenarios, the MDC can also be referred to as an advanced driving assistance system domain controller (ADASDC) or an automatic drive domain controller (AD DC).
[0115] The network-side device is a device with computing capability. As an example, the network-side device can be a server (e.g., a server for bandwidth configuration) deployed on the network side, or a component or chip in the server. In some scenarios, the network-side device can also be a system-level device or a cluster of computing devices composed of multiple servers. The network-side device can be deployed in a cloud environment or an edge environment.
[0116] In the present scenario, the construction and prediction of bandwidth can be performed by the same device or by different devices.
[0117] For example, the construction and prediction of bandwidth are both performed by the terminal device, in which case there is no involvement of the network-side device.
[0118] For another example, the construction of bandwidth is performed by the network-side device, and the prediction of bandwidth is performed by the terminal device, in which case there is interaction between the terminal device and the network-side device, and the terminal device provides the network-side device with raw data required for the construction of bandwidth.
[0119] For yet another example, the construction of bandwidth is performed by both the network-side device and the terminal device, e.g., the terminal device is responsible for obtaining distribution information of the aforementioned operation tasks in the time domain and providing the information to the network-side device, and the network-side device obtains bandwidth performance parameters of the operation tasks based on the received data; the prediction of bandwidth is performed by the terminal device.
[0120] In some scenarios, the prediction of bandwidth can also be performed by the network-side device, which sends the prediction result of bandwidth to the terminal device.
[0121] The above-mentioned construction method of bandwidth and prediction manner can refer to the description of the corresponding embodiments below, which will not be described here again.
[0122] The bandwidth processing system shown in FIG. 1 can be applied in various application scenarios, such as the following application scenarios: mobile internet (MI), industrial control, self driving, transportation safety, internet of things (IoT), smart city, or smart home, etc.
[0123] The bandwidth processing system shown in FIG. 1 can be applied in various network types, such as one or more of the following network types: SparkLink, long term evolution (LTE) network, 5th generation mobile communication technology (5G), wireless local area network (for example, Wi-Fi), bluetooth (BT), Zigbee, or vehicle-mounted short-range wireless communication network, etc.
[0124] Here, FIG. 1 is only an exemplary architecture diagram, but does not limit the number of network elements included in the system shown in FIG. 1. Although FIG. 1 does not show, in addition to the functional entities shown in FIG. 1, FIG. 1 can also include other functional entities. In addition, the method provided by the embodiments of the present application can be applied to the bandwidth processing system shown in FIG. 1, and of course the method provided by the embodiments of the present application can also be applied to other bandwidth processing systems.
[0125] For the sake of convenience, the terminal device is exemplarily described as a vehicle in the following description, but the terminal device is not limited to only a vehicle.
[0126] Next, the bandwidth construction method provided by the present application is introduced based on the architecture shown in FIG. 1.
[0127] Referring to FIG. 2, FIG. 2 is a flowchart of a bandwidth construction method provided by an embodiment of the present application. The method can be applied to a processing device, which can be deployed on the terminal device shown in FIG. 1, that is, the processing device is a bandwidth modeling device on the terminal device; or the processing device is deployed on the network side device shown in FIG. 1. The method includes but is not limited to the following S201-S204.
[0128] S201: Obtain first bandwidth data, the first bandwidth data including n bandwidth sampling values of a first memory access component of a vehicle in a first driving scenario, m operation tasks running on the first memory access component, n and m being positive integers greater than 1.
[0129] The m operation tasks are associated with the first driving scene. That is, the operation tasks associated with different driving scenes can be different, and the "different" includes one or more of the number of operation tasks and the identity of the operation tasks. Exemplarily, the m operation tasks can be operation tasks on the first memory access component that cannot construct a bandwidth distribution by experience values. In some schemes, the first memory access component can also run a micro operation task associated with the first driving scene. The bandwidth distribution of the micro operation task has characteristics such as uniformity and regularity, so the distribution of the bandwidth can be constructed by artificial experience values without the need to construct the bandwidth distribution by the manner provided in the scheme.
[0130] Exemplarily, the first driving scene can be a driving scene currently occupied by the vehicle, or a driving scene historically occupied by the vehicle.
[0131] The first driving scene belongs to a driving scene set. Exemplarily, the driving scenes are classified based on business types, and the obtained driving scene set includes scenes such as human driving, intelligent driving, and parking. Further, the driving scenes can be further subdivided in combination with driving modes, for example, human driving is subdivided into scenes such as human driving at low speed and human driving at high speed; intelligent driving is subdivided into scenes such as navigation cruise assist (NCA), integrated cruise assist (ICA), and traffic jam assist (TJA); and parking is subdivided into scenes such as automatic parking assist (APA) and Automated Valet Parking (AVP). In this case, the driving scene set includes scenes such as human driving at low speed, human driving at high speed, intelligent driving NCA, intelligent driving ICA, intelligent driving TJA, parking APA, and parking AVP.
[0132] Here, the first memory access component refers to a computing hardware with memory access requirements. Exemplarily, the first memory access component can be a graphics processing unit (GPU), an artificial intelligence core (AICORE), a neural network processing unit (NPU), a deep learning processing unit (DPU), a central processing unit (CPU), an image signal processor (ISP), or other hardware that needs to access memory.
[0133] The type to which the m operation tasks belong includes at least one of an AI model, a process, and an image signal processing algorithm. That is, the m operation tasks can be of the same type, such as all being AI models, or some of the m operation tasks can be of one type and the other operation tasks can be of another type.
[0134] Before obtaining the component bandwidth data in the first driving scenario, the automatic driving system of the vehicle is started, and the m operation tasks on the first memory access component are scheduled and executed in the case where the automatic driving system is started. That is, the component bandwidth data in the first driving scenario is obtained in the running process of the automatic driving system.
[0135] The manner of obtaining the first bandwidth data is different considering the different locations of the processing device. Here, the first bandwidth data belongs to the bandwidth data at the module level (or component level).
[0136] In an implementation manner, the processing device is deployed on the vehicle, and obtaining the first bandwidth data includes that the processing device obtains the first bandwidth data from a hardware bandwidth monitoring register of the vehicle. Exemplarily, the hardware bandwidth monitoring register can be a memory partitioning and monitoring (MPAM), a double data rate controller (DDRC), a memory access to tightly-coupled accelerators (MATA) hardware, and the like. The MPAM mainly implements partition management and monitoring of the memory through a hardware mechanism, allowing the operating system and the application program to more finely control and optimize the use of the memory. The DDRC is a bridge between the memory access component and the external DDR memory, responsible for managing and coordinating the reading and writing of memory data. The MATA is a special hardware module, mainly used to optimize data transmission and cooperation between the processor and the tightly-coupled accelerator.
[0137] Here, the hardware bandwidth monitoring register collects the bandwidth of each memory access component at a preset interval to obtain the bandwidth sampling value of each memory access component. Here, the bandwidth of the memory access component refers to the bandwidth consumed when the memory access component accesses the memory.
[0138] As an example, the first bandwidth data can be obtained by the processing device from the hardware bandwidth monitoring register at a timing or periodically during the running of the autonomous driving system. In this case, the first bandwidth data is obtained by the processing device for multiple times during the running of the autonomous driving system. For example, the first bandwidth data is obtained by the processing device twice, i.e., the first bandwidth data includes bandwidth data 1 obtained by the first time and bandwidth data 2 obtained by the second time. The bandwidth data 1 includes n1 bandwidth sampling values of the first memory accessing component in the first driving scene, and the bandwidth data 2 includes n2 bandwidth sampling values of the first memory accessing component in the first driving scene, where n1 and n2 are positive integers, and the sum of n1 and n2 is equal to n. That is, the first bandwidth data can be obtained by the processing device from the hardware bandwidth monitoring register in real time.
[0139] In some schemes, the first bandwidth data can also be obtained by the processing device for one time. For example, the timing of obtaining the first bandwidth data by the processing device from the hardware bandwidth monitoring register can also be after the autonomous driving system runs for a period of time in the first driving scene or after the autonomous driving system runs completely in the first driving scene. When the timing of obtaining the first bandwidth data by the processing device is after the autonomous driving system runs for a period of time in the first driving scene, the first bandwidth data is collected by the hardware bandwidth monitoring register during the period of time when the autonomous driving system runs. When the timing of obtaining the first bandwidth data by the processing device is after the autonomous driving system runs completely in the first driving scene, the first bandwidth data is collected by the hardware bandwidth monitoring register during the period of time when the autonomous driving system runs this time.
[0140] In another implementation, the processing device is deployed on a network side device, and obtaining the first bandwidth data includes: the processing device receives the first bandwidth data from the vehicle. That is, after the vehicle obtains the first bandwidth data from the local hardware bandwidth monitoring register, the vehicle sends the first bandwidth data to the network side device, and correspondingly, the processing device of the network side device receives the first bandwidth data.
[0141] For example, the first bandwidth data can be obtained by the processing device from the vehicle at a timing or periodically.
[0142] Since the first bandwidth data can be obtained by the vehicle from the local hardware bandwidth monitoring register for one or more times, the first bandwidth data can also be received by the processing device for one or more times.
[0143] Taking the vehicle passing through twice to obtain the first bandwidth data as an example, assuming that the first bandwidth data includes the bandwidth data 1 obtained by the vehicle for the first time and the bandwidth data 2 obtained by the vehicle for the second time, in an implementation manner, the vehicle sends the network side device the bandwidth data once for each time of obtaining the bandwidth data, for example, the vehicle sends the network side device the bandwidth data 1 for the first time of obtaining the bandwidth data, and the vehicle sends the network side device the bandwidth data 2 for the second time of obtaining the bandwidth data, and then the processing apparatus of the network side device receives the bandwidth data 1 and the bandwidth data 2 in sequence, so that the processing apparatus obtains the first bandwidth data. In some schemes, the data amount of the bandwidth data sent by the vehicle each time can also be different, for example, the vehicle sends part of the bandwidth data 1 to the network side device after obtaining the bandwidth data 1, and the vehicle sends the bandwidth data 2 and another part of the bandwidth data 1 to the network side device after obtaining the bandwidth data 2, in this way, the processing apparatus of the network side device can obtain the first bandwidth data through two receiving operations.
[0144] In another implementation manner, the vehicle can also obtain the bandwidth data for multiple times and then perform sending of the bandwidth data once, for example, the vehicle obtains the bandwidth data 1 for the first time and obtains the bandwidth data 2 for the second time, and then the vehicle sends the network side device the first bandwidth data including the bandwidth data 1 and the bandwidth data 2, and then the processing apparatus of the network side device can obtain the first bandwidth data through one receiving operation.
[0145] S202: Obtain task scheduling information, the task scheduling information being used for indicating a running time sequence of the m operation tasks.
[0146] It can be understood that the task scheduling information is associated with the first driving scene, that is, the task scheduling information is specifically used for indicating the running time sequence of the m operation tasks in the first driving scene. The running time sequence can also be referred to as a scheduling time sequence.
[0147] Exemplarily, the task scheduling information includes a running time of each of the m operation tasks. Here, the running time can be represented by an absolute time point (e.g., using the standard time of the National Time Service Center), which can make the time information more intuitive and clear. Alternatively, the task scheduling information includes a start time point and an end time point of the running time of each of the m operation tasks. Since the running time of different operation tasks can be different, the running sequence of the m operation tasks can be quickly determined in the case that the start time point and the end time point of the running time of each operation task are known. In some schemes, the time information of the running time of each operation task can also be represented in a relative time manner (e.g., represented based on a reference time point indicated by a time stamp in the task scheduling information and a relative time length, in the case that the time stamp is 9:00 am in Beijing time, the time point of 9:30 am in Beijing time is represented by a relative time length of half an hour), which can effectively reduce the length of the task scheduling information and save the overhead of resource transmission air interface.
[0148] Referring to FIG. 3, FIG. 3 is a schematic diagram of a running sequence of operation tasks indicated by some task scheduling information provided by an embodiment of the present application. Taking m = 3 as an example, there are three operation tasks associated with the first driving scene on the first memory component, which are operation task 1, operation task 2 and operation task 3.
[0149] In (1) of FIG. 3, it can be seen that each operation task is executed once, and the task scheduling information includes a start time point T1 and an end time point T6 of the running time of operation task 1, a start time point T2 and an end time point T5 of the running time of operation task 2, and a start time point T2 and an end time point T4 of the running time of operation task 3. On the time axis shown in (1) of FIG. 3, the time sequence of each time point is: T1, T2, T3, T4, T5, T6. As can be seen from (1) of FIG. 3, operation task 1 is executed first, operation task 3 is executed subsequently, and operation task 2 is executed last. In addition, in the time period from time point T1 to time point T6, the maximum number of concurrent operation tasks is 3, that is, in the time period T3-T4, operation task 1, operation task 2 and operation task 3 are all in the running state.
[0150] In some scenarios, the operation tasks can also run multiple times. As an example in (2) of FIG. 3, operation task 1 runs once, operation task 2 runs once, and operation task 3 runs twice, in which case the task scheduling information includes that operation task 1 runs from time T1 to time T8, operation task 2 runs from time T3 to time T6, operation task 3 runs from time T2 to time T4 for the first time, and operation task 3 runs from time T5 to time T7 for the second time. In the time axis shown in (2) of FIG. 3, the time sequence of each time point is: T1, T2, T3, T4, T5, T6, T7, T8. In addition, in (2) of FIG. 3, taking operation task 1 as an example, the time period T1-T8 can be referred to as the running period or inference period of operation task 1, and the inference length of operation task 1 is the difference between time T8 and time T1, which is represented as (T8-T1). The inference length of the same operation task in each run is the same, for example, for operation task 3, (T4-T2) is equal to (T7-T5). That is, the task scheduling information also includes the running time of each operation task in each run of the m running tasks.
[0151] Here, FIG. 3 is only an example of the running sequence of multiple operation tasks and should not be construed as limiting the running sequence of multiple operation tasks. In some scenarios, taking operation task 3 as an example above, when operation task 3 runs multiple times, it is not limited that operation task 3 needs to start the next run after the current run ends, and there is no influence between different runs of the same operation task.
[0152] The processing device is deployed in different locations, and the task scheduling information is acquired in different ways.
[0153] In an implementation manner, the processing device is deployed on a vehicle, and the task scheduling information is acquired by acquiring the task scheduling information from a running interface of a local operation task.
[0154] For example, a tracepoint (or a stub function point) can be embedded at the running interface of the local operation task to acquire the task scheduling information. Here, the tracepoint is a point that records the state of the operation task (for example, the start time and the end time of the running), supports dynamically inserting the tracepoint when the operation task runs without recompiling the program, has flexibility, low invasiveness, and can provide fine tracking information. For example, the tracepoint can be placed at the entrance (i.e., the starting position) of each operation task and the exit (i.e., the ending position) of each operation task, or the tracepoint can be placed at the entry point of each operation task call and the return point of each operation task call.
[0155] The task scheduling information is obtained in real time by the processing device during running of the automatic driving system in the first driving scene, for example, obtained through the running interface of the operation task at a fixed time or periodically. The task scheduling information can be obtained once or multiple times.
[0156] In another implementation, the processing device is deployed on a network side device, and the task scheduling information is obtained by receiving the task scheduling information sent by the vehicle. In this case, the vehicle first obtains the task scheduling information through the running interface of the operation task, and then sends the task scheduling information to the network side device. Correspondingly, the processing device of the network side device receives the task scheduling information from the vehicle. Here, the task scheduling information can be obtained in real time by the vehicle during running of the automatic driving system in the first driving scene. Therefore, the vehicle can transmit the obtained task scheduling information to the network side device by sending once or multiple times, and correspondingly, the processing device of the network side device can obtain the task scheduling information by receiving once or multiple times.
[0157] In this solution, the task scheduling information corresponds to the first bandwidth data. The time (i.e., the collection time) corresponding to any bandwidth sampling value in the n bandwidth sampling values belongs to the running period of a certain operation task indicated by the task scheduling information.
[0158] S203: Obtain second bandwidth data according to the first bandwidth data and the task scheduling information, the second bandwidth data being used to indicate the distribution information of the bandwidth of each operation task in the m operation tasks in the time domain in the first driving scene.
[0159] The first memory component corresponds to the n bandwidth sampling values and the n time points in the first driving scene. The i-th bandwidth sampling value in the n bandwidth sampling values is collected at the i-th time point in the n time points. i is a positive integer less than or equal to n. The i-th bandwidth sampling value is the sum of the bandwidth values of at least one operation task in the m operation tasks at the i-th time point.
[0160] In an implementation, the second bandwidth data is obtained according to the first bandwidth data and the task scheduling information, including: first, determining a weight matrix according to the task scheduling information, the weight matrix being used to indicate whether each operation task runs at each time point in the n time points; then, solving the bandwidth value of each operation task based on the weight matrix and the n bandwidth sampling values; finally, obtaining the second bandwidth data according to the bandwidth value of each operation task.
[0161] The weight matrix includes a first weight value, the first weight value is a weight value of the jth operation task in the m operation tasks at the ith time, j is a positive integer less than or equal to m, when the first weight value is a first value, the first weight value indicates that the jth operation task runs at the ith time, and the bandwidth value of the jth operation task at the ith time is not zero; when the first weight value is a second value, the first weight value indicates that the jth operation task does not run at the ith time, and the bandwidth value of the jth operation task at the ith time is zero or empty.
[0162] Exemplarily, the first value is “1”, and the second value is “0”.
[0163] Referring to FIG. 4, FIG. 4 is a bandwidth sampling diagram of a first memory access component according to an embodiment of the present application. FIG. 4 corresponds to the task scheduling information shown in (2) of FIG. 3. As shown in FIG. 4, the bandwidth sampling value of the first memory access component obtained at time t is y, and based on the corresponding task scheduling information, it can be known that only operation task 1 and operation task 3 are in a running state at time t, then in the weight matrix, the weight value of operation task 1 at time t indicates that operation task 1 runs at time t, and the weight value of operation task 3 at time t indicates that operation task 3 runs at time t. It can be understood that the weight value of operation task 2 at time t indicates that operation task 2 does not run at time t, so the bandwidth sampling value y is the sum of the bandwidth of operation task 1 at time t and the bandwidth of operation task 3 at time t. It can be understood that the bandwidth sampling of the first memory access component shown in FIG. 4 is only an example, FIG. 4 only shows one bandwidth sampling value of the first memory access component, and the content shown in FIG. 4 should not constitute a limitation on the distribution of the bandwidth of the first memory access component, the sampling number of the bandwidth of the first memory access component, and the content of the task scheduling information.
[0164] As an example, when solving the bandwidth value of each operation task based on the weight matrix and the n bandwidth sampling values, a multiple linear regression method can be used for solving. The application process of the multiple linear regression method is described below with a specific example. Please refer to the following step1-step4.
[0165] Step 1: Express the n bandwidth sampling values as shown in the following formula (1): f=[y (1) ,y (2) ,y (3) ,…,y (n) ] T Formula (1)
[0166] Wherein, f represents the first bandwidth data, y (i)represents the i-th bandwidth sample value in the n bandwidth sample values, the i-th bandwidth sample value is collected at the i-th time, and each time is sampled once, and the n bandwidth sample values are obtained through n times of sampling. More specifically, y (i) represents the bandwidth sample value of the first memory access component at the i-th time in the first driving scenario.
[0167] step 2: the weight matrix is represented as shown in the following formula (2):
[0168] wherein w represents the weight matrix, represents the weight value of the j-th operation task in the m operation tasks at the i-th time in the n times, i is a positive integer less than or equal to n, and j is a positive integer less than or equal to m.
[0169] step 3: the bandwidth of each operation task at the n times is represented as wherein task j represents the j-th operation task, represents the bandwidth value of the j-th operation task at the i-th time. In this case, the bandwidth of the m operation tasks at the n times can be represented as the following formula (3):
[0170] step 4: based on the formula (1) to formula (3), a multiple regression model is constructed with the w and f as known quantities and the tasks as unknown quantities, and the multiple regression model can be represented as the following formula (4):
[0171] The bandwidth value of each operation task is solved based on the formula (4), so that the tasks j , and the bandwidth value of each operation task is presented in a discrete form.
[0172] Referring to FIG. 5, FIG. 5 is a schematic diagram of the bandwidth values of the operation tasks after being solved according to an embodiment of the present application. Assuming that the n bandwidth sample values of the first memory access component are obtained by sampling at the n times within the time period T1-T8 shown in FIG. 4, in FIG. 5, the first 8 bandwidth sample values in the n bandwidth sample values of the first memory access component are taken as an example, the 8 bandwidth sample values correspond to 8 times, and the 8 times are time 1, time 2, time 3, …, and time 8 respectively. After the above solving, in the 8 times, the operation task 1 has bandwidth values at the 8 times, the operation task 2 has bandwidth values at 5 times, and the operation task 3 has bandwidth values at 4 times. Therefore, in FIG. 5, the operation task 1 has 8 bandwidth values, the operation task 2 has 5 bandwidth values, and the operation task 3 has 4 bandwidth values.
[0173] Taking time 2 of the 8 times as an example, the bandwidth sampling value of the first memory component at time 2 is the sum of the bandwidth value of the operation task 1 at time 2 and the bandwidth value of the operation task 3 at time 2. In FIG. 5, the bandwidth sampling value of the first memory component at time 2 is the second bandwidth sampling value of the first memory component, the bandwidth value of the operation task 1 at time 2 is the second bandwidth value of the operation task 1, and the bandwidth value of the operation task 3 at time 2 is the first bandwidth value of the operation task 3.
[0174] Further, the second bandwidth data includes bandwidth data of each operation task, wherein the bandwidth data of the jth operation task is used to indicate the distribution information of the bandwidth of the jth operation task in the time domain under the first driving scene, and the bandwidth data of the jth operation task is obtained based on the bandwidth value of the jth operation task solved. That is, the bandwidth data of the operation task 1 can be obtained based on the task1 solved above, the bandwidth data of the operation task 2 can be obtained based on the task2 solved above, and so on, and the bandwidth data of the operation task m can be obtained based on the taskm solved above. m The bandwidth data of the operation task m can be obtained.
[0175] Taking the first operation task as an example, the first operation task is any one of the m operation tasks, the first operation task has p bandwidth values after being solved, and p is a positive integer less than or equal to n. Then, the second bandwidth data includes the bandwidth data of the first operation task, and the bandwidth data of the first operation task is used to indicate the distribution information of the bandwidth of the first operation task in the time domain under the first driving scene. The above obtaining the second bandwidth data according to the bandwidth value of each operation task includes: performing fusion according to the p bandwidth values and the phase information of the p bandwidth values to obtain the bandwidth data of the first operation task. The phase information of the qth bandwidth value in the p bandwidth values is used to indicate the phase offset between the time corresponding to the qth bandwidth value and the starting time when the first operation task runs, and q is a positive integer less than or equal to p.
[0176] Exemplarily, the phase information of the bandwidth value of the operation task can be obtained by calculation through the mathematical relationship shown in the following formula (5).
[0177] wherein, denotes the phase information of the qth bandwidth value of the jth operation task, denotes the time (i.e., the sampling time) corresponding to the qth bandwidth value of the jth operation task, time j_start denotes the starting time when the jth operation task runs, and interval denotes the collection interval (or collection period) of the above hardware bandwidth monitoring register, and interval is the collection interval of the bandwidth of the above first memory component.
[0178] In order to improve the precision of the bandwidth data of each operation task, high-precision sampling can be achieved by reducing the collection interval of the hardware bandwidth monitoring register. However, increasing the precision of the bandwidth data of the operation task by using this high-frequency sampling method will increase the collection overhead. In the present scheme, each operation task in the m operation tasks can run multiple times during the collection of the n bandwidth sampling values. The bandwidth distribution of the same operation task running has similarity in the first driving scene. For any operation task that runs multiple times, the bandwidth value of each operation task running each time (in discrete form) can be solved by the multivariate linear regression, that is, the bandwidth collection of the same operation task running multiple times is achieved. The phase information of each bandwidth value of each operation task can be obtained by the formula (5), and the high-precision construction of the bandwidth distribution of each operation task can be achieved by the multi-phase offset fusion.
[0179] In this way, the bandwidth of the first memory component is collected by the hardware bandwidth monitoring register multiple times at a low frequency, and the high-precision reconstruction of the operation task level bandwidth distribution on the first memory component can be achieved. It can be understood that, during the collection of the n bandwidth sampling values, the more the operation task runs, the higher the precision of the bandwidth data of the operation task.
[0180] Still taking the first operation task as an example, when the first operation task performs multiple runs in the first time period, the n time points belong to the first time period, the bandwidth value of the first run of the first operation task includes the first bandwidth value, and the bandwidth value of the second run of the first operation task includes the second bandwidth value. The first bandwidth value and the second bandwidth value both belong to the p bandwidth values of the first operation task. The phase information of the first bandwidth value indicates the phase offset between the time point corresponding to the first bandwidth value and the start time of the first run of the first operation task, and the phase information of the second bandwidth value indicates the phase offset between the time point corresponding to the second bandwidth value and the start time of the second run of the first operation task.
[0181] Referring to FIG. 6, FIG. 6 is a schematic diagram of high-precision construction of bandwidth distribution of an operation task according to an embodiment of the present application. FIG. 6 (1) shows bandwidth values of a certain operation task in multiple (for example, four) runs, and the bandwidth values of different runs of the operation task can be distinguished by different symbols. For example, the bandwidth value of the first run of the operation task is marked by a solid square "■", the bandwidth value of the second run of the operation task is marked by a solid circle "●", the bandwidth value of the third run of the operation task is marked by a solid inverted triangle "▼", and the bandwidth value of the fourth run of the operation task is marked by a solid upright triangle "▲". Since the hardware bandwidth monitoring register records the corresponding time when collecting the bandwidth of the first memory access component, the phase information of each bandwidth value of the operation task can be known. Finally, multi-phase offset fusion is performed based on the bandwidth values of the operation task and the phase information of each bandwidth value, and the bandwidth data of the operation task can be obtained, as shown in FIG. 6 (2). In this way, high-precision and fine-grained bandwidth distribution construction of the operation task level is realized with low overhead.
[0182] Optionally, in some possible embodiments, the following S204 can also be performed.
[0183] S204: obtaining first bandwidth configuration information according to the second bandwidth data, the first bandwidth configuration information being used to indicate bandwidth demand of each operation task in the m operation tasks in the first driving scene.
[0184] In an implementation manner, the first bandwidth configuration information comprises a bandwidth performance parameter of each operation task in the m operation tasks in the first driving scene, and the bandwidth performance parameter comprises at least one of a bandwidth peak value and the following parameters:
[0185] a bandwidth average value;
[0186] an inference duration;
[0187] a bandwidth peak value occurrence time.
[0188] Here, the first bandwidth configuration information is used for bandwidth prediction of the first memory access component in the first driving scene. The bandwidth prediction method can refer to the related description of the following FIG. 7 embodiment, and will not be described here for the sake of brevity of the description.
[0189] Taking the first operation task as an example, the inference duration of the first operation task refers to the running duration of the first operation task in a single run, and the bandwidth peak value occurrence time of the first operation task refers to the interval duration of the time when the bandwidth peak value of the first operation task occurs and the starting time of the running of the first operation task.
[0190] Exemplarily, the first bandwidth configuration information can be stored in the form of a table. In some schemes, the first bandwidth configuration information can also be stored in the form of a tree diagram or other forms.
[0191] For example, the first bandwidth configuration information can be represented as shown in Table 1 below. Table 1 shows the correspondence between the identification of the operation task, the peak bandwidth, the average bandwidth, the inference time length and the peak occurrence time in the first driving scene. As can be seen from Table 1, there are m operation tasks running on the first memory component.
[0192] Table 1: Bandwidth configuration information of operation tasks on the first memory component in the first driving scene
[0193] Here, Table 1 is only an example of the storage form of the bandwidth configuration information, and the values shown in Table 1 are only examples and should not limit the bandwidth performance of the operation tasks in the first driving scene. In actual applications, the textual content and storage method of the correspondence recorded in Table 1 can also be other forms, for example, the bandwidth configuration information shown in Table 1 also includes the identification of the driving scene, the identification of the memory component where the operation task is located, etc.
[0194] It can be understood that the first bandwidth configuration information shown in Table 1 can be obtained by the processing device based on the second bandwidth data obtained at a certain time. As the autonomous driving system runs in the first driving scene, the second bandwidth data can be obtained multiple times through the foregoing steps. In this case, the processing device can update the first bandwidth configuration information based on the second bandwidth data obtained multiple times. In this way, as the number of times of obtaining the second bandwidth data increases, the accuracy of the bandwidth data of each operation task will continuously improve, so that the bandwidth performance parameters of each operation task in the first bandwidth configuration information are more accurate.
[0195] In some possible embodiments, when the processing device is deployed on the vehicle, the processing device can also not perform S204. After the processing device obtains the second bandwidth data through S203, the processing device can send first information to the network side device, the first information including the identification of the first driving scene and the second bandwidth data, so that the network side device obtains the above-mentioned first bandwidth configuration information according to the second bandwidth data. In this way, when the vehicle needs to use the first bandwidth configuration information later, the network side device sends the first bandwidth configuration information to the vehicle again.
[0196] In some possible embodiments, when the processing device is deployed on the vehicle, after obtaining the first bandwidth configuration information, the processing device can also send the first bandwidth configuration information to the network side device, so that the network side device stores the first bandwidth configuration information, realizing the backup of the first bandwidth configuration information, which is beneficial to save the local storage space of the vehicle.
[0197] By implementing the embodiment of FIG. 2, by obtaining the bandwidth sampling value of the memory access component and the runtime sequence of each operation task on the memory access component, the online construction of the bandwidth distribution of the operation task level in a fine-grained manner on the memory access component can be implemented, so that the operation task running at the next moment of the memory access component and the bandwidth performance of each operation task can be known, which provides support for the upper-layer service to perceive the bandwidth pressure of the memory access component in advance, and makes it possible for the upper-layer service to perceive the bandwidth pressure of the memory access component in advance.
[0198] In addition, since the bandwidth distribution of the same operation task in the same driving scene has similarity, with the increase of the number of operation task running times, the bandwidth data of the operation task becomes richer, and thus the accuracy of the bandwidth distribution of the operation task constructed is higher, so that the sampling frequency of the hardware bandwidth monitoring register does not need to be improved, and the bandwidth of the first memory access component is sampled by the hardware bandwidth monitoring register multiple times at a low frequency, so that the bandwidth distribution of the operation task constructed can achieve high accuracy.
[0199] In addition, the autonomous driving system involves multiple driving scenes, and the construction of the bandwidth distribution of the operation task level is related to the driving scene. The operation tasks associated with different driving scenes can be different, and the bandwidth distribution of the same operation task in different driving scenes can also be different. Based on the embodiment of FIG. 2, the construction of the bandwidth distribution of the operation task level in different driving scenes can be implemented respectively, which provides support for the flow control adjustment of the vehicle in different driving scenes.
[0200] Referring to FIG. 7, FIG. 7 is a flowchart of a bandwidth prediction method provided by an embodiment of the present application. The method can be applied to a processing device in a vehicle. The processing device can be, for example, the bandwidth modeling device described in FIG. 1. The method includes but is not limited to the following steps S701-S703.
[0201] S701: Obtain first bandwidth configuration information.
[0202] The first bandwidth configuration information is used to indicate the bandwidth demand of each operation task in m operation tasks in a first driving scene, the m operation tasks run on a first memory access component of a vehicle, the m operation tasks are associated with the first driving scene, and m is a positive integer greater than 1.
[0203] Here, the first bandwidth configuration information is associated with target bandwidth data, and the target bandwidth data is used to indicate the distribution information of the bandwidth of each operation task in the m operation tasks in the first driving scene in the time domain. The target bandwidth data is the second bandwidth data in the embodiment of FIG. 2.
[0204] Here, the first driving scene, the first memory access component, and the content contained in the first bandwidth configuration information are described in the foregoing embodiment S204 of FIG. 2, and will not be described here.
[0205] The m operation tasks associated with the first driving scene means that the m operation tasks are scheduled to be executed in a case that the automatic driving system of the vehicle is started in the first driving scene. The operation task refers to the related description of S201 in the foregoing embodiment of FIG. 2.
[0206] In an implementation manner, the first bandwidth configuration information is obtained by: obtaining the first bandwidth configuration information from a local storage. The first bandwidth configuration information stored locally can be obtained by the processing device locally in advance by executing the method shown in S201-S204 in the foregoing embodiment of FIG. 2, or can be obtained by the processing device from a network side device in advance and stored locally. In some schemes, the processing device can also obtain the second bandwidth data in S203 in the embodiment of FIG. 2 from the network side device (for example, the second bandwidth data can be constructed locally by the network side device, or can be constructed by the vehicle and sent to the network side device for storage), and the processing device obtains the first bandwidth configuration information according to the second bandwidth data.
[0207] In an implementation manner, the first bandwidth configuration information is obtained by: sending a first request to a network side device, the first request including an identifier of the first driving scene and an identifier of the first memory access component; and receiving first bandwidth configuration information sent by the network side device, the first bandwidth configuration information being associated with the first request.
[0208] In an implementation manner, the first bandwidth configuration information is obtained by: obtaining mapping information, the mapping information including a correspondence relationship between an identifier of the first memory access component, an identifier of the first driving scene, and the first bandwidth configuration information; and searching the mapping information based on the identifier of the first driving scene and the identifier of the first memory access component to obtain the first bandwidth configuration information.
[0209] Referring to FIG. 8, FIG. 8 is a schematic diagram of mapping information provided by an embodiment of the present application. In FIG. 8, the mapping information is stored in the form of a tree diagram. In FIG. 8, each memory access component is stored in the form of a tree diagram. Each memory access component corresponds to bandwidth configuration information in different driving scenes. As shown in FIG. 8, the mapping information includes a correspondence relationship between an identifier of a memory access component, an identifier of a driving scene, and bandwidth configuration information. For example, the identifier of the first memory access component and the identifier of the driving scene 1 correspond to the bandwidth configuration information A1. For another example, the identifier of the second memory access component and the identifier of the driving scene 1 correspond to the bandwidth configuration information A2. Based on the mapping information, the corresponding bandwidth configuration information can be found in the case of knowing the identifier of the memory access component and the identifier of the driving scene.
[0210] Exemplarily, the mapping information can be generated locally by the processing device of the vehicle based on the method shown in FIG. 2, or can be obtained by the processing device of the vehicle from the cloud. In the case where the processing device downloads the mapping information from the cloud, the mapping information can be generated by the processing device of the network side device based on the method shown in FIG. 2, or the processing device of the vehicle can generate the mapping information based on the method shown in FIG. 2 and then send the mapping information to the network side device for storage.
[0211] Here, FIG. 8 is only an example of storing the mapping information in the form of a tree graph, and does not limit the storage structure of the mapping information to only that shown in FIG. 8. In some schemes, the storage structure of the mapping information can also be in units of driving scenes, and the bandwidth configuration information corresponding to different memory components in each driving scene is stored respectively.
[0212] S702: In the case where the vehicle is in the first driving scene, the bandwidth of the first memory component at the next time is obtained according to the task scheduling information and the first bandwidth configuration information.
[0213] The task scheduling information is used to indicate the running sequence of the m operation tasks on the first memory component.
[0214] Exemplarily, the task scheduling information can be obtained in the process of historical running of the autonomous driving system in the first driving scene, for example, it can be the task scheduling information in the above-mentioned embodiment of FIG. 2, that is, the task scheduling information is obtained historically. In some schemes, the task scheduling information can also be obtained in the process of current running of the autonomous driving system in the first driving scene, that is, the task scheduling information can be obtained in real time or online. For the content and obtaining method of the task scheduling information, please refer to the description of the corresponding content in the above-mentioned embodiment S202 of FIG. 2, which will not be repeated here.
[0215] In an implementation manner, the bandwidth of the first memory component at the next time is determined according to the task scheduling information and the first bandwidth configuration information, comprising: determining that the operation task running at the next time of the first memory component is a second operation task according to the task scheduling information, the second operation task belongs to the m operation tasks; searching the first bandwidth configuration information based on the identifier of the second operation task to obtain the bandwidth performance parameter of the second operation task in the first driving scene; and obtaining the bandwidth of the first memory component at the next time according to the bandwidth performance parameter of the second operation task in the first driving scene.
[0216] When the task scheduling information is acquired in the process of historical running of the automatic driving system in the first driving scene, the task scheduling information includes the running time of each operation task of the m operation tasks on the first memory component, and the operation task running on the first memory component at the next moment can be known. When the task scheduling information is acquired in the process of current running of the automatic driving system in the first driving scene, the task scheduling information includes the running time of each running task before the current moment, and the operation task running on the first memory component at the current moment can be known. Further, in combination with the inference time length, peak occurrence time and other parameters of each operation task acquired from the first bandwidth configuration information, the operation task running on the first memory component at the next moment can be known.
[0217] As an example, the bandwidth performance parameter described above includes a bandwidth peak value, and the second operation task includes at least one operation task, and then the determination of the bandwidth of the first memory component at the next moment is divided into the following case 1 and case 2.
[0218] Case 1: When the second operation task is one operation task, the bandwidth of the first memory component at the next moment is the bandwidth peak value of the second operation task in the first driving scene (hereinafter referred to as the bandwidth peak value of the second operation task).
[0219] In some schemes, when the bandwidth performance parameter described above further includes a bandwidth average value, an inference time length and a bandwidth peak occurrence time, the bandwidth of the first memory component at the next moment can be determined as the first target bandwidth value at an earlier time from the bandwidth peak occurrence time, and the bandwidth of the first memory component at the next moment is determined as the bandwidth peak value of the second operation task at a closer time from the bandwidth peak occurrence time, wherein the first target bandwidth value can be greater than the bandwidth average value of the second operation task in the first driving scene and less than or equal to the bandwidth peak value of the second operation task. For example, the first target bandwidth value can be 90% of the bandwidth peak value.
[0220] Case 2: When the second operation task includes multiple operation tasks, the bandwidth of the first memory component at the next moment is the sum of the bandwidth peak values of the multiple operation tasks in the first driving scene (hereinafter referred to as the sum of the bandwidth peak values of the multiple operation tasks).
[0221] In some scenarios, when the bandwidth performance parameter further includes the bandwidth average, the inference duration, and the bandwidth peak occurrence time, the first memory component can be determined to have a second target bandwidth value at the next time point when the bandwidth peak occurrence time of the plurality of operation tasks is far away, and the first memory component can be determined to have a sum of bandwidth peaks of the plurality of operation tasks at the next time point when the bandwidth peak occurrence time of the plurality of operation tasks is close. The second target bandwidth value can be greater than the sum of the bandwidth averages of the plurality of operation tasks and less than or equal to the sum of the bandwidth peaks of the plurality of operation tasks. For example, the second target bandwidth value can be a product of the sum of the bandwidth peaks of the plurality of operation tasks and 0.95.
[0222] S703: Send the bandwidth prediction information to the flow control regulator, the bandwidth prediction information including the bandwidth of the first memory component at the next time point.
[0223] In some scenarios, the bandwidth prediction information can further include at least one of the identification of the second operation task, the bandwidth average of the second operation task, the inference duration of the second operation task, and the bandwidth peak occurrence time of the second operation task. In this way, the flow control regulator can more accurately perform bandwidth regulation according to the runtime length, bandwidth peak occurrence time, and other information of the second operation task, thereby ensuring the normal operation of the key business of autonomous driving and improving the utilization rate of bandwidth resources.
[0224] In the implementation of FIG. 7, in the process of autonomous driving, the vehicle can obtain the bandwidth configuration information corresponding to the memory component in the current driving scenario, and in combination with the running time sequence of each operation task on the memory component, can know the bandwidth pressure distribution of each operation task on the memory component in advance, thereby determining the bandwidth of the memory component at the next time point. The vehicle reports the bandwidth prediction information to the upper-layer business, so that the upper-layer business can perceive the bandwidth pressure of the memory component in advance before the operation task inference, thereby timely adjusting the bandwidth resources of the memory component to ensure the normal operation of the key business of the autonomous driving system, and improve the utilization rate of bandwidth resources.
[0225] The following describes the application of the embodiment of FIG. 7 in an application scenario.
[0226] Referring to FIG. 9, FIG. 9 is a schematic diagram of an application scenario provided by the embodiment of the present application. In FIG. 9, the self-driving is started, and in the driving process of the vehicle, the vehicle identifies that the current driving scene is an urban human driving scene, and it is assumed that the first memory component currently concerned by the vehicle is AICORE and the operation tasks on the first memory component are all AI models. The vehicle obtains bandwidth configuration information A1 based on the identification of the urban human driving scene and the identification of AICORE by searching the above mapping information, determines that the operation task running on AICORE at the next moment is task1 in combination with the local task scheduling information, and can know the bandwidth peak value of task1 based on searching the bandwidth configuration information A1 based on the identification of task1, which is specifically the bandwidth peak value of task1 in the urban human driving scene. Then, AICORE can report bandwidth prediction information to the flow control regulator in advance (before the bandwidth peak value appears), and the bandwidth prediction information includes the bandwidth peak value of task1 in the urban human driving scene, so that the flow control regulator can perceive the bandwidth pressure in advance based on the bandwidth prediction information received this time, thereby being able to adjust the bandwidth resource of AICORE in advance to ensure that the business of the autonomous driving system is not affected. In this way, the vehicle can know the bandwidth pressure distribution of the memory component in advance based on the task scheduling information and the bandwidth configuration information A1, thereby being able to report the bandwidth prediction information in time.
[0227] In FIG. 9, when the driving scene switches, for example, from the urban human driving scene to the high-speed NCA scene, it is assumed that the first memory component currently concerned is still AICORE, the vehicle identifies that the current driving scene is the high-speed NCA scene, and the vehicle obtains bandwidth configuration information B1 based on the identification of the high-speed NCA scene and the identification of AICORE by searching the above mapping information, determines that the operation task running on AICORE at the next moment is task1 in combination with the local task scheduling information, and can know the bandwidth peak value of task1 based on searching the bandwidth configuration information B1 based on the identification of task1, which is specifically the bandwidth peak value of task1 in the high-speed NAC scene. Then, AICORE can report bandwidth prediction information to the flow control regulator in advance (before the bandwidth peak value appears), and the bandwidth prediction information includes the bandwidth peak value of task1 in the high-speed NAC scene, so that the flow control regulator can perceive the bandwidth pressure in advance based on the bandwidth prediction information received this time, thereby being able to adjust the bandwidth resource of AICORE in advance to ensure that the business of the autonomous driving system is not affected.
[0228] Referring to FIG. 10, FIG. 10 is a structural schematic diagram of a computing device provided by the embodiment of the present application. The computing device 30 includes an acquisition unit 310 and a processing unit 312. The computing device 30 can be implemented in the manner of hardware, software, or a combination of software and hardware.
[0229] In an implementation, the obtaining unit 310 is configured to obtain first bandwidth data, the first bandwidth data comprising n bandwidth sampling values of a first memory accessing component of a vehicle in a first driving scenario, m operation tasks being run on the first memory accessing component, the m operation tasks being associated with the first driving scenario, n and m being positive integers greater than 1; and the obtaining unit 310 is further configured to obtain task scheduling information, the task scheduling information being used to indicate a running time sequence of the m operation tasks; and the processing unit 312 is configured to obtain second bandwidth data according to the first bandwidth data and the task scheduling information, the second bandwidth data being used to indicate distribution information of bandwidth of each operation task of the m operation tasks in the time domain in the first driving scenario.
[0230] In this case, the computing device 30 can be used to implement the method described in the embodiment of FIG. 2. In the embodiment of FIG. 2, the obtaining unit 310 can be used to perform S201 and S202, and the processing unit 312 can be used to perform S203 and S204.
[0231] In an implementation, the obtaining unit 310 is configured to obtain first bandwidth configuration information, the first bandwidth configuration information being used to indicate bandwidth demand of each operation task of the m operation tasks in the first driving scenario, the first bandwidth configuration information being associated with the second bandwidth data; and the processing unit 312 is configured to obtain bandwidth of the first memory accessing component at a next time according to the task scheduling information and the first bandwidth configuration information in a case where the vehicle is in the first driving scenario. In some schemes, the computing device 30 further comprises a sending unit 314, the sending unit 314 being configured to send bandwidth prediction information to a flow control regulator, the bandwidth prediction information comprising the bandwidth of the first memory accessing component at the next time.
[0232] In this case, the computing device 30 can be used to implement the method described in the embodiment of FIG. 7. In the embodiment of FIG. 7, the obtaining unit 310 can be used to perform S701, the processing unit 312 can be used to perform S702, and the sending unit 314 can be used to perform S703.
[0233] It should be understood that the division of the units in the above computing device 30 is only a logical functional division, and in actual implementation, all or part of the units can be integrated into one physical entity, or can be physically separated. In addition, the units in the device can be implemented in the form of processor calling software; for example, the device includes a processor, the processor is connected with a memory, the memory stores instructions, and the processor calls the instructions stored in the memory to implement any one of the above methods or to implement the functions of the units of the device, wherein the processor is, for example, a general processor such as a central processing unit (CPU) or a microprocessor, and the memory is a memory in the device or a memory outside the device. Alternatively, the units in the device can be implemented in the form of hardware circuit, and the functions of part or all of the units can be implemented through the design of the hardware circuit, which can be understood as one or more processors; for example, in one implementation, the hardware circuit is an application-specific integrated circuit (ASIC), and the functions of part or all of the units are implemented through the design of the logical relationship between the elements in the circuit; for example, in another implementation, the hardware circuit is a programmable logic device (PLD), and taking a field programmable gate array (FPGA) as an example, it can include a large number of logic gate circuits, and the connection relationship between the logic gate circuits is configured through a configuration file, so as to implement the functions of part or all of the units. All units of the above device can be implemented in the form of processor calling software, or all units can be implemented in the form of hardware circuit, or part of the units can be implemented in the form of processor calling software, and the remaining part can be implemented in the form of hardware circuit.
[0234] In embodiments of the application, the processor is a circuit with processing capability of signals. In one implementation, the processor can be a circuit with instruction reading and running capability, such as a CPU, a microprocessor, a GPU (which can be understood as a microprocessor), or a digital signal processor (DSP), etc. In another implementation, the processor can implement certain functions through a logic relationship of hardware circuit, which is fixed or reconfigurable. For example, the processor is a hardware circuit implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), such as an FPGA. In the reconfigurable hardware circuit, the processor loads a 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 part or all of the units described above. In addition, it 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.
[0235] It can be seen that each unit in the above apparatus can be one or more processors (or processing circuits) configured to implement the above methods, such as a CPU, a GPU, an NPU, a TPU, a DPU, a microprocessor, a DSP, an ASIC, an FPGA, or a combination of at least two of these processor forms.
[0236] In addition, each unit in the above apparatus can be integrated together in whole or in part, or can be independently implemented. In one implementation, these units are integrated together to implement a system-on-a-chip (SOC). The SOC can include at least one processor for implementing any of the above methods or functions of the units of the apparatus. The at least one processor can be of different types, such as a CPU and an FPGA, a CPU and an artificial intelligence processor, a CPU and a GPU, etc.
[0237] Referring to FIG. 11, FIG. 11 is a structural schematic diagram of a computing device provided in an embodiment of the present application. As shown in FIG. 11, the computing device 40 includes a processor 401, a communication interface 402, a memory 403 and a bus 404. The processor 401, the memory 403 and the communication interface 402 communicate with each other through the bus 404. It should be understood that the number of processors and memories in the computing device 40 is not limited in the present application.
[0238] In an implementation manner, the computing device 40 can be a terminal device with bandwidth regulation requirements. For example, the terminal device can be a vehicle, a robot, a drone or the like, which is an intelligent terminal with bandwidth regulation requirements.
[0239] In another implementation manner, the computing device 40 can be a network side device with computing capability. For example, the network side device can be a server (for example, a server for bandwidth configuration) deployed on the network side, or a component or a chip in the server. In some schemes, the network side device can also be a system level device or a computing device cluster composed of multiple servers. The network side device can be deployed in a cloud environment or an edge environment.
[0240] The bus 404 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For the convenience of representation, only one line is shown in FIG. 11, but it does not mean that there is only one bus or only one type of bus. The bus 404 can include a channel for transmitting information between various components (for example, the memory 403, the processor 401 and the communication interface 402) of the computing device 40.
[0241] The processor 401 can refer to the related description of the processor in the above embodiments, which will not be repeated here.
[0242] The memory 403 is configured to provide a storage space, in which data such as an operating system and a computer program can be stored. The memory 403 can be one or a combination of a random access memory (RAM), an erasable programmable read only memory (EPROM), a read-only memory (ROM) or a compact disc read memory (CD-ROM). The memory 403 can exist independently or be integrated into the processor 401.
[0243] The communication interface 402 can be configured to provide information input or output for the processor 401. Alternatively, the communication interface 402 can be configured to receive externally transmitted data and / or transmit data to the outside, which can be a wired link interface such as an Ethernet cable, or a wireless link (such as Wi-Fi, Bluetooth, general wireless transmission, etc.) interface. Alternatively, the communication interface 402 can further include a transmitter (such as a radio frequency transmitter, an antenna, etc.) or a receiver coupled with the interface.
[0244] The processor 401 in the computing device 40 is configured to read a computer program stored in the memory 403, and execute the aforementioned method, such as the method described in FIG. 2 or FIG. 7.
[0245] In a possible design, the computing device 40 can be one or more modules in an execution subject that executes the method shown in FIG. 2, and the processor 401 can be configured to read one or more computer programs stored in the memory, and execute the following operations:
[0246] The first bandwidth data includes n bandwidth sampling values of a first memory access component of the vehicle in a first driving scene, m operation tasks are running on the first memory access component, the m operation tasks are associated with the first driving scene, n and m are positive integers greater than 1, and the task scheduling information is used to indicate a running time sequence of the m operation tasks.
[0247] According to the first bandwidth data and the task scheduling information, second bandwidth data is obtained, and the second bandwidth data is used to indicate distribution information of bandwidth of each operation task in the m operation tasks in the time domain in the first driving scene.
[0248] In a possible design, the computing device 40 can be one or more modules in an execution subject that executes the method shown in FIG. 7, and the processor 401 can be configured to read one or more computer programs stored in the memory, and execute the following operations:
[0249] The first bandwidth configuration information is used to indicate bandwidth demand of each operation task in the m operation tasks in the first driving scene, and the first bandwidth configuration information is associated with the second bandwidth data.
[0250] In a case where the vehicle is in the first driving scene, the bandwidth of the first memory access component at a next time is obtained according to the task scheduling information and the first bandwidth configuration information.
[0251] The bandwidth prediction information including the bandwidth of the first memory accessing component at the next time is sent to the flow control regulator through the sending unit 314.
[0252] In the above-described embodiments, the description of each embodiment is focused on, and the parts not described in detail in a certain embodiment can be referred to the relevant description of other embodiments. In addition, in each embodiment of the present application, the terms and / or descriptions between the embodiments are consistent and can be referred to each other if there is no special description and logical conflict, and the technical features in different embodiments can be combined to form a new embodiment according to their inherent logical relationship.
[0253] It should be noted that all or part of the steps of various methods in the above-described embodiments can be completed by a program instructing relevant hardware, and the program can be stored in a computer readable storage medium, including read-only memory (ROM), random access memory (RAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), one-time programmable read-only memory (OTPROM), electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disk storage, magnetic disk storage, magnetic tape storage, or any other medium that can be used to carry or store data.
[0254] The technical solutions of the present application or the essential part or the whole or part of the technical solutions that make contributions can be embodied in the form of a software product, and the computer program product is stored in a storage medium and includes instructions for making a device (which can be a personal computer, a server, or a network device, a robot, a single-chip microcomputer, a chip, a robot, etc.) execute all or part of the steps of the method described in each embodiment of the present application.
Claims
A bandwidth construction method, characterized in that, The method comprises: obtaining first bandwidth data, the first bandwidth data comprising n bandwidth sampling values of a first memory access component of a vehicle in a first driving scene, m operation tasks being run on the first memory access component, the m operation tasks being associated with the first driving scene, n and m being positive integers greater than 1; obtaining task scheduling information, the task scheduling information being used to indicate a running time sequence of the m operation tasks; obtaining second bandwidth data according to the first bandwidth data and the task scheduling information, the second bandwidth data being used to indicate distribution information of bandwidth of each operation task in the m operation tasks in the time domain in the first driving scene. The method of claim 1, wherein Before the first bandwidth data is obtained, the method further comprises: starting an automatic driving system of the vehicle, the m operation tasks being scheduled to be executed in a case where the automatic driving system is started. The method according to claim 1 or 2, characterized in that The types to which the m operation tasks belong include at least one of an artificial intelligence (AI) model, a process, and an image signal processing algorithm. The method according to any one of claims 1 to 3, characterized in that The task scheduling information comprises running time of each operation task in the m operation tasks. The method according to any one of claims 1 to 4, characterized in that In a process of collecting the n bandwidth sampling values, each operation task in the m operation tasks runs at least once. The method according to any one of claims 1 to 5, characterized in that The n bandwidth sampling values correspond to n time points, an i-th bandwidth sampling value being collected at an i-th time point, the i-th bandwidth sampling value being a sum of bandwidth values of at least one operation task in the m operation tasks at the i-th time point, i being a positive integer less than or equal to n. The second bandwidth data is obtained according to the first bandwidth data and the task scheduling information, comprising: determining a weight matrix according to the task scheduling information, the weight matrix being used to indicate whether each operation task runs at each time point in the n time points; solving bandwidth values of the each operation task based on the weight matrix and the n bandwidth sampling values; obtaining the second bandwidth data according to the bandwidth values of the each operation task. The method according to claim 6, characterized in that A first operation task is any operation task in the m operation tasks, the first operation task having p bandwidth values solved by the solving, p being a positive integer less than or equal to n, the second bandwidth data comprising bandwidth data of the first operation task, the bandwidth data of the first operation task being used to indicate distribution information of bandwidth of the first operation task in the time domain in the first driving scene; The second bandwidth data is obtained according to the bandwidth values of the each operation task, comprising: performing fusion according to the p bandwidth values and phase information of the p bandwidth values to obtain the bandwidth data of the first operation task. The method of claim 7, wherein In a case where the first operation task performs multiple runs in a first time period, a bandwidth value when the first operation task is run for a first time comprises a first bandwidth value, a bandwidth value when the first operation task is run for a second time comprises a second bandwidth value, the n time points belonging to the first time period, the first bandwidth value and the second bandwidth value both belonging to the p bandwidth values. The phase information of the first bandwidth value is used to indicate a phase offset between a time corresponding to the first bandwidth value and a starting time of a first running of the first operation task, and the phase information of the second bandwidth value is used to indicate a phase offset between a time corresponding to the second bandwidth value and a starting time of a second running of the first operation task. The method according to any one of claims 6-8, characterized in that The weight matrix comprises a first weight value, the first weight value being a weight value of a jth operation task at an ith time, j being a positive integer less than or equal to m; When the first weight value is a first value, the first weight value indicates that the jth operation task runs at the ith time, and a bandwidth value of the jth operation task at the ith time is not zero; When the first weight value is a second value, the first weight value indicates that the jth operation task does not run at the ith time, and the bandwidth value of the jth operation task at the ith time is zero. The method according to any one of claims 1 to 9, characterized in that The method further comprises: obtaining first bandwidth configuration information, the first bandwidth configuration information being used to indicate bandwidth requirements of each operation task in the m operation tasks in the first driving scene, the first bandwidth configuration information being associated with the second bandwidth data; determining a bandwidth of the first memory component at a next time according to the first bandwidth configuration information and the task scheduling information. The method of claim 10, wherein The first bandwidth configuration information comprises a bandwidth performance parameter of each operation task in the first driving scene, and the bandwidth performance parameter comprises a bandwidth peak value and at least one of the following parameters: a bandwidth average value; an inference duration; and a bandwidth peak value occurrence time. The method according to claim 10 or 11, characterized in that The obtaining of the first bandwidth configuration information comprises: sending first information to a network side device, the first information comprising an identifier of the first driving scene and the second bandwidth data; receiving the first bandwidth configuration information from the network side device. The method according to claim 10 or 11, characterized in that The obtaining of the first bandwidth configuration information comprises: obtaining the first bandwidth configuration information according to the second bandwidth data. The method according to any one of claims 11-13, characterized in that The determining of the bandwidth of the first memory component at the next time according to the first bandwidth configuration information and the task scheduling information comprises: determining, according to the task scheduling information, that an operation task running at the next time of the first memory component is a second operation task, the second operation task belonging to the m operation tasks; obtaining a bandwidth performance parameter of the second operation task in the first driving scene based on an identifier of the second operation task; determining the bandwidth of the first memory component at the next time according to the bandwidth performance parameter of the second operation task in the first driving scene. A bandwidth prediction method characterized by comprising: The method comprises: obtaining first bandwidth configuration information, the first bandwidth configuration information being used to indicate bandwidth requirements of each operation task in m operation tasks in a first driving scene, the m operation tasks running on a first memory component of a vehicle, the m operation tasks being associated with the first driving scene, m being a positive integer greater than 1; In a case where the vehicle is in the first driving scene, a bandwidth of the first memory component at a next time is obtained according to task scheduling information and the first bandwidth configuration information, wherein the task scheduling information is used to indicate a running sequence of the m operation tasks. The method of claim 15, wherein The first bandwidth configuration information includes a bandwidth performance parameter of each operation task in the first driving scene, and the bandwidth performance parameter includes at least one of the following parameters: a bandwidth average value; an inference duration; and a bandwidth peak value occurrence time. The method according to claim 15 or 16, characterized in that The m operation tasks are scheduled to be executed in a case where an automatic driving system of the vehicle is started. The method according to any one of claims 15-17, characterized in that The type to which the m operation tasks belong includes at least one of an artificial intelligence (AI) model, a process, and an image signal processing algorithm. The method according to any one of claims 15-18, characterized in that The first bandwidth configuration information is associated with target bandwidth data, and the target bandwidth data is used to indicate distribution information of a bandwidth of each operation task in the m operation tasks in a time domain in the first driving scene. The method of claim 19, wherein The target bandwidth data is obtained by executing the method in any one of claims 1-9. The method according to any one of claims 16-19, characterized in that The bandwidth of the first memory component at the next time is determined according to the task scheduling information and the first bandwidth configuration information, including: determining, according to the task scheduling information, that an operation task running at the next time of the first memory component is a first operation task, and the first operation task belongs to the m operation tasks; obtaining, based on an identifier of the first operation task and the first bandwidth configuration information, a bandwidth performance parameter of the first operation task in the first driving scene; obtaining the bandwidth of the first memory component at the next time according to the bandwidth performance parameter of the first operation task in the first driving scene. The method according to any one of claims 15-21, characterized in that The first bandwidth configuration information is obtained, including: obtaining mapping information, wherein the mapping information includes a correspondence relationship among an identifier of the first memory component, an identifier of the first driving scene, and the first bandwidth configuration information; obtaining the first bandwidth configuration information based on the identifier of the first driving scene and the identifier of the first memory component by searching the mapping information. An apparatus for building bandwidth, characterized in that The apparatus includes: an obtaining unit configured to obtain first bandwidth data, wherein the first bandwidth data includes n bandwidth sampling values of a first memory component of a vehicle in a first driving scene, m operation tasks are running on the first memory component, the m operation tasks are associated with the first driving scene, and n and m are positive integers greater than 1; the obtaining unit is further configured to obtain task scheduling information, wherein the task scheduling information is used to indicate a running sequence of the m operation tasks; a processing unit configured to obtain second bandwidth data according to the first bandwidth data and the task scheduling information, wherein the second bandwidth data is used to indicate distribution information of a bandwidth of each operation task in the m operation tasks in a time domain in the first driving scene. An apparatus for predicting bandwidth, characterized by The apparatus includes: An obtaining unit is configured to obtain first bandwidth configuration information, the first bandwidth configuration information being used to indicate bandwidth requirements of each operation task in m operation tasks in a first driving scene, the m operation tasks being run on a first memory component of a vehicle, the m operation tasks being associated with the first driving scene, and m being a positive integer greater than 1. A processing unit is configured to, when the vehicle is in the first driving scene, obtain a bandwidth of the first memory component at a next time according to task scheduling information and the first bandwidth configuration information, the task scheduling information being used to indicate a running time sequence of the m operation tasks. An apparatus for building bandwidth, characterized in that The apparatus includes a memory and a processor, the memory stores computer program instructions, and the processor runs the computer program instructions to cause the apparatus to perform the method of any one of claims 1-14. An apparatus for predicting bandwidth, characterized in that The apparatus includes a memory and a processor, the memory stores computer program instructions, and the processor runs the computer program instructions to cause the apparatus to perform the method of any one of claims 15-22. A vehicle characterized by comprising: The vehicle includes the apparatus of at least one of claims 23-24, or includes the apparatus of at least one of claims 25-26. A computer-readable storage medium, characterized by The computer readable storage medium stores program instructions, the program instructions being used to implement the method of any one of claims 1-14, or implement the method of any one of claims 15-22. A computer program product comprising instructions, characterized in that When the instructions are run by the computing apparatus, the computing apparatus implements the method of any one of claims 1-14, or implements the method of any one of claims 15-22.