ALLOCATION OF COMPUTING RESOURCES FOR A VEHICLE APPLICATION

DE102024112238A1Pending Publication Date: 2025-03-06GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE102024112238
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-06
Filing Date
2024-05-02
Publication Date
2025-03-06

Smart Images

  • Figure 00000000_0001_ABST
    Figure 00000000_0001_ABST
  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for allocating computing resources to a vehicle includes determining an optimal task configuration for a computational task, based at least partially on a task constraint. The method may further include determining a criticality level for the computational task, based at least partially on the optimal task configuration and the task constraint. The method may also include forwarding the computational task to one of several remote server systems, based at least partially on the criticality level of the computational task.
Need to check novelty before this filing date? Find Prior Art

Description

INTRODUCTION

[0001] The present disclosure relates to systems and methods for allocating computing resources for a vehicle, and more particularly to systems and methods for optimizing the offloading of computing tasks to remote computing resources.

[0002] To increase occupant alertness and comfort, vehicles may be equipped with various sensors and systems, such as perception sensors (e.g., cameras, radar, ultrasonic distance sensors, and / or the like), microphones, navigation systems, advanced driver assistance systems (ADAS), automated driving systems (ADS), and / or the like. Such sensors and systems may generate data that requires the execution of further computing tasks, such as computer image processing, video processing, natural language processing, speech recognition, navigation routing, automatic path planning, and / or the like. Therefore, computing tasks may be offloaded to remote computing resources (e.g., a remote data center). However, current offloading systems and methods may not take into account the various factors, such as:the time sensitivity of computing tasks, the performance parameters and constraints of computing tasks, network conditions, and / or the like. As a result, current offloading systems may not allocate remote computing resources optimally.

[0003] Therefore, while current vehicle computing systems and methods serve their purpose, there is a need for a new and improved system and method for allocating computing resources for a vehicle. SUMMARY

[0004] According to several aspects, a method for allocating computing resources for a vehicle is provided. The method may include determining an optimal task configuration for a computing task based at least in part on a task constraint of the computing task. The method may further include determining 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 method may further include forwarding 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 further comprise determining a predicted performance of the computational task based at least in part on a task configuration of the computational task. Determining the optimal task configuration may further comprise comparing the predicted performance of the computational task to the task constraint of the computational task. Determining the optimal task configuration may further comprise modifying the task configuration of the computational task in response to determining that the predicted performance of the computational task does not satisfy the task constraint of the computational task.Determining the optimal task configuration may further comprise repeating the step of determining the predicted performance, the step of comparing the predicted performance, and the step of changing the task configuration until the optimal task configuration is identified. The predicted performance of the computing task with the optimal task configuration satisfies the task constraint of the computing task.

[0006] In another aspect of the present disclosure, determining the predicted performance of the compute task may further comprise determining the predicted performance of the compute task using a vehicle-specific offloading machine learning model. The vehicle-specific offloading machine learning model is configured to receive the task configuration of the compute task and historical vehicle-specific task performance data as input. The vehicle-specific offloading machine learning model is configured to provide the predicted performance of the compute task as output.

[0007] In another aspect of the present disclosure, the method may further comprise training the vehicle-specific offloading machine learning model. Training the vehicle-specific offloading machine learning model may further comprise training a global offloading machine learning model based at least in part on historical global performance data. The global offloading machine learning model is trained with one of the plurality of remote server systems. Training the vehicle-specific offloading machine learning model may further comprise providing the global offloading machine learning model from one of the plurality of remote server systems to a vehicle controller of the vehicle.Training the vehicle-specific offloading machine learning model may further include training the vehicle-specific offloading machine learning model based at least in part on the global offloading machine learning model using the vehicle controller. The vehicle-specific offloading machine learning model is trained using remote learning.

[0008] In another aspect of the present disclosure, training the vehicle-specific offloading machine learning model based at least in part on the global offloading machine learning model may further comprise training the global offloading machine learning model with historical vehicle-specific task performance data to generate the vehicle-specific offloading 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 latencies of previously completed computing tasks of a plurality of vehicles; and network performance data for a plurality of network connections between the plurality of vehicles and the 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 latencies of previously completed computing tasks of the vehicle; and network performance data for a network connection between the vehicle and the plurality of remote server systems.

[0010] In another aspect of the present disclosure, changing the task configuration of the computational task may further comprise changing the task configuration of the computational task using the vehicle-specific offloading machine learning model. The vehicle-specific offloading machine learning model is further configured to receive the task constraint of the computational task as input and provide a modified task configuration for the computational task as output.

[0011] In another aspect of the present disclosure, determining the criticality level of the compute task may further comprise determining the criticality level of the compute task based at least in part on the predicted performance of the compute task with the optimal task configuration. The criticality level comprises one of: a low criticality level, a normal criticality level, a high criticality level, and a very high criticality level. Determining the criticality level of the compute task may further comprise comparing the criticality level to an allowable criticality level of the task constraint. Determining the criticality level of the compute task may further comprise changing the criticality level in response to determining that the criticality level does not meet the allowable criticality level.

[0012] In another aspect of the present disclosure, forwarding the compute task to one of the plurality of remote server systems may further comprise forwarding the compute task to a first of the plurality of remote server systems in response to determining that the criticality level of the compute task is the low criticality level. The first of the plurality of remote server systems is configured to provide a first throughput and a first latency. Forwarding the compute task to one of the plurality of remote server systems may further comprise forwarding the compute task to a second of the plurality of remote server systems in response to determining that the criticality level of the compute task is the normal criticality level. The second of the plurality of remote server systems is configured to provide the first throughput and a second latency. The second latency is shorter than the first latency.Forwarding the compute task to one of the plurality of remote server systems may further comprise forwarding the compute task to a third of the plurality of remote server systems in response to determining that the criticality level of the compute task is the high criticality level. The third of the plurality of remote server systems is configured to provide a second throughput and the second latency. The second throughput is less than the first throughput. Forwarding the compute task to one of the plurality of remote server systems may further comprise forwarding the compute task to a fourth of the plurality of remote server systems in response to determining that the criticality level of the compute task is the very high criticality level. The fourth of the plurality of remote server systems is configured to provide the second throughput and a third latency. The third latency is shorter than the second latency.

[0013] In another aspect of the present disclosure, the task constraint of the compute task includes at least a maximum end-to-end round trip latency for the compute task.

[0014] According to several aspects, a system for allocating computing resources for a vehicle is provided. The system may include a plurality of remote server systems and a vehicle system. The vehicle system may include a vehicle communication system in wireless communication with the remote server system and a vehicle controller in electrical communication 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 further 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 further programmed to forward the computing task to one of the plurality of 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 the optimal task configuration, the vehicle controller is further programmed to determine a predicted performance of the computing task using a vehicle-specific offloading machine learning model. The vehicle-specific offloading 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 offloading machine learning model is configured to provide the predicted performance of the computing task as output. To determine the optimal task configuration, the vehicle controller is further programmed to compare the predicted performance of the computing task with the task constraint of the computing task.To determine the optimal task configuration, the vehicle controller is further programmed to change the task configuration of the computing task in response to determining that the predicted performance of the computing task does not satisfy the task constraint of the computing task.

[0016] In another aspect of the present disclosure, the vehicle controller is further programmed to change the task configuration of the computing task using the vehicle-specific offloading machine learning model. The vehicle-specific offloading machine learning model is further configured to receive the task constraint of the computing task as input and provide a modified task configuration for the computing task as output.

[0017] In another aspect of the present disclosure, the plurality of remote server systems comprise at least one server controller and at least one server communication system electrically connected to the at least one server controller. The at least one server controller is programmed to train a global offloading machine learning model based at least in part on historical global performance task data. The at least one server controller is further programmed to transmit the global offloading machine learning model from the at least one server controller to the vehicle communication system via the at least one server communication system.

[0018] In another aspect of the present disclosure, the vehicle controller is further programmed to receive the global offloading machine learning model using the vehicle communication system. The vehicle controller is further programmed to train the vehicle-specific offloading machine learning model based at least in part on the global offloading machine learning model using the vehicle controller. The vehicle-specific offloading machine learning model is trained using remote learning.

[0019] In another aspect of the present disclosure, the vehicle controller is further programmed to determine the criticality level of the computational task based at least in part on the predicted performance of the computational task with the optimal task configuration. The criticality level includes one of: a low criticality level, a normal criticality level, a high criticality level, and a very high criticality level.

[0020] In another aspect of the present disclosure, the plurality of remote server systems may further comprise a first remote server system configured to provide a first throughput and a first latency. The plurality of remote server systems may further comprise a second remote server system configured to provide the first throughput and a second latency. The second latency is shorter than the first latency. The plurality of remote server systems may further comprise a third remote server system configured to provide a second throughput and the second latency. The second throughput is less than the first throughput. The plurality of remote server systems may further comprise a fourth remote server system configured to provide the second throughput and a third latency. The third latency is shorter than the second latency.To forward the computing task, the vehicle controller is further programmed to forward the computing task to the first remote server system in response to determining that the criticality level of the computing task is the low criticality level. To forward the computing task, the vehicle controller is further programmed to forward the computing task to the second remote server system in response to determining that the criticality level of the computing task is the normal criticality level. To forward the computing task, the vehicle controller is further programmed to forward the computing task to the third remote server system in response to determining that the criticality level of the computing task is the high criticality level.To forward the computing task, the vehicle controller is further programmed to forward the computing task to the fourth remote server system in response to determining that the criticality level of the computing task is the very high criticality level.

[0021] According to several aspects, a system for allocating computing resources for a vehicle is provided. The system for allocating computing resources for a vehicle may include a plurality of remote server systems. The plurality of remote server systems include a server communication system and a server controller electrically connected to 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 performance data. The server controller is further programmed to transmit the global offloading machine learning model using the server communication system. The system for allocating computing resources for a vehicle may further include a vehicle system.The vehicle system includes a vehicle communication system that wirelessly communicates with the server communication system, and a vehicle controller electrically connected to the vehicle communication system. The vehicle controller is programmed to receive the global machine learning model using the vehicle communication system. The vehicle controller is further programmed to train a vehicle-specific machine learning model based at least in part on the global machine learning model used by the vehicle controller. The vehicle controller is further programmed to determine an optimal task configuration for a computing task using the vehicle-specific machine learning model based at least in part on a task constraint of the computing task.The vehicle controller is further programmed to determine 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. The criticality level includes one of: a low criticality level, a normal criticality level, a high criticality level, and a very high criticality level. The vehicle controller is further programmed to forward the computing task to one of the 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, to determine the optimal task configuration, the vehicle controller is further programmed to determine the predicted performance of the computing task using the vehicle-specific offloading machine learning model. The vehicle-specific offloading 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 offloading machine learning model is configured to provide the predicted performance of the computing task as output. To determine the optimal task configuration, the vehicle controller is further programmed to compare the predicted performance of the computing task with the task constraint of the computing task.To determine the optimal task configuration, the vehicle controller is further programmed to change the task configuration of the computing task in response to determining that the predicted performance of the computing task does not satisfy the task constraint of the computing task. The task configuration of the computing task is changed using the vehicle-specific offloading machine learning model. The vehicle-specific offloading machine learning model is further configured to receive the task constraint of the computing task as input and provide a modified task configuration for the computing task as output.

[0023] In another aspect of the present disclosure, the plurality of remote server systems may further comprise a first remote server system configured to provide a first throughput and a first latency. The plurality of remote server systems may further comprise a second remote server system configured to provide the first throughput and a second latency. The second latency is shorter than the first latency. The plurality of remote server systems may further comprise a third remote server system configured to provide a second throughput and the second latency. The second throughput is less than the first throughput. The plurality of remote server systems may further comprise a fourth remote server system configured to provide the second throughput and a third latency. The third latency is shorter than the second latency.To forward the computing task, the vehicle controller is further programmed to forward the computing task to the first remote server system in response to determining that the criticality level of the computing task is the low criticality level. To forward the computing task, the vehicle controller is further programmed to forward the computing task to the second remote server system in response to determining that the criticality level of the computing task is the normal criticality level. To forward the computing task, the vehicle controller is further programmed to forward the computing task to the third remote server system in response to determining that the criticality level of the computing task is the high criticality level.To forward the computing task, the vehicle controller is further programmed to forward the computing task to the fourth remote server system in response to determining that the criticality level of the computing task is the very high criticality level.

[0024] Further areas of applicability will become apparent from the following description. It should be understood that the description and specific examples are 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 illustrative purposes only and are not intended to limit the scope of the present disclosure in any way. Fig. 1 is a schematic diagram of a system for allocating computing resources for a vehicle according to an exemplary embodiment; Fig. 2 is a flowchart of a method for allocating computing resources for a vehicle according to an exemplary embodiment; and Fig. 3 is a schematic diagram of an example software architecture for performing the method for allocating computing resources for a vehicle according to an example embodiment. DETAILED DESCRIPTION

[0026] The following description is merely exemplary and is not intended to limit the present disclosure, application, or uses.

[0027] Vehicle systems may be configured to perform computational tasks related to the operation of the vehicle, such as computer vision tasks (e.g., object detection of objects in the vehicle's environment), video processing tasks (e.g., video encoding, video compression, and / or the like), natural language processing tasks (e.g., parsing and interpreting traffic sign text), speech recognition tasks, navigation routing tasks, automatic path planning tasks, and / or the like. In some examples, it is advantageous to offload the execution of one or more computational tasks from the vehicle to one or more remote computing resources. Accordingly, the present disclosure provides a new and improved system and method for allocating computational resources for a vehicle, including optimizing the offloading of computational tasks to remote computing resources.

[0028] Referring to Fig. 1, a system for allocating computing resources for a vehicle is illustrated and generally designated by the reference numeral 10. The system 10 is illustrated with an example vehicle 12. Although a passenger car is illustrated, the vehicle 12 may be any type of vehicle, such as a commercial vehicle, a taxi, a delivery truck, and / or an automated vehicle with 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 includes a cloud computing server system 24 and an edge computing server system 26.

[0029] The vehicle controller 18 is used to implement a method 100 for allocating computing resources for a vehicle, as 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 may be a custom or off-the-shelf processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among a plurality of processors connected to 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 media 30 may include volatile and non-volatile memory, such as read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM).KAM is a persistent or non-volatile memory that may be used to store various operating variables while the processor 28 is powered off. The computer-readable storage device(s) or media 30 may be implemented using a variety of storage devices such as PROMs (programmable read-only memory), EPROMs (electrically PROMs), EEPROMs (electrically erasable PROMs), flash memory, or other electrical, magnetic, optical, or combination storage devices capable of storing data, some of which may be executable instructions used by the vehicle controller 18 to control various systems of the vehicle 12. The vehicle controller 18 may also be comprised of multiple controllers in electrical communication with one another.The vehicle controller 18 may be connected to additional systems and / or controls of the vehicle 12 so that the vehicle controller 18 can access data such as speed, acceleration, braking, and steering angle of the vehicle 12.

[0030] The vehicle controller 18 is in electrical communication with the vehicle communication system 20 and the 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., Wi-Fi, Ethernet, and the like), a Serial Peripheral Interface (SPI) network, or the like. It is 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.

[0031] The vehicle communication system 20 is used by the vehicle controller 18 to communicate with other systems external to the vehicle 12. The vehicle communication system 20 includes, for example, functions for communicating with vehicles ("V2V" communication), with the infrastructure ("V2I" communication), with remote systems in a remote call center (e.g., ON-STAR from GENERAL MOTORS), and / or with personal devices. In general, the term vehicle-to-everything ("V2X" communication) refers to communication between the vehicle 12 and any remote system (e.g., vehicles, infrastructure, and / or remote systems). In certain embodiments, the vehicle communication system 20 is a wireless communication system configured to communicate over a wireless local area network (WLAN) using IEEE 802.11 standards or using cellular data communication (e.g.,using GSMA standards, such as SGP.02, SGP.22, SGP.32, and the like). Accordingly, the vehicle communication system 20 may further include an embedded universal integrated circuit card (eUICC) configured to store at least one cellular connectivity configuration profile, e.g., an embedded subscriber identity module (eSIM) profile. The vehicle communication system 20 is further 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 a dedicated short-range communication channel (DSRC) and / or mobile telecommunications protocols based on the 3rd Generation Partnership Project (3GPP) standards, are also contemplated within the scope of the present disclosure.DSRC channels are short- to medium-range, single- or two-way wireless communication channels specifically designed for use in motor vehicles, along with a set of corresponding protocols and standards. The 3GPP is a partnership between several standards organizations that develop protocols and standards for mobile telecommunications. 3GPP standards are structured as "releases." Therefore, communication methods based on 3GPP versions 16, 15, 16, and / or future 3GPP versions are within the scope of the present disclosure. Accordingly, the vehicle communication system 20 may include one or more antennas and / or communication transceivers for receiving and / or transmitting signals, such as cooperative sensing messages (CSMs). The vehicle communication system 20 is configured to wirelessly communicate information between the vehicle 12 and another vehicle.Furthermore, the vehicle communication system 20 is configured to wirelessly transmit information between the vehicle 12 and the infrastructure or other vehicles. It is understood that the vehicle communication system 20 may be integrated into the vehicle controller 18 (e.g., on the same circuit board as the vehicle controller 18 or otherwise as part of the vehicle controller 18) without departing from the scope of the present disclosure.

[0032] The plurality of vehicle sensors 22 are used to collect information relevant to the vehicle 12. In an exemplary embodiment, the plurality of vehicle sensors 22 include at least one camera system 32 and a global navigation satellite system (GNSS) 34.

[0033] In another exemplary embodiment, the plurality of vehicle sensors 22 further include sensors for determining performance data of the vehicle 12. In one non-limiting example, the plurality of vehicle sensors 22 further include at least one of an engine speed sensor, an engine 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.

[0034] In another exemplary embodiment, the plurality of vehicle sensors 22 further include sensors for determining information about an environment within the vehicle 12. In one 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 / or the like.

[0035] In another exemplary embodiment, the plurality of vehicle sensors 22 further comprise sensors for determining information about an environment of the vehicle 12. In one non-limiting example, the plurality of vehicle sensors 22 further comprise at least one of an ambient air temperature sensor, a barometric pressure sensor, and / or a still and / or video camera arranged to observe the environment in front of the vehicle 12.

[0036] In another exemplary embodiment, at least one of the plurality of vehicle sensors 22 is a perception sensor capable of sensing objects and / or measuring distances in the environment of the vehicle 12. In one non-limiting example, the plurality of vehicle sensors 22 include a stereoscopic camera with distance measurement capabilities. In one example, at least one of the plurality of vehicle sensors 22 is mounted inside the vehicle 12, e.g., in a headliner of the vehicle 12, viewing through a windshield of the vehicle 12. In another example, at least one of the plurality of vehicle sensors 22 is mounted outside the vehicle 12, e.g., on a roof of the vehicle 12, providing a view of the environment of the vehicle 12. It is understood that various additional types of perception sensors, such asCamera sensors, LiDAR sensors, ultrasonic sensors, radar sensors, and / or time-of-flight sensors fall within the scope of the present disclosure. The plurality of vehicle sensors 22 are electrically connected to the vehicle controller 18 as described above.

[0037] The camera system 32 is a perception sensor that can capture images and / or videos of the surroundings of the vehicle 12. In an exemplary embodiment, the camera system 32 includes a still and / or video camera arranged to observe the surroundings of the vehicle 12. In one non-limiting example, the camera system 32 includes a camera mounted inside the vehicle 12, e.g., in a headliner of the vehicle 12, and looking through the windshield. In another non-limiting example, the camera system 32 includes a camera mounted outside the vehicle 12, e.g., on the roof of the vehicle 12, and capturing the surroundings in front of the vehicle 12.

[0038] In another exemplary embodiment, the camera system 32 is a surround-view camera system with multiple cameras (also called satellite cameras) arranged to provide a view of the surroundings on all sides of the vehicle 12. In one non-limiting example, the camera system 32 includes a forward-facing camera (e.g., mounted in a grille of the vehicle 12), a rear-facing camera (e.g., mounted on a tailgate of the vehicle 12), and two side-facing 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 further includes an additional rearview camera mounted near a high-mounted center brake light of the vehicle 12.

[0039] It is understood that camera systems with additional cameras and / or additional mounting points fall within the scope of the present disclosure. It goes without saying that cameras with various sensor types, e.g., CCD (charge-coupled device) sensors, CMOS (complementary metal oxide semiconductor) sensors, and / or HDR (high dynamic range) sensors, fall within the scope of the present disclosure. Furthermore, cameras with various lens types, e.g., wide-angle and / or narrow-angle lenses, also fall within the scope of the present disclosure.

[0040] The GNSS 34 is used to determine the geographic location of the vehicle 12. In one exemplary embodiment, the GNSS 34 is a global positioning system (GPS). In one non-limiting example, the GPS includes a GPS receiving antenna (not shown) and a GPS controller (not shown) electrically connected to the GPS receiving antenna. The GPS receiving antenna receives signals from multiple satellites, and the GPS controller calculates the geographic location of the vehicle 12 based on the signals received by the GPS receiving antenna.

[0041] In an exemplary embodiment, the GNSS 34 additionally includes a map. The map includes information about infrastructure such as municipal boundaries, roads, railroads, sidewalks, buildings, and the like. Therefore, the geographic location of the vehicle 12 is contextualized using the map information. In one non-limiting example, the map is retrieved from a remote source using a wireless connection. In another non-limiting example, the map is stored in a database of the GNSS 34. It is understood that various additional types of satellite-based radio navigation systems, such as the Global Positioning System (GPS), Galileo, GLONASS, and the BeiDou Navigation Satellite System (BDS), are within the scope of the present disclosure. It is understood that the GNSS 34 may be integrated into the vehicle controller 18 (e.g.,on the same circuit board as the vehicle controller 18 or otherwise as part of the vehicle controller 18) without departing from the scope of the present disclosure.

[0042] The cloud computing server system 24 is used to execute 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, the first remote server system 40a, the second remote server system 40b, and the third remote server system 40c are each configured with different performance capabilities. In an exemplary embodiment, the first remote server system 40a is configured for high throughput and high latency. High throughput refers to a number of computing tasks that the first remote server system 40a can execute simultaneously.In one non-limiting example, the first remote server system 40a is capable of executing thousands of computational tasks concurrently (e.g., 2000 concurrent computational tasks). High latency refers to the speed at which the first remote server system 40a is capable of executing computational tasks. In one non-limiting example, the first remote server system 40a is capable of executing each computational task in hundreds of milliseconds (e.g., 100 milliseconds).

[0043] In an exemplary embodiment, the second remote server system 40b is configured for high throughput and medium latency. Medium latency refers to the speed at which the second remote server system 40b is capable of performing computational tasks. In one non-limiting example, the second remote server system 40b is capable of completing each computational task in a few tens of milliseconds (e.g., 50 milliseconds).

[0044] In an exemplary embodiment, the third remote server system 40c is configured for low throughput and medium latency performance. Low throughput refers to the number of compute tasks that the third remote server system 40c can execute concurrently. In one non-limiting example, the third remote server system 40c is capable of executing dozens of compute tasks concurrently (e.g., 20 concurrent compute tasks).

[0045] The edge computing server system 26 is used to execute computing tasks sent from the vehicle 12. In one exemplary embodiment, the edge computing server system 26 is located in a local data center. In one non-limiting example, the edge computing server system 26 is located near roads or other populated areas, such as on telephone poles, on cell phone towers, integrated with traffic control devices (e.g., a traffic light controller), and / or the like. Computing systems such as the edge computing server system 26 are sometimes referred to as roadside units (RSU). In one exemplary embodiment, the edge computing server system 26 includes a fourth remote server system 40d. In one exemplary embodiment, the fourth remote server system 40d is configured with different capabilities than 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 a speed at which the fourth remote server system 40d is capable of executing computational tasks. In one non-limiting example, the fourth remote server system 40d is capable of executing each computational task in milliseconds (e.g., 5 milliseconds).

[0046] 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 each include a server controller 42, a server communications system 44, and a server storage device 46. The server controller 42 includes at least one server processor 48 and a non-transferable computer-readable storage device or server media 50. The server processor 48 may be a custom or off-the-shelf processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among a plurality of processors connected to the server controller 42, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or generally an apparatus for executing instructions. The computer-readable storage device or server media 50 may include volatile and non-volatile memories, e.g.,read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM). KAM is persistent or non-volatile memory that may be used to store various operating variables while the server processor 48 is powered off. The computer-readable storage device or server medium 50 may be implemented using a variety of storage devices such as PROMs (programmable read-only memory), EPROMs (electrically PROMs), EEPROMs (electrically erasable PROMs), flash memory, or other electrical, magnetic, optical, or combination storage devices capable of storing data, some of which may be executable instructions used by the server controller 42.

[0047] The server storage device 46 is used to store information about computing tasks for later retrieval. In one example embodiment, the server storage device 46 is a non-volatile, persistent storage medium, such as a hard disk drive, a magnetic tape drive, a solid-state drive, and the like. In one non-limiting example, the server storage device 46 includes a solid-state drive (SSD) that uses NAND flash to store digital data. In another non-limiting example, the server storage device 46 includes a hard disk drive (HDD) that uses a magnetizable material to store digital data. The server storage device 46 is in electrical communication with the server controller 42.

[0048] As described above, 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 configured with different performance characteristics (i.e., computing and storage capacity). 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.

[0049] In one non-limiting example, 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 includes multiple parallel server controllers 42 and / or multiple parallel server communication systems 44 to enable high throughput performance. In one non-limiting example, to facilitate low latency performance, one or more of the first remote server systems (40a), the second remote server systems (40b), the third remote server systems (40c), and the fourth remote server systems (40d) are equipped with a server controller (42) having a higher clock speed server processor (48) and / or a server communication system (44) capable of low latency communication.

[0050] 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, e.g., in a local data center, thus enabling lower latency network communication. In one 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 may be equipped with additional software and / or hardware components, such as a load balancer and / or an autoscaler, so that 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 adapt to changing computing and / or network load conditions.It is understood that any hardware and / or software configurations suitable for providing 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 with different performance capabilities as described above are within the scope of the present disclosure.

[0051] In an exemplary embodiment, the vehicle controller 18 is configured to perform computational tasks related to the operation of the vehicle 12, such as computer vision tasks (e.g., object detection of objects in the environment of the vehicle 12), video processing tasks (e.g., video encoding, video compression, and / or the like), natural language processing tasks (e.g., parsing and interpreting traffic sign text), speech recognition tasks, navigation routing tasks, automatic path planning tasks, and / or the like. In one non-limiting example, the vehicle controller 18 uses the plurality of vehicle sensors 22 to perform measurements and collect data related to the computational tasks. In an exemplary embodiment, it is advantageous to offload the execution of one or more computational tasks from the vehicle controller 18 to the plurality of remote server systems 16.

[0052] Accordingly, the vehicle controller 18 is configured to generate an offload request. The offload request includes one or more task constraints for a computing task and a task configuration of the computing task. The one or more task constraints define minimum and / or maximum parameters of the computing task. For a video processing task, for example, the one or more task constraints include a minimum image 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 latency for the computing task (e.g., 120 milliseconds).For the purposes of the present disclosure, the end-to-end round-trip latency is a total time required to complete the computational task, measured from the time the computational task is transmitted to the vehicle communication system 20 until a result of the computational task (e.g., an encoded video file) is received at the vehicle communication system 20. The one or more task constraints further include one or more allowable criticality levels for the computational task, as explained in more detail below. For the purposes of the present disclosure, the criticality level indicates how time-critical the computational task is.

[0053] The task configuration of the compute task includes metadata about the compute task and parameters for executing the compute task. When the vehicle controller 18 initially generates an offload request, the task configuration is a preferred task configuration. As explained in more detail below, the task configuration may be modified to satisfy the one or more task constraints. In a non-limiting example of a video processing task, the task configuration includes a video length (e.g., 3 seconds), a frame size (e.g., 1920x1080), a bit depth (e.g., 24 bits), and a frame rate (e.g., 10 frames per second).

[0054] Referring to Fig. 2 illustrates a flowchart of the method 100 for allocating computing resources for the vehicle 12. The method 100 begins at block 102 and proceeds to block 104. At block 104, the plurality of remote server systems 16 are used to train a global offloading machine learning model. For the purposes 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 latency for the compute task, a Boolean value indicating whether offloading is possible, and a modified task configuration. For the purposes of the present disclosure, the performance data includes historical task performance data (e.g., historical end-to-end round-trip latencies of compute tasks based on their task configuration), current network performance data (e.g.,Signal strength, bandwidth utilization, packet loss rate, packet retransmission rate, throughput, latency, jitter, uptime, and / or the like) and historical network performance data. Within the scope of the present disclosure, offloading may not be possible under certain conditions, e.g., when network performance is degraded and / or when the one or more task limitations exceed the capabilities of the plurality of remote server systems 16. The modified task configuration is a change to the task configuration to optimize offloading. For example, the modified task configuration may include performing the video processing task at a reduced frame rate (e.g., 9 frames per second instead of 10 frames per second) to reduce the end-to-end round-trip latency of the video processing task.

[0055] As a non-limiting example, the offloading machine learning model comprises 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 inputs. The inputs are then passed to the hidden layers. 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 is reached. The output layer provides the end-to-end round-trip latency for the compute task, the Boolean value indicating whether offloading is possible, and the modified task configuration.

[0056] In an exemplary embodiment, the global offloading machine learning model is trained with one of the plurality of remote server systems 16, for example, the cloud computing server system 24. The global offloading machine learning model is trained using global performance data. For the purposes of the present disclosure, global performance data includes historical global task performance data (e.g., historical end-to-end round-trip latencies of compute tasks sent from multiple vehicles), current global network performance data (e.g., signal strength, bandwidth utilization, packet loss rate, packet retry rate, throughput, latency, jitter, uptime, and / or the like for network connections between the plurality of remote server systems 16 and the plurality of vehicles), and historical global network performance data for network connections between the plurality of remote server systems 16 and the plurality of vehicles.

[0057] To train the global offloading machine learning model, a dataset containing inputs and the corresponding end-to-end round-trip latency, a Boolean value indicating whether offloading is possible, and a modified task configuration is used. The model is trained by adjusting the internal weights between nodes in each hidden layer to minimize the prediction error. During training, an optimization technique (e.g., gradient descent) is used to adjust the internal weights and reduce the prediction error. The training process is repeated with the entire dataset until the prediction error is minimized, and the trained model is then used to process new input data.

[0058] After sufficient training of the global offloading machine learning model, the model is able to more accurately and precisely estimate the end-to-end round-trip latency, the Boolean value indicating whether offloading is possible, and the changed task configuration based on an offloading request and performance data. By adjusting the weights between the nodes in each hidden layer during training, the model "learns" to recognize patterns in the data that indicate the end-to-end round-trip latency, the Boolean value indicating whether offloading is possible, and the changed task configuration.

[0059] It should be understood that the global offload machine learning model may be configured to receive additional data as input, such as environmental data (e.g., location of the vehicle 12, weather conditions, and / or the like), 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.

[0060] In block 106, the vehicle controller 18 receives the global offloading machine learning model and trains a vehicle-specific offloading machine learning model. In an exemplary embodiment, the vehicle-specific offloading machine learning model is trained through remote learning. In an exemplary embodiment, remote learning includes, for example, federated learning. In the context of the present disclosure, federated learning includes refining a global model using a local dataset. Accordingly, the vehicle-specific offloading machine learning model is trained by refining the global offloading machine learning model with vehicle-specific performance data. In the context of the present disclosure, the vehicle-specific performance data includes historical vehicle-specific task performance data (e.g.,historical end-to-end round-trip latencies of computing tasks specifically sent from the vehicle 12, such as multiple end-to-end round-trip latencies of previously completed computing tasks from the vehicle 12), current vehicle-specific network performance data (e.g., signal strength, bandwidth utilization, packet loss rate, packet retransmission rate, throughput, latency, jitter, uptime, and / or the like for a connection between the multiple remote server systems 16 and the vehicle 12), and historical vehicle-specific network performance data for the connection between the multiple remote server systems 16 and the vehicle 12. It should be understood that the vehicle-specific performance data may be unique for each individual vehicle due to several factors, such as the typical deployment of each individual vehicle, the hardware configuration of each individual vehicle, and / or the like.

[0061] In an exemplary embodiment, after training the vehicle-specific offloading machine learning model, the vehicle controller 18 compares a performance of the vehicle-specific offloading machine learning model with a performance of the global offloading machine learning model. In one non-limiting example, the vehicle controller 18 uses historical data to compare the performance of the vehicle-specific offloading machine learning model with the performance of the global offloading machine learning model. Based on the comparison, the vehicle controller 18 uses the vehicle-specific offloading machine learning model or the global offloading machine learning model, whichever is more accurate.

[0062] In an exemplary embodiment, training of the vehicle-specific offload learning model is performed only under certain conditions, e.g., when the computational load on the vehicle controller 18 is low, when the vehicle 12 is parked and connected to a power source, and / or the like. After block 106, the method 100 proceeds to block 108.

[0063] In block 108, the vehicle controller 18 creates the offload request for the compute task, including the one or more task constraints for the compute task and the task configuration of the compute task, as described above. After block 108, the method 100 proceeds to block 110.

[0064] In block 110, the vehicle controller 18 determines a predicted performance of the compute task using the vehicle-specific offloading machine learning model created in block 106. The vehicle-specific offloading machine learning model is configured to receive the one or more task constraints of the compute task, the task configuration of the compute task, and the vehicle-specific performance data as inputs and to provide the predicted performance of the compute task and the modified task configuration as outputs. In the context of the present disclosure, the predicted performance of the compute task includes a predicted end-to-end round-trip latency for the compute task and a predicted Boolean value indicating whether offloading is possible. After block 110, the method 100 proceeds to block 112.

[0065] In block 112, the predicted performance of the compute task is compared to one or more task constraints of the compute task. If the predicted Boolean value indicating whether offloading is possible is false (i.e., offloading is not possible), the method 100 transitions to a standby state in block 114. If the predicted end-to-end round-trip latency is greater than the maximum end-to-end round-trip latency in the one or more task constraints (i.e., the predicted performance of the compute 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 latency is less than or equal to the maximum end-to-end round-trip latency in the one or more task constraints, the method 100 proceeds to block 118.

[0066] In block 116, the vehicle controller 18 changes the task configuration based on the modified task configuration determined in block 110 in response to determining that the predicted performance of the computational task does not meet the one or more task constraints. In one non-limiting example, the changed task configuration includes reducing the frame rate of a video processing task, as described above. After block 116, the method 100 returns to block 110 so that the vehicle controller 18 can determine a predicted performance of the computational task based on the modified task configuration. Blocks 110, 112, and 116 are repeated until an optimal task configuration is found.In the context of the present disclosure, the optimal task configuration is a task configuration that provides an optimal trade-off between the predicted performance, a quality of the result of the computational task, and the resource allocation for the computational task.

[0067] In block 118, the vehicle controller 18 determines a criticality level of the computational task. For the purposes of the present disclosure, the criticality level indicates how time-critical the computational task is. In some examples, the criticality level may also indicate how operationally critical the computational task is. For example, if a computational task is related to the safety operation of the vehicle 12, the computational task may be considered highly operationally critical regardless of the time criticality. In an exemplary embodiment, the criticality level of the computational task includes at least one of: a low criticality level, a normal criticality level, a high criticality level, and a very high criticality level. Low criticality computational tasks must execute within seconds. Normal criticality computational tasks must execute within hundreds of milliseconds.High-criticality computing tasks must be completed within tens of milliseconds. Very high-criticality computing tasks must be completed within milliseconds (i.e., less than ten milliseconds).

[0068] Therefore, in block 118, if the compute task has a predicted performance indicating a predicted end-to-end round-trip latency on the order of seconds (i.e., greater than or equal to 999 milliseconds), the criticality level of the compute task is determined to be low criticality. If the compute task has a predicted performance indicating a prospective end-to-end round-trip latency on the order of hundreds of milliseconds (i.e., less than or equal to 999 milliseconds and greater than 99 milliseconds), the criticality level of the compute task is determined to be normal criticality. If the compute task has a predicted performance indicating a predicted end-to-end round-trip latency on the order of a few tens of milliseconds (i.e., less than or equal to 99 milliseconds and greater than 9 milliseconds), the compute task is classified to the high criticality level.If the compute task has a predicted performance indicating an expected end-to-end round-trip latency on the order of milliseconds (i.e., less than or equal to 9 milliseconds), the criticality level of the compute task is determined to be very high criticality. It should be understood that other methods for determining the criticality level, such as a machine learning model trained to determine the criticality level based on multiple factors, are also within the scope of the present disclosure.

[0069] In an exemplary embodiment, in block 118, the vehicle controller 18 compares the criticality level of the compute task with the allowable criticality level in the one or more task constraints of the compute task. If the criticality level of the compute task does not match the allowable criticality level in the one or more task constraints of the compute task, the criticality level is changed. In a non-limiting example, if the criticality level is higher than the allowable criticality level in the one or more task constraints of the compute task, the criticality level is reduced to the maximum allowable criticality level in the one or more task constraints of the compute task.If the criticality level is lower than the allowable criticality level in the one or more task constraints of the compute task, the criticality level is increased to the minimum allowable criticality level in the one or more task constraints of the compute task. After block 118, the method 100 proceeds to block 120.

[0070] In block 120, the vehicle controller 18 forwards the compute task to one of the plurality of remote server systems 16. In an exemplary embodiment, the compute task is forwarded based at least in part on the criticality level of the compute task. In one non-limiting example, the compute task is forwarded to the first remote server system 40a in response to determining that the criticality level of the compute task is the low criticality level. The compute task is forwarded to the second remote server system 40b in response to determining that the criticality level of the compute task is the normal criticality level. The compute task is forwarded to the third remote server system 40c in response to determining that the criticality level of the compute task is the medium criticality level.The compute task is forwarded to the third remote server system 40c in response to determining that the criticality level of the compute task is the high criticality level. The compute task is forwarded to the fourth remote server system 40d in response to determining that the criticality level of the compute task is the very high criticality level. In one non-limiting example, the vehicle controller 18 uses the vehicle communication system 20 to wirelessly transmit the compute task, including the task configuration and any additional data needed to execute the compute task (e.g., video source files for a video processing compute 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 continues with blocks 122 and 124.

[0071] In block 122, the vehicle controller 18 receives the result of the computational task from one of the plurality of remote server systems 16 using the vehicle communication system 20. In one non-limiting example of a computer vision task, the result includes locations and classifications of objects detected in the environment of the vehicle 12. In another non-limiting example of a video processing task, the result includes an encoded video file. In another non-limiting example of an automated path planning task, the result includes a sequence of waypoints in the environment of the vehicle 12 that form a path for the vehicle 12 to follow. After block 122, the method 100 transitions to the standby state in block 114.

[0072] In block 124, the vehicle controller 18 records the actual performance metrics for the computing task. In an exemplary embodiment, the actual performance metrics include an actual end-to-end round-trip latency of the computing task, network conditions at the time the computing task result is received, and environmental conditions at the time the computing task result is received. In one 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 stored as part of the vehicle-specific performance data, including the historical vehicle-specific task performance data and the historical vehicle-specific network performance data.In an exemplary embodiment, the current performance indicators are stored in the media 30 of the vehicle controller 18.

[0073] Furthermore, in block 124, the vehicle controller 18 uses the vehicle communication system 20 to transmit the actual performance metrics to one or more of the multiple remote server systems 16, such that the actual performance metrics are added to the historical global task performance data stored in the server storage device 46 of one or more of the multiple remote server systems 16, including the historical global task performance data and the historical global network performance data. After block 124, the method 100 transitions to the standby state in block 114.

[0074] In an exemplary embodiment, the vehicle controller 18 repeatedly exits the standby state 114 and restarts the method 100 at block 102. In one non-limiting example, the vehicle controller 18 exits the standby state 114 and restarts the method 100 after a timer, e.g., every three hundred milliseconds.

[0075] Referring to Fig. 3 illustrates a schematic diagram of an exemplary software architecture 60 for performing the method 100 using the system 10. As described above, in one exemplary embodiment, the method 100 is performed using the system 10. In one non-limiting example, the vehicle controller 18 and the server controllers 42 of the remote server systems 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 may be written according to any programming paradigm, such as a functional programming paradigm, an imperative programming paradigm, an object-oriented programming paradigm, and / or the like. Furthermore, the computer-executable instructions may be written in any computer programming language.

[0076] The example software architecture 60 is an example of an organizational structure for the set of computer-executable instructions. The example software architecture 60 includes a plurality of software modules. For the purposes of the present disclosure, software modules represent independent software components 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 one non-limiting example, the software modules are programmatically implemented as functions, methods, subprograms, subroutines, and / or the like. In an example embodiment, one or more of the software modules are configured to operate in a non-blocking manner, i.e., the failure or suspension of one software module does not result in the failure or suspension of another software module.In one non-limiting example, one or more of the software modules execute concurrently on separate threads of the vehicle controller 18 and / or the server controller 42.

[0077] With reference again to Fig.3, in the example software architecture 60, the vehicle controller 18 executes a task handler module 62, an offload optimization module 64, and a performance monitoring module 66. The task handler module 62 is configured to coordinate the execution of computational tasks. As previously mentioned, the computational tasks may include, for example, computer vision tasks, video processing tasks, natural language processing tasks, navigation routing tasks, automatic vehicle path planning tasks, and / or the like. The task handler module 62 allocates computational resources to the vehicle controller 18 to perform the computational tasks. In some examples, it is advantageous to offload one or more computational tasks to the plurality of remote server systems 16. Therefore, the task handler module 62 is configured to generate offload requests, as explained above with reference to block 108 of the method 100.The task handler module 62 then forwards the paging requests to the paging optimization module 64.

[0078] The offloading optimization module 64 is configured to receive the offloading requests from the task handler module 62. The offloading optimization module 64 is further configured to train and execute the vehicle-specific machine learning offloading model, as explained above with reference to blocks 106 and 110. Furthermore, the offloading optimization module 64 is configured to modify the task configuration and return the modified task configuration to the task handler module 62, as explained above with reference to block 116 of the method 100. The offloading optimization module 64 is in communication 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 optimization module 64 is further configured to forward the computing tasks 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 explained above with reference to block 120 of the method 100. The offload optimization module 64 is further 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 transmit the result of the computing task to the task handler module 62, as explained above with reference to block 122 of the method 100. The offload optimization module 64 is in communication with the performance monitoring module 66.

[0079] The performance monitoring module 66 is configured to record and summarize the vehicle-specific performance data, including the historical vehicle-specific task performance data, the current vehicle-specific network performance data, and the historical vehicle-specific network performance data. In some examples, the performance monitoring module 66 also records and summarizes the global performance data. The performance monitoring module 66 is in communication with the offload optimization module 64. The performance monitoring module 66 is configured to communicate the vehicle-specific performance data to the offload optimization module 64.

[0080] The plurality of remote server systems 16 execute a continuous offloading learning module 68. In one exemplary embodiment, the continuous offloading learning module 68 is executed by the cloud computing server system 24. In one non-limiting example, the continuous offloading 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 continuous learning module 68 is executed by a separate, remote server system within the cloud computing server system 24. The continuous offloading learning module 68 is configured to train the global offloading machine learning model, as explained above with reference to block 104 of the method 100.The continuous offloading learning module 68 is in communication with the performance monitoring module 66 to receive the global performance data for training the global offloading machine learning model. The continuous offloading learning module 68 also periodically receives vehicle-specific performance data from the performance monitoring module 66, which is used to update the global performance data. The continuous offloading learning module 68 is in communication with the offloading optimization module 64 to provide the global offloading machine learning module to the offloading optimization module 64. The continuous offloading learning module 68 is further configured to periodically update the global offloading machine learning model and communicate the updated global machine learning model to the offloading optimization module 64.

[0081] It is understood that the exemplary software architecture 60 is merely exemplary. Any configuration of the system 10 suitable for performing the method 100 is within the scope of the present disclosure.

[0082] The system 10 and method 100 of the present disclosure provide several advantages. With the system 10 and method 100, the computing resources of the vehicle controller 18 and the multiple remote server systems 16 are efficiently allocated to the computing tasks. Using the vehicle-specific offloading machine learning model, the task configuration of the computing task is changed based on several factors, such as current and past network performance. Through the use of remote learning, the global offloading machine learning model can be customized or adapted to the vehicle 12 so that the vehicle-specific offloading machine learning model takes into account factors specific to the vehicle 12, such as the radio signal strength and the connection quality in the vicinity of the vehicle 12.Using multiple remote server systems 16 with different performance characteristics allows for forwarding of computing tasks to minimize resource consumption.

[0083] The description of the present disclosure is merely exemplary, and variations that do not depart from the gist of the present disclosure are intended to be within the scope of the present disclosure. Such variations should not be considered a departure from the spirit and scope of the present disclosure.

Claims

[1] A method for allocating computing resources for a vehicle, the method comprising: determining an optimal task configuration for a computational task based at least in part on a task constraint of the computational task; Determining a criticality level of the computational task based at least in part on the optimal task configuration and the task constraint of the computational task; and Forwarding the computational task to one of several remote server systems based at least in part on the criticality level of the computational task. [2] The method of 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 computational task with the task constraint of the computational task; Changing the task configuration of the computation task in response to determining that the predicted performance of the computation task does not satisfy the task constraint of the computation task; and Repeating the step of determining the predicted performance, the step of comparing the predicted performance, and the step of changing the task configuration until the optimal task configuration is identified, wherein the predicted performance of the computing task with the optimal task configuration satisfies the task constraint of the computing task. [3] The method of claim 2, wherein determining the predicted performance of the computing task further comprises: Determining the predicted performance of the compute task using a vehicle-specific offloading machine learning model, wherein the vehicle-specific offloading machine learning model is configured to receive the task configuration of the compute task and historical vehicle-specific task performance data as an input, and wherein the vehicle-specific offloading machine learning model is configured to provide the predicted performance of the compute task as an output. [4] The method of claim 3, wherein the method further comprises training the vehicle-specific machine learning model, wherein training the vehicle-specific machine learning model further comprises: Training a global offloading machine learning model based at least in part on historical global task performance data, wherein the global offloading machine learning model is trained using one of the plurality of remote server systems; Implementing the global machine learning model from the one of the plurality of remote server systems to a vehicle controller of the vehicle; and Training the vehicle-specific offloading machine learning model based at least in part on the global offloading machine learning model using the vehicle controller, wherein the vehicle-specific offloading machine learning model is trained using remote learning. [5] The method of claim 4, wherein training the vehicle-specific machine learning model is based at least in part on the global machine learning model and further comprises: Train the global offloading machine learning model with historical vehicle-specific task performance data to build the vehicle-specific offloading machine learning model. [6] The method of claim 5, wherein: the historical global task performance data comprises at least one of: multiple end-to-end round trip latencies of previously completed compute tasks from multiple vehicles and network performance data for multiple network connections between multiple vehicles and the multiple remote server systems; and the historical vehicle-specific task performance data comprises at least one of: a plurality of end-to-end round-trip latencies of previously completed computational tasks of the vehicle and network performance data for a network connection between the vehicle and the plurality of remote server systems. [7] The method of claim 3, wherein changing the task configuration of the computing task further comprises: Changing the task configuration of the compute task using the vehicle-specific offloading machine learning model, wherein the vehicle-specific offloading machine learning model is further configured to receive the task constraint of the compute task as the input and provide a changed task configuration for the compute task as the output. [8] The method of claim 2, wherein determining the criticality level of the computing task further comprises: Determining the criticality level of the compute task based at least in part on the predicted performance of the compute task with the optimal task configuration, the criticality level comprising one of: a low criticality level, a normal criticality level, a high criticality level, and a very high criticality level; Comparing the criticality level with a permissible criticality level of the task constraint; and Changing the criticality level in response to determining that the criticality level does not match the allowable criticality level. [9] The method of claim 8, wherein forwarding the computing task to one of the plurality of remote server systems further comprises: forwarding the compute task to a first of the plurality of remote server systems in response to determining that the criticality level of the compute task is the low criticality level, wherein the first of the plurality of remote server systems is configured to provide a first throughput and a first latency; forwarding the compute task to a second of the plurality of remote server systems in response to determining that the criticality level of the compute task is the normal criticality level, wherein the second of the plurality of remote server systems is configured to provide the first throughput and a second latency, and wherein the second latency is less than the first latency; forwarding the computing task to a third of the plurality of remote server systems in response to determining that the criticality level of the computing task is the high criticality level, wherein the third of the plurality of remote server systems is configured to provide a second throughput and the second latency, and wherein the second throughput is less than the first throughput; and Forwarding the compute task to a fourth of the plurality of remote server systems in response to determining that the criticality level of the compute task is the very high criticality level, wherein the fourth of the plurality of remote server systems is configured to provide the 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 constraint of the compute task comprises at least a maximum end-to-end round trip latency for the compute task.