Allocating computing resources for vehicle applications
By using vehicle-specific offloading machine learning models in the vehicle controller, determining the optimal task configuration and criticality level of computing tasks and routing them to an appropriate remote server system, the problem of inefficient allocation of computing tasks in the prior art is solved, and more efficient computing resource utilization is achieved.
Patent Information
- Application Number
- CN202410557029.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-09-06
- Filing Date
- 2024-05-07
- Publication Date
- 2025-03-07
AI Technical Summary
Existing vehicle computing resource offload systems cannot effectively consider changes in the time sensitivity, performance parameters and network conditions of computing tasks, resulting in the inability to optimally allocate remote computing resources.
By using vehicle-specific offloading machine learning models in a vehicle controller, the optimal task configuration and criticality levels of the computing task are determined based on the task constraints and historical performance data of the computing task, and route the computing task to one of multiple remote server systems.
It realizes more accurate calculation task performance prediction and resource allocation, meets the task constraints and criticality levels of computing tasks, and improves the utilization efficiency of vehicle computing resources.
Smart Images

Figure CN119576515A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to systems and methods for allocating computing resources to a vehicle, and more particularly, to systems and methods for optimizing offloading of computing tasks to remote computing resources. Background Art
[0002] In order to improve occupant awareness and convenience, vehicles can be equipped with various sensors and systems, such as perception sensors (e.g., cameras, radars, ultrasonic distance sensors, etc.), microphones, navigation systems, advanced driver assistance systems (ADAS), autonomous driving systems (ADS), etc. Such sensors and systems can generate data that requires further computing tasks to be performed, such as computer vision processing, video processing, natural language processing, speech recognition, navigation routing, autonomous driving path planning, etc. Therefore, computing tasks can be offloaded to remote computing resources (e.g., remote data centers). However, current offloading systems and methods may not be able to take into account changes in factors such as computing task time sensitivity, computing task performance parameters and constraints, network conditions, etc. Therefore, current offloading systems may not be able to optimally allocate remote computing resources.
[0003] Therefore, while current vehicle computing systems and methods achieve their intended purposes, a need remains for a new and improved system and method for allocating computing resources to a vehicle. Summary of the invention
[0004] According to several aspects, the present disclosure provides a method for allocating computing resources to a vehicle. The method may include determining an optimal task configuration for a computing task based at least in part on a task constraint for the computing task. The method may also include determining a criticality level for the computing task based at least in part on the optimal task configuration for the computing task and the task constraint. The method may also include routing the computing task to one of a plurality of remote server systems based at least in part on the criticality level of the computing task.
[0005] In another aspect of the present disclosure, determining the optimal task configuration may also include determining the predicted performance of the computing task based at least in part on the task configuration of the computing task. Determining the optimal task configuration may also include comparing the predicted performance of the computing task with the task constraints of the computing task. Determining the optimal task configuration may also include modifying the task configuration of the computing task in response to determining that the predicted performance of the computing task does not satisfy the task constraints of the computing task. Determining the optimal task configuration may also include repeating the step of determining the predicted performance, the step of comparing the predicted performance, and the step of modifying the task configuration until the optimal task configuration is identified. The predicted performance of the computing task under the optimal task configuration satisfies the task constraints of the computing task.
[0006] In another aspect of the present disclosure, determining the predicted performance of the computing task may also include using a vehicle-specific offload machine learning model to determine the predicted performance of the computing task. The vehicle-specific offload machine learning model is configured to receive a task configuration of the computing task and historical vehicle-specific task performance data as input. The vehicle-specific offload machine learning model is configured to provide the predicted performance of the computing task as an output.
[0007] In another aspect of the present disclosure, the method may further include training a vehicle-specific offload machine learning model. Training the vehicle-specific offload machine learning model may further include training a global offload machine learning model based at least in part on historical global task performance data. The global offload machine learning model is trained using one of a plurality of remote server systems. Training the vehicle-specific offload machine learning model may further include deploying the global offload machine learning model from one of a plurality of remote server systems to a vehicle controller of the vehicle. Training the vehicle-specific offload machine learning model may further include training the vehicle-specific offload machine learning model based at least in part on the global offload machine learning model using the vehicle controller. The vehicle-specific offload machine learning model is trained using remote learning.
[0008] In another aspect of the present disclosure, training a vehicle-specific offload machine learning model based at least in part on the global offload machine learning model may also include training the global offload machine learning model using historical vehicle-specific task performance data to produce a vehicle-specific offload machine learning model.
[0009] In another aspect of the present disclosure, the historical global task performance data includes at least one of: a plurality of end-to-end round trip delays from previously completed computing tasks of a plurality of vehicles and network performance data of a plurality of network connections between the plurality of vehicles and a plurality of remote server systems. The historical vehicle-specific task performance data includes at least one of: a plurality of end-to-end round trip delays from previously completed computing tasks of a vehicle and network performance data of a plurality of network connections between the vehicle and a plurality of remote server systems.
[0010] In another aspect of the present disclosure, modifying the task configuration of the computing task may also include modifying the task configuration of the computing task using a vehicle-specific offloading machine learning model. The vehicle-specific offloading machine learning model is also configured to receive a task constraint of the computing task as input and provide a modified task configuration of the computing task as output.
[0011] In another aspect of the present disclosure, determining the criticality level of the computing task may also include determining the criticality level of the computing task based at least in part on the predicted performance of the computing task with the optimal task configuration. The criticality level includes one of the following: a low criticality level, a normal criticality level, a high criticality level, and an extremely high criticality level. Determining the criticality level of the computing task may also include comparing the criticality level with the allowed criticality level of the task constraints. Determining the criticality level of the computing task may also include modifying the criticality level in response to determining that the criticality level does not meet the allowed criticality level.
[0012] In another aspect of the present disclosure, routing the computing task to one of the multiple remote server systems may further include: in response to determining that the criticality level of the computing task is a low criticality level, routing the computing task to the first of the multiple remote server systems. The first of the multiple remote server systems is configured to provide a first throughput and a first delay. Routing the computing task to one of the multiple remote server systems may further include, in response to determining that the criticality level of the computing task is a normal criticality level, routing the computing task to the second of the multiple remote server systems. The second of the multiple remote server systems is configured to provide a first throughput and a second delay. The second delay is less than the first delay. Routing the computing task to one of the multiple remote server systems may further include, in response to determining that the criticality level of the computing task is a high criticality level, routing the computing task to the third of the multiple remote server systems. The third of the multiple remote server systems is configured to provide a second throughput and a second delay. The second throughput is less than the first throughput. Routing the computing task to one of the multiple remote server systems may further include, in response to determining that the criticality level of the computing task is an extremely high criticality level, routing the computing task to the fourth of the multiple remote server systems. The fourth of the multiple remote server systems is configured to provide a second throughput and a third delay. The third delay is less than the second delay.
[0013] In another aspect of the present disclosure, the task constraints of the computing task include at least a maximum end-to-end round-trip delay of the computing task.
[0014] According to several aspects, the present disclosure provides a system for allocating computing resources to a vehicle. The system may include multiple remote server systems and a vehicle system. The vehicle system may include a vehicle communication system that wirelessly communicates with the remote server system and a vehicle controller that electrically communicates with the vehicle communication system. The vehicle controller is programmed to determine an optimal task configuration for a computing task based at least in part on a task constraint of the computing task. The vehicle controller is also programmed to determine a criticality level of the computing task based at least in part on the optimal task configuration and the task constraint of the computing task. The vehicle controller is also programmed to route the computing task to one of the multiple remote server systems using the vehicle communication system based at least in part on the criticality level of the computing task.
[0015] In another aspect of the present disclosure, to determine an optimal task configuration, the vehicle controller is further programmed to determine a predicted performance of a computing task using a vehicle-specific offload machine learning model. The vehicle-specific offload machine learning model is configured to receive as input a task configuration and historical vehicle-specific task performance data for the computing task. The vehicle-specific offload machine learning model is configured to provide as output a predicted performance of the computing task. To determine the optimal task configuration, the vehicle controller is further programmed to compare the predicted performance of the computing task with the task constraints of the computing task. To determine the optimal task configuration, the vehicle controller is further programmed to modify the task configuration of the computing task in response to determining that the predicted performance of the computing task does not satisfy the task constraints of the computing task.
[0016] In another aspect of the present disclosure, in order to modify the task configuration of the computing task, the vehicle controller is also programmed to modify the task configuration of the computing task using a vehicle-specific offload machine learning model. The vehicle-specific offload machine learning model is also configured to receive a task constraint of the computing task as input and provide a modified task configuration of the computing task as output.
[0017] In another aspect of the present disclosure, a plurality of remote server systems include at least one server controller and at least one server communication system in electrical communication with the at least one server controller. The at least one server controller is programmed to train a global offload machine learning model based at least in part on historical global task performance data. The at least one server controller is also programmed to transmit the global offload machine learning model from the at least one server controller to the vehicle communication system using the at least one server communication system.
[0018] In another aspect of the present disclosure, the vehicle controller is further programmed to receive a global offload machine learning model using a vehicle communication system. The vehicle controller is further programmed to train a vehicle-specific offload machine learning model based at least in part on the global offload machine learning model using the vehicle controller. The vehicle-specific offload machine learning model is trained using distance learning.
[0019] In another aspect of the present disclosure, to determine the criticality level of the computing task, the vehicle controller is further programmed to determine the criticality level configuration of the computing task based at least in part on the predicted performance of the computing task with the best task. The criticality level includes one of the following: a low criticality level, a normal criticality level, a high criticality level, and an extremely high criticality level.
[0020] In another aspect of the present disclosure, the plurality of remote server systems may further include a first remote server system configured to provide a first throughput and a first delay. The plurality of remote server systems may further include a second remote server system configured to provide a first throughput and a second delay. The second delay is less than the first delay. The plurality of remote server systems may further include a third remote server system configured to provide a second throughput and a second delay. The second throughput is less than the first throughput. The plurality of remote server systems may further include a fourth remote server system configured to provide a second throughput and a third delay. The third delay is less than the second delay. In order to route the computing task, the vehicle controller is also programmed to route the computing task to the first remote server system in response to determining that the criticality level of the computing task is a low criticality level. In order to route the computing task, the vehicle controller is also programmed to route the computing task to the second remote server system in response to determining that the criticality level of the computing task is a normal criticality level. In order to route the computing task, the vehicle controller is also programmed to route the computing task to the third remote server system in response to determining that the criticality level of the computing task is a high criticality level. To route the computing task, the vehicle controller is further programmed to, in response to determining that the criticality level of the computing task is a very high criticality level, route the computing task to a fourth remote server system.
[0021] According to several aspects, the present disclosure provides a system for allocating computing resources to a vehicle. The system for allocating computing resources to a vehicle may include multiple remote server systems. The multiple remote server systems include a server communication system and a server controller in electrical communication with the server communication system. The server controller is programmed to train a global offloading machine learning model based at least in part on historical global task performance data. The server controller is also programmed to transmit the global offloading machine learning model using the server communication system. The system for allocating computing resources to a vehicle may also include a vehicle system. The vehicle system includes a vehicle communication system in wireless communication with the server communication system and a vehicle controller in electrical communication with the vehicle communication system. The vehicle controller is programmed to receive the global offloading machine learning model using the vehicle communication system. The vehicle controller is also programmed to train a vehicle-specific offloading machine learning model based at least in part on the global offloading machine learning model using the vehicle controller. The vehicle controller is also programmed to determine an optimal task configuration for a computing task using the vehicle-specific offloading machine learning model based at least in part on a task constraint of the computing task. The vehicle controller is also programmed to determine a criticality level of a computing task based at least in part on the optimal task configuration and task constraints of the computing task. The criticality level includes one of: a low criticality level, a normal criticality level, a high criticality level, and an extremely high criticality level. The vehicle controller is further programmed to route the computing task to one of a plurality of remote server systems using the vehicle communication system based at least in part on the criticality level of the computing task.
[0022] In another aspect of the present disclosure, in order to determine the optimal task configuration, the vehicle controller is also programmed to use the vehicle-specific offload machine learning model to determine the predicted performance of the computing task. The vehicle-specific offload machine learning model is configured to receive as input the task configuration of the computing task and historical vehicle-specific task performance data. The vehicle-specific offload machine learning model is configured to provide as output the predicted performance of the computing task. In order to determine the optimal task configuration, the vehicle controller is also programmed to compare the predicted performance of the computing task with the task constraints of the computing task. In order to determine the optimal task configuration, the vehicle controller is also programmed to modify the task configuration of the computing task in response to determining that the predicted performance of the computing task does not satisfy the task constraints of the computing task. The task configuration of the computing task is modified using the vehicle-specific offload machine learning model. The vehicle-specific offload machine learning model is also configured to receive as input the task constraints of the computing task and provide as output a modified task configuration of the computing task.
[0023] In another aspect of the present disclosure, the plurality of remote server systems may further include a first remote server system configured to provide a first throughput and a first delay. The plurality of remote server systems may further include a second remote server system configured to provide a first throughput and a second delay. The second delay is less than the first delay. The plurality of remote server systems may further include a third remote server system configured to provide a second throughput and a second delay. The second throughput is less than the first throughput. The plurality of remote server systems may further include a fourth remote server system configured to provide a second throughput and a third delay. The third delay is less than the second delay. In order to route the computing task, the vehicle controller is also programmed to route the computing task to the first remote server system in response to determining that the criticality level of the computing task is a low criticality level. In order to route the computing task, the vehicle controller is also programmed to route the computing task to the second remote server system in response to determining that the criticality level of the computing task is a normal criticality level. In order to route the computing task, the vehicle controller is also programmed to route the computing task to the third remote server system in response to determining that the criticality level of the computing task is a high criticality level. To route the computing task, the vehicle controller is further programmed to, in response to determining that the criticality level of the computing task is a very high criticality level, route the computing task to a fourth remote server system.
[0024] Further areas of applicability will become apparent from the description provided herein.It should be understood that the description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
[0026] Figure 1 is a schematic diagram of a system for allocating computing resources to a vehicle according to an exemplary embodiment;
[0027] Figure 2 is a flow chart of a method for allocating computing resources to a vehicle according to an exemplary embodiment; and
[0028] Figure 3 is a schematic diagram of an exemplary software architecture for executing a method for allocating computing resources to a vehicle according to an exemplary embodiment. DETAILED DESCRIPTION
[0029] The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses.
[0030] The vehicle system can be configured to perform computing tasks related to the operation of the vehicle, such as computer vision tasks (e.g., object recognition of objects in the vehicle's surroundings), video processing tasks (e.g., video encoding, video compression, etc.), natural language processing tasks (e.g., parsing and interpretation of traffic sign text), speech recognition tasks, navigation route tasks, autonomous driving path planning tasks, etc. In some examples, it is advantageous to offload the execution of one or more computing tasks from the vehicle to one or more remote computing resources. Therefore, the present disclosure provides a new and improved system and method for allocating computing resources to a vehicle, including optimizing the offloading of computing tasks to remote computing resources.
[0031] refer to Figure 1 , a system for allocating computing resources to a vehicle is illustrated and is generally indicated by the reference numeral 10. The system 10 is shown with an exemplary vehicle 12. Although a passenger vehicle is illustrated, it should be understood that the vehicle 12 may be any type of vehicle, including, for example, a utility vehicle, a taxi, a truck, and / or an automated vehicle using any SAE level of automation, without departing from the scope of the present disclosure. The system 10 generally includes a vehicle system 14 and a plurality of remote server systems 16. The vehicle system 14 includes a vehicle controller 18, a vehicle communication system 20, and a plurality of vehicle sensors 22. The plurality of remote server systems 16 include a cloud computing server system 24 and an edge computing server system 26.
[0032] The vehicle controller 18 is used to implement the method 100 for allocating computing resources to the vehicle, as will be described below. The vehicle controller 18 includes at least one processor 28 and a non-transitory computer-readable storage device or medium 30. The processor 28 can be a custom or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor in several processors associated with the vehicle controller 18, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or generally a device for executing instructions. The computer-readable storage device or medium 30 may include, for example, volatile and non-volatile storage devices in a read-only memory (ROM), a random access memory (RAM), and a keep-alive memory (KAM). KAM is a persistent or non-volatile memory that can be used to store various operating variables when the processor 28 is powered off. The computer readable storage device or medium 30 may be implemented using a number of storage devices, such as a PROM (Programmable Read Only Memory), an EPROM (Electrical PROM), an EEPROM (Electrically Erasable PROM), flash memory, or another electrical, magnetic, optical, or combination storage device capable of storing data, some of which represents executable instructions that may be used by the vehicle controller 18 to control the various systems of the vehicle 12. The vehicle controller 18 may also be comprised of multiple controllers that are in electrical communication with one another. The vehicle controller 18 may be interconnected with additional systems and / or controllers of the vehicle 12, allowing the vehicle controller 18 to access data, such as the speed, acceleration, braking, and steering angle of the vehicle 12.
[0033] The vehicle controller 18 is in electrical communication with the vehicle communication system 20 and a plurality of vehicle sensors 22. In an exemplary embodiment, the electrical communication is established using, for example, a CAN network, a FLEXRAY network, a local area network (e.g., WiFi, Ethernet, etc.), a serial peripheral interface (SPI) network, etc. It should be understood that various additional wired and wireless technologies and communication protocols for communicating with the vehicle controller 18 are within the scope of the present disclosure.
[0034] The vehicle controller 18 uses the vehicle communication system 20 to communicate with other systems external to the vehicle 12. For example, the vehicle communication system 20 includes the ability to communicate with vehicle communications ("V2V" communications), infrastructure ("V2I" communications), remote systems at a remote call center (e.g., General Motors' ON-STAR), and / or personal devices. In general, the term vehicle-to-everything communications ("V2X" communications) refers to communications between the vehicle 12 and any remote system (e.g., vehicle, infrastructure, and / or remote system). In certain embodiments, the vehicle communication system 20 is a wireless communication system that is configured to communicate via a wireless local area network (WLAN) using IEEE 802.11 standards or by using cellular data communications (e.g., using GSMA standards such as SGP.02, SGP.22, SGP.32, etc.). Therefore, the vehicle communication system 20 may also include an embedded universal integrated circuit card (eUICC) that is configured to store at least one cellular connection profile, such as an embedded subscriber identity module (eSIM) profile. The vehicle communication system 20 is also configured to communicate via a personal area network (e.g., Bluetooth) and / or near field communication (NFC). However, additional or alternative communication methods such as dedicated short-range communication (DSRC) channels and / or mobile telecommunication protocols based on the third generation partnership project (3GPP) standard are also considered to be within the scope of the present disclosure. DSRC channels refer to unidirectional or bidirectional short-range to medium-range wireless communication channels designed specifically for automotive use and a set of corresponding protocols and standards. 3GPP refers to a partnership between multiple standard organizations that develop mobile telecommunication protocols and standards. The structure of the 3GPP standard is "version". Therefore, communication methods based on 3GPP versions 16, 15, 16 and / or future 3GPP versions are considered to be within the scope of the present disclosure. Therefore, the vehicle communication system 20 may include one or more antennas and / or communication transceivers for receiving and / or transmitting signals, such as collaborative sensing messages (CSM). The vehicle communication system 20 is configured to wirelessly transmit information between the vehicle 12 and another vehicle. In addition, the vehicle communication system 20 is configured to wirelessly transmit information between the vehicle 12 and infrastructure or other vehicles. It should be appreciated that the vehicle communication system 20 may be integrated with the vehicle controller 18 (eg, on the same circuit board as the vehicle controller 18 or otherwise be a part of the vehicle controller 18 ) without departing from the scope of the present disclosure.
[0035] The plurality of vehicle sensors 22 are used to acquire information related to the vehicle 12 . In the exemplary embodiment, the plurality of vehicle sensors 22 include at least a camera system 32 and a global navigation satellite system (GNSS) 34 .
[0036] In another exemplary embodiment, the plurality of vehicle sensors 22 further include sensors for determining performance data regarding the vehicle 12. In a non-limiting example, the plurality of vehicle sensors 22 further include at least one of a motor speed sensor, a motor torque sensor, an electric drive motor voltage and / or current sensor, an accelerator pedal position sensor, a brake position sensor, a coolant temperature sensor, a cooling fan speed sensor, and a transmission oil temperature sensor.
[0037] In another exemplary embodiment, the plurality of vehicle sensors 22 further include sensors for determining information about the environment within the vehicle 12. In a non-limiting example, the plurality of vehicle sensors 22 further include at least one of a seat occupancy sensor, a cabin air temperature sensor, a cabin motion detection sensor, a cabin camera, a cabin microphone, and the like.
[0038] In another exemplary embodiment, the plurality of vehicle sensors 22 also include sensors for determining information about the environment surrounding the vehicle 12. In a non-limiting example, the plurality of vehicle sensors 22 also include at least one of an ambient air temperature sensor, an atmospheric pressure sensor, and / or a camera positioned to view the environment in front of the vehicle 12.
[0039] In another exemplary embodiment, at least one of the plurality of vehicle sensors 22 is a perception sensor capable of perceiving objects in the environment surrounding the vehicle 12 and / or measuring distances in the environment surrounding the vehicle 12. In a non-limiting example, the plurality of vehicle sensors 22 include a stereo camera with distance measurement capabilities. In one example, at least one of the plurality of vehicle sensors 22 is fixed to the interior of the vehicle 12, for example, fixed to the roof lining of the vehicle 12, with a view through the windshield of the vehicle 12. In another example, at least one of the plurality of vehicle sensors 22 is fixed to the exterior of the vehicle 12, for example, fixed to the roof of the vehicle 12, with a view of the environment surrounding the vehicle 12. It should be understood that various additional types of sensing sensors, such as camera sensors, LiDAR sensors, ultrasonic ranging sensors, radar sensors, and / or time of flight sensors are within the scope of the present disclosure. The plurality of vehicle sensors 22 are in electrical communication with the vehicle controller 18, as described above.
[0040] The camera system 32 is a perception sensor for capturing images and / or video of the environment surrounding the vehicle 12. In an exemplary embodiment, the camera system 32 includes a photo and / or video camera positioned to view the environment surrounding the vehicle 12. In a non-limiting example, the camera system 32 includes a camera fixed to the interior of the vehicle 12 (e.g., in the headliner of the vehicle 12) with a view through the windshield. In another non-limiting example, the camera system 32 includes a camera fixed to the exterior of the vehicle 12 (e.g., fixed to the roof of the vehicle 12) with a view of the environment in front of the vehicle 12.
[0041] In another exemplary embodiment, the camera system 32 is a surround view camera system that includes multiple cameras (also referred to as satellite cameras) arranged to provide views of the environment adjacent to all sides of the vehicle 12. In a non-limiting example, the camera system 32 includes a front camera (e.g., mounted in the front grille of the vehicle 12), a rear camera (e.g., mounted on the rear tailgate of the vehicle 12), and two side cameras (e.g., mounted below each of the two side view mirrors of the vehicle 12). In another non-limiting example, the camera system 32 also includes an additional rear view camera mounted near the center high mounted brake light of the vehicle 12.
[0042] It should be understood that camera systems with additional cameras and / or additional mounting locations are within the scope of the present disclosure. It should also be understood that cameras with various sensor types, including, for example, charge coupled device (CCD) sensors, complementary metal oxide semiconductor (CMOS) sensors, and / or high dynamic range (HDR) sensors, are within the scope of the present disclosure. In addition, cameras with various lens types, including, for example, wide angle lenses and / or narrow angle lenses, are also within the scope of the present disclosure.
[0043] GNSS 34 is used to determine the geographic location of vehicle 12. In an exemplary embodiment, GNSS 34 is a global positioning system (GPS). In a non-limiting example, GPS includes a GPS receiver antenna (not shown) and a GPS controller (not shown) in electrical communication with the GPS receiver antenna. The GPS receiver antenna receives signals from a plurality of satellites, and the GPS controller calculates the geographic location of vehicle 12 based on the signals received by the GPS receiver antenna. In an exemplary embodiment, GNSS 34 also includes a map. The map includes information about infrastructure, such as municipal boundaries, roads, railways, sidewalks, buildings, etc. Therefore, the geographic location of vehicle 12 is contextualized using map information. In a non-limiting example, a map is retrieved from a remote source using a wireless connection. In another non-limiting example, the map is stored in a database of GNSS 34. It should be understood that various additional types of satellite-based radio navigation systems, such as global positioning system (GPS), Galileo, GLONASS, and BeiDou navigation satellite system (BDS) are within the scope of the present disclosure. It should be appreciated that the GNSS 34 may be integrated with the vehicle controller 18 (eg, on the same circuit board as the vehicle controller 18 or otherwise as a part of the vehicle controller 18 ) without departing from the scope of the present disclosure.
[0044] The cloud computing server system 24 is used to perform computing tasks sent from the vehicle 12. In an exemplary embodiment, the cloud computing server system 24 is located in a regional data center. In an exemplary embodiment, the cloud computing server system 24 includes a first remote server system 40a, a second remote server system 40b, and a third remote server system 40c. In an exemplary embodiment, each of the first remote server system 40a, the second remote server system 40b, and the third remote server system 40c is configured to have different performance capabilities. In an exemplary embodiment, the first remote server system 40a is configured for high throughput and high latency performance. High throughput refers to multiple computing tasks that the first remote server system 40a can perform simultaneously. In a non-limiting example, the first remote server system 40a can complete thousands of computing tasks (e.g., 2000 simultaneous computing tasks) at the same time. High latency refers to the speed at which the first remote server system 40a can complete computing tasks. In a non-limiting example, the first remote server system 40a can complete each computing task within hundreds of milliseconds (e.g., 100 milliseconds).
[0045] In an exemplary embodiment, the second remote server system 40b is configured for high throughput and medium latency performance. Medium latency refers to the speed at which the second remote server system 40b can complete computing tasks. In a non-limiting example, the second remote server system 40b can complete each computing task within tens of milliseconds (e.g., 50 milliseconds).
[0046] In an exemplary embodiment, the third remote server system 40c is configured for low throughput and medium latency performance. Low throughput refers to multiple computing tasks that the third remote server system 40c can perform simultaneously. In a non-limiting example, the third remote server system 40c can complete dozens of computing tasks (e.g., 20 simultaneous computing tasks) simultaneously.
[0047] The edge computing server system 26 is used to perform computing tasks sent from the vehicle 12. In an exemplary embodiment, the edge computing server system 26 is located in a local data center. In a non-limiting example, the edge computing server system 26 is located near a road or other densely populated area, such as on a telephone pole, on a cellular tower, integrated into a traffic control device (e.g., a traffic light control device), etc. Computing systems such as the edge computing server system 26 are sometimes also referred to as roadside units (RSUs). In an exemplary embodiment, the edge computing server system 26 includes a fourth remote server system 40d. In an exemplary embodiment, the fourth remote server system 40d is configured to have different performance capabilities from the first remote server system 40a, the second remote server system 40b, and the third remote server system 40c. In an exemplary embodiment, the fourth remote server system 40d is configured for low throughput and low latency performance. Low latency refers to the speed at which the fourth remote server system 40d can complete computing tasks. In a non-limiting example, the fourth remote server system 40d can complete each computing task within a few milliseconds (e.g., 5 milliseconds).
[0048] Each of the first remote server system 40a, the second remote server system 40b, the third remote server system 40c, and the fourth remote server system 40d has a server controller 42, a server communication system 44, and a server storage device 46. The server controller 42 includes at least one server processor 48 and a non-transitory computer-readable storage device or server medium 50. The server processor 48 can be a customized or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor in several processors associated with the server controller 42, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or generally a device for executing instructions. The computer-readable storage device or medium 50 may include, for example, volatile and non-volatile storage devices in a read-only memory (ROM), a random access memory (RAM), and a keep-alive memory (KAM). KAM is a persistent or non-volatile memory that can be used to store various operating variables when the server processor 48 is powered off. The computer readable storage device or medium 50 may be implemented using a variety of storage devices, such as a PROM (programmable read-only memory), an EPROM (electrical PROM), an EEPROM (electrically erasable PROM), flash memory, or any other electrical, magnetic, optical, or combination storage device capable of storing data used by the server controller 42, some of which represents executable instructions.
[0049] The server storage device 46 is used to store computing task information for later retrieval. In an exemplary embodiment, the server storage device 46 is a non-volatile, persistent storage medium, such as a hard disk drive, a tape drive, a solid state drive, etc. In a non-limiting example, the server storage device 46 includes a solid state drive (SSD) that uses NAND flash memory to store digital data. In another non-limiting example, the server storage device 46 includes a hard disk drive (HDD) that uses magnetizable material to store digital data. The server storage device 46 is in electrical communication with the server controller 42.
[0050] As described above, each of the first remote server system 40a, the second remote server system 40b, the third remote server system 40c and the fourth remote server system 40d is configured with different performance (i.e., computing and storage) capabilities. In an exemplary embodiment, the first remote server system 40a, the second remote server system 40b, the third remote server system 40c and the fourth remote server system 40d have different hardware configurations.
[0051] In a non-limiting example, to facilitate high throughput performance, one or more of the first remote server system 40a, the second remote server system 40b, the third remote server system 40c, and the fourth remote server system 40d have multiple server controllers 42 operating in parallel and / or multiple server communication systems 44 operating in parallel. In a non-limiting example, to facilitate low latency performance, one or more of the first remote server system 40a, the second remote server system 40b, the third remote server system 40c, and the fourth remote server system 40d are equipped with a server controller 42 having a server processor 48 with a higher clock speed and / or a server communication system 44 capable of low latency communications.
[0052] In an exemplary embodiment, the cloud computing server system 24 is located in a regional data center. The edge computing server system 26 is located closer to the vehicle 12, such as in a local data center, thereby allowing for lower latency network communications. In a non-limiting example, each of the first remote server system 40a, the second remote server system 40b, the third remote server system 40c, and the fourth remote server system 40d can be equipped with additional software and / or hardware components, such as a load balancer and / or an autoscaler, allowing the first remote server system 40a, the second remote server system 40b, the third remote server system 40c, and the fourth remote server system 40d to adapt to changing computing and / or network load conditions. It should be understood that any hardware and / or software configuration suitable for providing a first remote server system 40a, a second remote server system 40b, a third remote server system 40c, and a fourth remote server system 40d with different performance capabilities, as described above, is within the scope of the present disclosure.
[0053] In an exemplary embodiment, the vehicle controller 18 is configured to perform computing tasks related to the operation of the vehicle 12, such as computer vision tasks (e.g., object recognition of objects in the environment surrounding the vehicle 12), video processing tasks (e.g., video encoding, video compression, etc.), natural language processing tasks (e.g., parsing and interpretation of traffic sign text), speech recognition tasks, navigation routing tasks, autonomous driving path planning tasks, etc. In a non-limiting example, the vehicle controller 18 uses a plurality of vehicle sensors 22 to perform measurements and collect data related to the computing tasks. In an exemplary embodiment, it is advantageous to offload the execution of one or more computing tasks from the vehicle controller 18 to a plurality of remote server systems 16.
[0054] Therefore, the vehicle controller 18 is configured to generate an offload request. The offload request includes one or more task constraints of the computing task and the task configuration of the computing task. The one or more task constraints define the minimum and / or maximum parameters of the computing task. For example, for a video processing task, one or more task constraints include a minimum frame size (e.g., 1280x720), a minimum bit depth (e.g., 8 bits), a minimum frame rate (e.g., 8 frames per second), and a maximum end-to-end round-trip delay (e.g., 120 milliseconds) of the computing task. Within the scope of the present disclosure, the end-to-end round-trip delay is the total time required to complete the computing task, measured from the sending of the computing task at the vehicle communication system 20 to the result of receiving the computing task (e.g., an encoded video file) at the vehicle communication system 20. The one or more task constraints also include one or more allowed criticality levels of the computing task, as will be discussed in more detail below. Within the scope of the present disclosure, the criticality level represents the time criticality of the computing task.
[0055] The task configuration of a computing task includes metadata of the computing task and parameters for completing the computing task. When the vehicle controller 18 initially generates an unload request, the task configuration is the preferred task configuration. As will be discussed in more detail below, the task configuration can be modified to meet one or more task constraints. In a non-limiting example, for a video processing task, the task configuration includes the length of the video (e.g., 3 seconds), frame size (e.g., 1920x1080), bit depth (e.g., 24 bits), and frame rate (e.g., 10 frames per second).
[0056] refer to Figure 2, a flow chart of a method 100 for allocating computing resources to a vehicle 12 is shown. The method 100 starts at box 102 and proceeds to box 104. At box 104, a plurality of remote server systems 16 are used to train a global offloading machine learning model. Within the scope of the present disclosure, the global offloading machine learning model is a machine learning model configured to receive an offloading request and performance data as input and predict an end-to-end round-trip delay of a computing task, a Boolean value is a value indicating whether offloading is possible, and a modified task configuration. Within the scope of the present disclosure, the performance data includes historical task performance data (e.g., historical end-to-end round-trip delays of computing tasks based on their task configurations), current network performance data (e.g., signal strength, bandwidth usage, packet loss rate, packet retransmission rate, throughput, latency, jitter, uptime, etc.), and historical network performance data. Within the scope of the present disclosure, offloading may not be possible under certain conditions, for example, if network performance is degraded and / or if one or more task constraints exceed the performance capabilities of the plurality of remote server systems 16. The modified task configuration is a change made to the task configuration in order to optimize offloading. For example, the modified task configuration may include performing the video processing task at a reduced frame rate (eg, 9 frames per second instead of 10 frames per second) in order to reduce the end-to-end round-trip latency of the video processing task.
[0057] In a non-limiting example, the global offloading machine learning model includes multiple layers, including an input layer and an output layer, and one or more hidden layers. The input layer receives an offloading request and performance data as input. The input is then passed to the hidden layer. Each hidden layer applies a transformation (e.g., a nonlinear transformation) to the data and passes the result to the next hidden layer until the last hidden layer. The output layer produces the end-to-end round-trip delay of the computing task, a Boolean value indicating whether it can be offloaded, and a modified task configuration.
[0058] In an exemplary embodiment, a global offload machine learning model is trained using one of the multiple remote server systems 16 (e.g., cloud computing server system 24). The global offload machine learning model is trained using global performance data. Within the scope of the present disclosure, the global performance data includes historical global task performance data (e.g., historical end-to-end round-trip delays of computing tasks sent from multiple vehicles), current global network performance data (e.g., signal strength, bandwidth utilization, packet loss rate, packet retransmission rate, throughput, latency, jitter, uptime, etc. of network connections between the multiple remote server systems 16 and the multiple vehicles, and historical global network performance data of the network connections between the multiple remote server systems 16 and the multiple vehicles).
[0059] To train the global offloading machine learning model, the input dataset and its corresponding end-to-end round-trip latency, a Boolean indicating whether offloading is possible, and the modified task configuration are used. The model is trained by adjusting the internal weights between nodes in each hidden layer to minimize the prediction error. During training, optimization techniques such as gradient descent are used to adjust the internal weights to reduce the prediction error. The training process is repeated for the entire dataset until the prediction error is minimized, and the resulting trained model is then used to process new input data.
[0060] After the global offloading machine learning model is fully trained, it is able to more accurately and precisely estimate end-to-end round-trip latency, a Boolean value indicating whether offloading is possible, and modified task configurations based on offloading requests and performance data. By adjusting the weights between nodes in each hidden layer during training, the model "learns" to recognize patterns in the data that indicate end-to-end round-trip latency, a Boolean value indicating whether offloading is possible, and modified task configurations.
[0061] It should be understood that the global offload machine learning model can be configured to receive additional data as input, such as environmental data (e.g., the location of the vehicle 12, weather conditions, etc.) without departing from the scope of the present disclosure. After training, the global offload machine learning model is transmitted (i.e., deployed) from one of the plurality of remote server systems 16 (e.g., the cloud computing server system 24) to the vehicle controller 18 (i.e., using the server communication system 44 and the vehicle communication system 20). After block 104, the method 100 proceeds to block 106.
[0062] At box 106, the vehicle controller 18 receives the global offload machine learning model and trains the vehicle-specific offload machine learning model. In an exemplary embodiment, the vehicle-specific offload machine learning model is trained using remote learning. In an exemplary embodiment, remote learning includes, for example, federated learning. Within the scope of the present disclosure, federated learning involves refining the global model using a local data set. Therefore, the vehicle-specific offload machine learning model is trained by refining the global offload machine learning model using vehicle-specific performance data. Within the scope of the present disclosure, the vehicle-specific performance data includes historical vehicle-specific task performance data (e.g., historical end-to-end round-trip delays of computing tasks sent specifically from the vehicle 12, such as multiple end-to-end round-trip delays of previously completed computing tasks from the vehicle 12), current vehicle-specific network performance data (e.g., signal strength, bandwidth usage, packet loss rate, packet retransmission rate, throughput, latency, jitter, uptime, etc. for connections between multiple remote server systems 16 and the vehicle 12), and historical vehicle-specific network performance data for connections between multiple remote server systems 16 and the vehicle 12. It should be understood that vehicle-specific performance data may be unique to each individual vehicle due to a variety of factors, such as the typical usage area of each individual vehicle, the hardware configuration of each individual vehicle, etc.
[0063] In an exemplary embodiment, after training the vehicle-specific offload machine learning model, the vehicle controller 18 compares the performance of the vehicle-specific offload machine learning model with the performance of the global offload machine learning model. In a non-limiting example, the vehicle controller 18 compares the performance of the vehicle-specific offload machine learning model with the performance of the global offload machine learning model using historical data. Based on the comparison, the vehicle controller 18 uses the vehicle-specific offload machine learning model or the global offload machine learning model, whichever is more accurate.
[0064] In an exemplary embodiment, vehicle-specific offload model training is only performed under certain conditions, such as when there is a low computational load on the vehicle controller 18 , when the vehicle 12 is parked and connected to a power source, etc. After frame 106 , the method 100 proceeds to frame 108 .
[0065] At block 108 , the vehicle controller 18 creates an offload request for the computing task, including one or more task constraints for the computing task and a task configuration for the computing task, as described above. After block 108 , the method 100 proceeds to block 110 .
[0066] At box 110, the vehicle controller 18 determines a predicted performance of the computing task using the vehicle-specific offloading machine learning model generated at box 106. The vehicle-specific offloading machine learning model is configured to receive as input one or more task constraints of the computing task, a task configuration of the computing task, and vehicle-specific performance data, and provide as output the predicted performance of the computing task and a modified task configuration. Within the scope of the present disclosure, the predicted performance of the computing task includes a predicted end-to-end round-trip delay of the computing task and a predicted Boolean value indicating whether offloading is possible. After box 110, the method 100 proceeds to box 112.
[0067] At block 112, the predicted performance of the computing task is compared to one or more task constraints of the computing task. If the Boolean value of the prediction indicating whether offloading is possible is false (i.e., offloading is not possible), the method 100 continues to enter the standby state at block 114. If the predicted end-to-end round-trip delay is greater than the maximum end-to-end round-trip delay in the one or more task constraints (i.e., the predicted performance of the computing task does not satisfy the one or more task constraints), the method 100 proceeds to block 116. If the predicted end-to-end round-trip delay is less than or equal to the maximum end-to-end round-trip delay in the one or more task constraints, the method 100 proceeds to block 118.
[0068] At box 116, in response to determining that the predicted performance of the computing task does not satisfy one or more task constraints, the vehicle controller 18 modifies the task configuration based on the modified task configuration determined at box 110. In a non-limiting example, the modified task configuration includes reducing the frame rate of the video processing task, as described above. After box 116, the method 100 returns to box 110 so that the vehicle controller 18 can determine the predicted performance of the computing task based on the modified task configuration. Boxes 110, 112, and 116 are repeated until an optimal task configuration is identified. Within the scope of the present disclosure, an optimal task configuration is a task configuration that provides an optimal trade-off between predicted performance, quality of computing task results, and resource allocation for the computing task.
[0069] At box 118, the vehicle controller 18 determines the criticality level of the computing task. Within the scope of the present disclosure, the criticality level represents the time criticality of the computing task. In some examples, the criticality level may also indicate how critical the computing task is operationally. For example, if the computing task is related to the safe operation of the vehicle 12, the computing task may be considered to be extremely critical operationally, regardless of the time criticality. In an exemplary embodiment, the criticality of the computing task includes at least one of the following: a low criticality level, a normal criticality level, a high criticality level, and an extremely high criticality level. A computing task of a low criticality level must be completed within a few seconds. A computing task of a normal criticality level must be completed within hundreds of milliseconds. A computing task of a high criticality level must be completed within tens of milliseconds. A computing task of a very high criticality level must be completed within milliseconds (i.e., less than ten milliseconds).
[0070] Thus, at box 118, if the computing task has a predicted performance indicating a predicted end-to-end round-trip delay of the order of seconds (i.e., greater than or equal to 999 milliseconds), the criticality level of the computing task is determined to be a low criticality level. If the predicted performance of the computing task indicates that the predicted end-to-end round-trip delay is approximately hundreds of milliseconds (i.e., less than or equal to 999 milliseconds and greater than 99 milliseconds), the criticality level of the computing task is determined to be a normal criticality level. If the predicted performance of the computing task indicates that the predicted end-to-end round-trip delay is approximately tens of milliseconds (i.e., less than or equal to 99 milliseconds and greater than 9 milliseconds), the criticality level of the computing task is determined to be a high criticality level. If the computing task has a predicted performance indicating that the predicted end-to-end round-trip delay is in the order of milliseconds (i.e., less than or equal to 9 milliseconds), the criticality level of the computing task is determined to be an extremely high criticality level. It should be understood that other methods for determining criticality levels, including, for example, machine learning models trained to determine criticality levels based on multiple factors, are also within the scope of the present disclosure.
[0071] In an exemplary embodiment, at box 118, the vehicle controller 18 compares the criticality level of the computing task with the criticality level allowed in one or more task constraints of the computing task. If the criticality level of the computing task does not meet the criticality level allowed in one or more task constraints of the computing task, the criticality level is modified. In a non-limiting example, if the criticality level is higher than the criticality level allowed in one or more task constraints of the computing task, the criticality level is reduced to the maximum allowed criticality level in one or more task constraints of the computing task. If the criticality level is lower than the criticality level allowed in one or more task constraints of the computing task, the criticality level is increased to the minimum allowed criticality level in one or more task constraints of the computing task. After box 118, the method 100 proceeds to box 120.
[0072] At box 120, the vehicle controller 18 routes the computing task to one of the plurality of remote server systems 16. In an exemplary embodiment, the computing task is routed based at least in part on the criticality level of the computing task. In a non-limiting example, in response to determining that the criticality level of the computing task is a low criticality level, the computing task is routed to the first remote server system 40a. In response to determining that the criticality level of the computing task is a normal criticality level, the computing task is routed to the second remote server system 40b. In response to determining that the criticality level of the computing task is a medium criticality level, the computing task is routed to the third remote server system 40c. In response to determining that the criticality level of the computing task is a high criticality level, the computing task is routed to the third remote server system 40c. In response to determining that the criticality level of the computing task is an extremely high criticality level, the computing task is routed to the fourth remote server system 40d. In a non-limiting example, the vehicle controller 18 uses the vehicle communication system 20 to wirelessly transmit the computing task, including the task configuration and any additional data required to complete the computing task (e.g., a video source file for a video processing computing task) for receipt by the server communication system 44 of one of the plurality of remote server systems 16. After block 120, the method 100 proceeds to blocks 122 and 124.
[0073] At box 122, the vehicle controller 18 receives the results of the computing task from one of the plurality of remote server systems 16 using the vehicle communication system 20. In a non-limiting example, for a computer vision task, the results include the location and classification of objects identified in the environment surrounding the vehicle 12. In another non-limiting example, for a video processing task, the results include an encoded video file. In another non-limiting example, for an autonomous driving path planning task, the results include a series of waypoints in the environment surrounding the vehicle 12, forming a path for the vehicle 12 to follow. After box 122, the method 100 continues to enter the standby state at box 114.
[0074] At box 124, the vehicle controller 18 records the actual performance metrics of the computing task. In an exemplary embodiment, the actual performance metrics include the actual end-to-end round-trip delay of the computing task, the network conditions when receiving the computing task results, and the environmental conditions when receiving the computing task results. In a non-limiting example, the actual performance metrics are determined by the vehicle controller 18 using the vehicle communication system 20 and the plurality of vehicle sensors 22. The actual performance metrics are saved as part of the vehicle-specific performance data, including historical vehicle-specific task performance data and historical vehicle-specific network performance data. In an exemplary embodiment, the actual performance metrics are saved in the medium 30 of the vehicle controller 18.
[0075] Additionally, at block 124, the vehicle controller 18 transmits the actual performance metric to one or more of the plurality of remote server systems 16 using the vehicle communication system 20 so that the actual performance metric is added to the historical global mission performance data stored in the server storage device 46 of one or more of the plurality of remote server systems 16, including the historical global mission performance data and the historical global network performance data. After block 124, the method 100 continues to enter the standby state at block 114.
[0076] In an exemplary embodiment, the vehicle controller 18 repeatedly exits the standby state 114 and restarts the method 100 at block 102. In a non-limiting example, the vehicle controller 18 exits the standby state 114 and restarts the method 100 on a timer, such as every three hundred milliseconds.
[0077] refer to Figure 3 , a schematic diagram of an exemplary software architecture 60 for performing the method 100 using the system 10 is shown. As described above, in an exemplary embodiment, the method 100 is performed using the system 10. In a non-limiting example, the vehicle controller 18 and the server controller 42 of the remote server system 16 are configured with a set of computer executable instructions (i.e., a computer program) to perform the method 100. The set of computer executable instructions can be written according to any programming paradigm, including, for example, a functional programming paradigm, an imperative programming paradigm, an object-oriented programming paradigm, etc. In addition, the set of computer executable instructions can be written using any computer programming language.
[0078] The exemplary software architecture 60 is an example of an organizational structure of a set of computer executable instructions. The exemplary software architecture 60 includes multiple software modules. Within the scope of the present disclosure, a software module represents an independent software component that is capable of receiving input data, performing operations on the input data according to computer executable instructions, storing intermediate values (i.e., variables), and providing output data. In a non-limiting example, the software modules are programmatically implemented as functions, methods, subroutines, subroutines, etc. In an exemplary embodiment, one or more software modules are configured to run in a non-blocking manner, which means that the failure or suspension of any one software module will not cause the failure or suspension of any other software module. In a non-limiting example, one or more software modules are executed simultaneously on separate threads of the vehicle controller 18 and / or the server controller 42.
[0079] Referring again to 3, in the exemplary software architecture 60, the vehicle controller 18 executes a task handler module 62, an offload optimizer module 64, and a performance monitoring module 66. The task handler module 62 is configured to coordinate the execution of computing tasks. As described above, computing tasks may include, for example, computer vision tasks, video processing tasks, natural language processing tasks, navigation routing tasks, autonomous driving path planning tasks, etc. The task handler module 62 allocates computing resources of the vehicle controller 18 to perform computing tasks. In some examples, it is advantageous to offload one or more computing tasks to multiple remote server systems 16. Therefore, the task handler module 62 is configured to generate an offload request, as discussed above with reference to box 108 of method 100. The task handler module 62 then transmits the offload request to the offload optimizer module 64.
[0080] The offload optimizer module 64 is configured to receive an offload request from the task handler module 62. The offload optimizer module 64 is also configured to train and execute a vehicle-specific offload machine learning model, as discussed above with reference to blocks 106 and 110. In addition, the offload optimizer module 64 is also configured to modify the task configuration and return the modified task configuration to the task handler module 62, as discussed above with reference to block 116 of the method 100. The offload optimizer module 64 communicates with the first remote server system 40a, the second remote server system 40b, the third remote server system 40c, and the fourth remote server system 40d. The offload optimizer module 64 is also configured to route the computing task to one of the first remote server system 40a, the second remote server system 40b, the third remote server system 40c, and the fourth remote server system 40d, as discussed above with reference to block 120 of the method 100. The offload optimizer module 64 is also configured to receive the result of the computing task from one of the first remote server system 40a, the second remote server system 40b, the third remote server system 40c, and the fourth remote server system 40d, and send the result of the computing task to the task handler module 62, as discussed above with reference to block 122 of the method 100. The offload optimizer module 64 communicates with the performance monitor module 66.
[0081] The performance monitoring module 66 is configured to record and aggregate vehicle-specific performance data, including historical vehicle-specific mission performance data, current vehicle-specific network performance data, and historical vehicle-specific network performance data. In some examples, the performance monitoring module 66 also records and aggregates global performance data. The performance monitoring module 66 communicates with the offload optimizer module 64. The performance monitoring module 66 is configured to provide the vehicle-specific performance data to the offload optimizer module 64.
[0082] Multiple remote server systems 16 execute the unloading continuous learning module 68. In an exemplary embodiment, the unloading continuous learning module 68 is executed by the cloud computing server system 24. In a non-limiting example, the unloading continuous learning module 68 is executed by one or more of the first remote server system 40a, the second remote server system 40b, and the third remote server system 40c. In another non-limiting example, the unloading continuous learning module 68 is executed by a separate remote server system within the cloud computing server system 24. The unloading continuous learning module 68 is configured to train a global unloading machine learning model, as discussed above with reference to box 104 of the method 100. The unloading continuous learning module 68 communicates with the performance monitoring module 66 to receive global performance data for training the global unloading machine learning model. The unloading continuous learning module 68 also periodically receives vehicle-specific performance data from the performance monitoring module 66 for updating the global performance data. The unloading continuous learning module 68 communicates with the unloading optimizer module 64 to provide the global unloading machine learning model to the unloading optimizer module 64. The offload continuous learning module 68 is also configured to periodically update the global offload machine learning model and send the updated global offload machine learning model to the offload optimizer module 64 .
[0083] It should be understood that the exemplary software architecture 60 is merely exemplary in nature. Any configuration of the system 10 suitable for performing the method 100 is within the scope of the present disclosure.
[0084] The system 10 and method 100 of the present disclosure have several advantages. Using the system 10 and method 100, the computing resources of the vehicle controller 18 and multiple remote server systems 16 are efficiently allocated to computing tasks. Using a vehicle-specific offload machine learning model, the task configuration of the computing task is modified based on multiple factors, such as current and past network performance. The use of remote learning allows the global offload machine learning model to be customized or adapted to the vehicle 12 so that the vehicle-specific offload machine learning model takes into account factors unique to the vehicle 12, such as cell signal strength and connection quality in the environment surrounding the vehicle 12. The use of multiple remote server systems 16 with different performance capabilities allows for the routing of computing tasks to minimize resource consumption.
[0085] The description of the present disclosure is merely exemplary in nature, and variations that do not depart from the gist of the present disclosure are intended to fall within the scope of the present disclosure. These variations should not be regarded as departing from the scope and scope of the present disclosure.
Claims
1. A method for allocating computing resources to a vehicle, the method comprising: determining an optimal task configuration for the computing task based at least in part on a task constraint of the computing task; determining a criticality level of the computing task based at least in part on the optimal task configuration and the task constraints of the computing task; as well as The computing task is routed to one of a plurality of remote server systems based at least in part on the criticality level of the computing task.
2. The method according to claim 1, wherein determining the optimal task configuration further comprises: determining a predicted performance of the computing task based at least in part on a task configuration of the computing task; comparing the predicted performance of the computing task with the task constraints of the computing task; In response to determining that the predicted performance of the computing task does not satisfy the task constraints of the computing task, modifying a task configuration for computing the task; as well as The step of determining the predicted performance, the step of comparing the predicted performance, and the step of modifying the task configuration are repeated until the optimal task configuration is identified, wherein the predicted performance of the computing task under the optimal task configuration satisfies the task constraints of the computing task.
3. The method of claim 2, wherein determining the predicted performance of the computing task further comprises: A predicted performance of the computing task is determined using a vehicle-specific offload machine learning model, wherein the vehicle-specific offload machine learning model is configured to receive a task configuration of the computing task and historical vehicle-specific task performance data as input, and wherein the vehicle-specific offload machine learning model is configured to provide the predicted performance of the computing task as output.
4. The method of claim 3, wherein the method further comprises training the vehicle-specific unloading machine learning model, wherein training the vehicle-specific unloading machine learning model further comprises: training a global offload machine learning model based at least in part on the historical global task performance data, wherein the global offload machine learning model is trained using one of the plurality of remote server systems; deploying the global offload machine learning model from one of the plurality of remote server systems to a vehicle controller of the vehicle; as well as The vehicle specific unloading machine learning model is trained using the vehicle controller based at least in part on the global unloading machine learning model, wherein the vehicle specific unloading machine learning model is trained using distance learning.
5. The method of claim 4, wherein training the vehicle-specific offloading machine learning model based at least in part on the global offloading machine learning model further comprises: The global offloading machine learning model is trained using historical vehicle-specific task performance data to generate the vehicle-specific offloading machine learning model.
6. The method according to claim 5, wherein: The historical global task performance data includes at least one of: a plurality of end-to-end round trip delays of previously completed computing tasks from a plurality of vehicles and network performance data of a plurality of network connections between the plurality of vehicles and the plurality of remote server systems; as well as The historical vehicle-specific task performance data includes at least one of: a plurality of end-to-end round trip delays from previously completed computing tasks of the vehicle and network performance data of a network connection between the vehicle and the plurality of remote server systems.
7. The method according to claim 3, wherein modifying the task configuration of the computing task further comprises: The vehicle-specific offloading machine learning model is used to modify the task configuration of the computing task, wherein the vehicle-specific offloading machine learning model is also configured to receive the task constraints of the computing task as input and provide a modified task configuration of the computing task as output.
8. The method of claim 2, wherein determining the criticality level of the computing task further comprises: determining a criticality level of the computing task based at least in part on the predicted performance of the computing task with the optimal task configuration, wherein the criticality level comprises one of: a low criticality level, a normal criticality level, a high criticality level, and an extremely high criticality level; comparing the criticality level to an allowed criticality level of the task constraints; and The criticality level is modified in response to determining that the criticality level does not satisfy the allowed criticality level.
9. The method of claim 8, wherein routing the computing task to one of the plurality of remote server systems further comprises: In response to determining that the criticality level of the computing task is the low criticality level, routing the computing task to a first remote server system among the plurality of remote server systems, wherein the first remote server system among the plurality of remote server systems is configured to provide a first throughput and a first latency; In response to determining that the criticality level of the computing task is the normal criticality level, routing the computing task to a second remote server system of the plurality of remote server systems, wherein the second remote server system of the plurality of remote server systems is configured to provide a first throughput and a second latency, and wherein the second latency is less than the first latency; In response to the determining that the criticality level of the computing task is the high criticality level, routing the computing task to a third remote server system of the plurality of remote server systems, wherein the third remote server system of the plurality of remote server systems is configured to provide a second throughput and a second latency, and wherein the second throughput is less than the first throughput; as well as In response to determining that the criticality level of the computing task is the extremely high criticality level, routing the computing task to a fourth remote server system among the multiple remote server systems, wherein the fourth remote server system among the multiple remote server systems is configured to provide a second throughput and a third latency, and wherein the third latency is less than the second latency.
10. The method of claim 1, wherein the task constraints of the computing task include at least a maximum end-to-end round-trip delay of the computing task.