Dynamic performance optimization for high-speed connections using machine learning
A machine learning-based system optimizes high-speed link power configurations by analyzing GPU and CPU telemetry, dynamically adjusting power allocation to extend battery life or enhance performance, addressing the inefficiencies of manual tuning.
Patent Information
- Application Number
- DE102026100018
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-01-06
- Filing Date
- 2026-01-02
- Publication Date
- 2026-07-09
AI Technical Summary
Traditional techniques for adjusting power configurations of high-speed connections require manual user input, which is inefficient and may not optimize performance based on specific application needs.
A system using machine learning, specifically a neural network, to automatically determine optimal performance configurations for high-speed links by analyzing telemetry data from GPUs and CPUs, adjusting power allocation to extend battery life or enhance performance based on workload and power consumption.
Enables dynamic optimization of high-speed connections, saving power for battery life or reallocating it for improved performance, while maintaining efficiency and adapting to different application requirements.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND High-speed connections can transfer data between two components within a system and handle large data volumes. High-speed connections can also have different power configurations or operating modes that can be used in specific usage scenarios to reduce the active power consumption of the high-speed connection while still meeting performance requirements. Traditional techniques for adjusting the power configurations of high-speed connections may require user input, such as manual tuning or coding. SUMMARY The invention is defined in the claims. For the purpose of illustrating the invention, aspects and embodiments are described herein that may or may not fall within the scope of the claims. Implementations of the present disclosure relate to the dynamic performance optimization of high-speed links using machine learning. Systems and methods are disclosed that enable the automatic execution of optimal performance configurations for high-speed links. The system can determine telemetry values on both sides or endpoints of the high-speed link and use a neural network to determine an optimal performance configuration based on these telemetry values. After determining the optimal performance configuration, the system can execute the optimal configuration on the high-speed link. In contrast to conventional systems, such as those described above, the system of the present disclosure can include one or more processors to determine a plurality of first telemetry values from a graphics processing unit (GPU) and a plurality of second telemetry values from a central processing unit (CPU), wherein the plurality of first telemetry values and the plurality of second telemetry values indicate a workload of a computing device, a power consumption value of a high-speed interface coupled to the GPU and the CPU, at least based on the plurality of first telemetry values and the plurality of second telemetry values, by selecting a speed for the high-speed interface using a neural network.to determine and communicate data through the high-speed interface using the speed. In various implementations, one or more processors receive a mode from the computing device, determine a power value (where the power value represents the difference between the power consumption before and after data communication using the high-speed interface), and allocate the power value to one or more components of the computing device based on the mode. The mode may include a battery mode or a core mode, where the battery mode indicates that the power value is allocated to a battery to extend the computing device's lifespan, and the core mode indicates that the power value is allocated to a core to improve the computing device's performance.To determine the speed, the one or more processors can use the neural network to determine a variety of execution times and a variety of performance values for a variety of speeds of the high-speed interface, where the variety of execution times indicates a data transfer rate of the high-speed interface and the variety of performance values indicates a performance of the high-speed interface, and the neural network can select the speed from the variety of speeds based on the variety of execution times and the variety of performance values. In various implementations, the high-speed interface incorporates a Peripheral Component Interconnect Express (PCIe). The neural network can be updated using a training dataset to select the speed prior to execution on the computing device. The training dataset comprises a variety of training telemetry values corresponding to a variety of training execution times and a variety of training capability values. The first set of telemetry values and the second set of telemetry values can include the operating frequency, usage, analog measurements, capability monitoring counters, activity status, current operating state, and current power-saving mode status of at least one of the GPU, CPU, or high-speed interface. In various implementations, one or more processors are included in at least one of the following: a control system for an autonomous or semi-autonomous machine, a perception system for an autonomous or semi-autonomous machine, a system implemented using a robot, an antenna system, a medical system, a boating system, an intelligent area monitoring system, a system for performing deep learning operations, a system for performing simulation operations, a system for generating or displaying virtual reality (VR), augmented reality (AR), or mixed reality (MR) content, a system for performing digital twin operations, a system implemented using an edge device, a system that includes one or more virtual machines (VMs), a system for generating synthetic data, a systemthat is at least partially implemented in a data center, a system for performing conversational artificial intelligence (AI) operations, a system for performing generative AI operations, a system for implementing language models, a system for implementing vision language models (VLMs), a system for implementing large language models (LLMs), a system for implementing small language models (SLMs), a system for implementing multimodal language models, a system for hosting one or more real-time streaming applications, a system for performing light transport simulations, a system for performing collaborative content creation for 3D assets, or a system that is at least partially implemented using cloud computing resources. At least one aspect of the present disclosure relates to a system comprising one or more processors for determining a plurality of first telemetry values from a first processing unit and a plurality of second telemetry values from a second processing unit, wherein the plurality of first telemetry values and the plurality of second telemetry values define a workload of a computing device for determining, using a neural network, a parameter value for a parameter of a communication interface coupled to the first processing unit and the second processing unit, at least on the basis of the plurality of first telemetry values and the plurality of second telemetry values, wherein the parameter value defines a bandwidth of the communication interface, and for configuring the communication interface using the parameter value. In various implementations, the parameter is at least one of a link bandwidth capacity, a power state entry threshold, an operating frequency, a power mode, a power limit, a latency tolerance, or a credit throttling of the communication interface. The multitude of first telemetry values and the multitude of second telemetry values may include at least one of the operating frequency, usage, analog measurements, power monitoring counters, activity status, current operating state, and current power saving mode status of at least one of the first processing unit, the second processing unit, or the communication interface.The one or more processors can also receive a mode from the computing device, determine a power value (where the power value is the difference between a bandwidth value before and after data communication using the parameter value on the communication interface), and allocate the power value to one or more components of the computing device based on the mode. The mode can include a battery mode or a core mode, where the battery mode indicates that the power value is allocated to a battery to extend the computing device's lifespan, and the core mode indicates that the power value is allocated to a core to improve the computing device's performance. In various implementations, one or more processors can determine the speed by using a neural network to determine a variety of execution times and performance values for a variety of communication interface parameter values. The execution times represent the data transfer rate of the communication interface, and the performance values represent its performance. The neural network then selects the parameter value from this set of values based on these execution times and performance values. The first processing unit can be a graphics processing unit (GPU), and the second processing unit can be a central processing unit (CPU). In various implementations, the neural network is updated using a training dataset to select the parameter value before execution on the computing device. The training dataset comprises a variety of training telemetry values corresponding to a variety of training execution times, as well as a variety of training capability values. The neural network can run on a hardware coprocessor. The communication interface can be a high-speed interface. At least one aspect of the present disclosure is directed to a method that determines a plurality of first telemetry values from a first processing unit and a plurality of second telemetry values from a second processing unit, wherein the plurality of first telemetry values and the plurality of second telemetry values specify a workload of a computing device, and determines a plurality of execution times and a plurality of performance values for a plurality of parameter values of a communication interface coupled to the first processing unit and the second processing unit by a neural network, wherein the plurality of parameter values specifies a bandwidth of the communication interface.which specifies the data transmission rate of the communication interface based on the multitude of execution times and the performance of the communication interface based on the multitude of performance values, the selection of a parameter value from which the multitude of parameter values is based on the multitude of execution times and the multitude of performance values, and the operation of the communication interface with the parameter value. In various implementations, the neural network is updated using a training dataset to select the parameter value before execution on the computing device, with the training dataset comprising a variety of training telemetry values corresponding to a variety of training execution times and a variety of training performance values. Further features of the disclosure are characterized by the independent and dependent claims. Any feature in one aspect of the disclosure can be applied in any suitable combination to other aspects of the disclosure. In particular, procedural aspects can be applied to apparatus or system aspects, and vice versa. Furthermore, features implemented in hardware can be implemented in software and vice versa. Any reference to software and hardware features herein should be interpreted accordingly. Each system or device feature described herein can also be provided as a process feature, and vice versa. System and / or device aspects that are functionally described (including means plus functional features) can alternatively be expressed in terms of their corresponding structure, such as a suitably programmed processor and allocated working memory. It is also understood that certain combinations of the various features described and defined in each aspect of the revelation can be implemented and / or provided and / or used independently of one another. The disclosure also provides computer programs and computer program products comprising software code designed to perform one of the methods described herein when executed on a data processing device and / or to embody one of the device and system features described herein, including one or all component steps of a method. The disclosure also provides a computer or computing system (including networked or distributed systems) with an operating system that supports a computer program for carrying out one of the methods described herein and / or for embodying one of the device or system features described herein. The disclosure also provides a computer-readable medium on which one or more of the aforementioned computer programs are stored. The revelation also provides a signal that carries one or more of the aforementioned computer programs. The disclosure extends to methods and / or devices and / or systems as described herein with reference to the accompanying drawings. Aspects and embodiments of the disclosure will now be described purely by way of example with reference to the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS The present systems and methods for performance optimization for high-speed links using machine learning are described in detail below with reference to the accompanying drawings, wherein: Fig. 1 is a block diagram of an example system for selecting an interface parameter value according to some implementations of the present disclosure; Fig. 2 is a block diagram of an example system for updating an interface parameter value selection model according to some implementations of the present disclosure; Fig. 3 is a block diagram of an example system for selecting an interface parameter value and determining a performance value according to some implementations of the present disclosure; Fig.Figure 4 is a flowchart of an exemplary procedure for selecting a speed and for communicating data using the speed according to some implementations of the present disclosure; Figure 5 is a flowchart of an exemplary procedure for selecting a parameter value and for communicating data using the parameter value according to some implementations of the present disclosure; Figure 6 is a flowchart of an exemplary procedure for selecting a parameter value and for communicating data using the parameter value according to some implementations of the present disclosure; Figure 7 is a block diagram of an exemplary computing device suitable for use in the implementation of at least some implementations of the present disclosure; and Figure 8 is a block diagram of an exemplary computing device suitable for use in the implementation of at least some implementations of the present disclosure.8 is a block diagram of an exemplary data center suitable for use in implementing some implementations of the present disclosure. DETAILED DESCRIPTION Systems and methods relating to performance optimization for high-speed connections using machine learning are disclosed. As non-restrictive examples, a neural network can be updated using capability, power, and telemetry values from various processing units of a computing device, such as a graphics processing unit (GPU) and a central processing unit (CPU). The neural network can be updated prior to execution on a computing device and can be implemented to determine and adjust the computing device's high-speed connections based on an optimal performance configuration. The power saved by the neural network can either be transferred to the computing device's battery to extend its lifespan or reallocated to a core for increased computing device performance.This disclosure relates to systems and methods for optimizing the performance and efficiency of high-speed connections (e.g., PCIe) to enable power savings over PCIe interfaces while maintaining performance. The power saved by various high-speed connections (e.g., Non-Volatile Memory Express, NVMe) can be used to improve battery life (e.g., of devices) or transferred to enhance core performance. One method for this involves adjusting the generation (e.g., generation) speed of the high-speed connections. However, different applications (e.g., on a device) have different performance requirements and may respond differently to adjustments in generation speed.Such applications may have different limits for high-speed link throughput, and each application may have different optimal gen speeds. Furthermore, while it is possible for an end user to manually select an optimal gen speed, the end user may need to adjust the gen speed depending on the application and use case. Systems and methods according to the present disclosure can implement a neural network to dynamically determine an optimal generation speed for high-speed links based on telemetry (e.g., various data and metrics relating to the performance, condition, and usage of a device) received, for example, from the GPU, CPU, high-speed link, and / or other such sources. The telemetry can be received by an activity counter with random access memory (RAM) to determine the workload (e.g., tasks) of the device. The neural network can be executed by a hardware coprocessor and a controller in a power management unit to control and operate the high-speed link at a generation speed determined by the neural network. The neural network can utilize a compilation (e.g.,(in a table, etc.) of the relative execution time to the gen speeds of the high-speed link to determine an optimal gen speed for the current telemetry. For example, the neural network can select the optimal gen speed based on a combination of a lower relative execution time (e.g., compared to other gen speeds) and a higher performance score (e.g., compared to other gen speeds). The hardware co-processor can be installed on a chip and is responsible for executing the neural network and determining the optimal gen speed. For example, the system can receive telemetry data from the GPU and input it into the neural network.Based on telemetry, the neural network can then determine an optimal gene speed for the high-speed connection and communicate this optimal gene speed to the controller. The controller can then adjust the high-speed connection to run at the optimal gene speed. The power saved by operating high-speed connections at their optimal speed can be redirected depending on the system's mode. These modes can include direct current (DC) and alternating current (AC). For example, when the system is in DC mode, the saved power can be redirected to a battery connected to the chip (such as a computer battery) to extend battery life. Similarly, when the system is in AC mode, the saved power can be allocated to a core (such as the GPU) to improve performance. The neural network can be updated (e.g., trained) offline through supervised learning of various workloads assigned to different gene speeds. Training can occur during the chip's startup process (e.g., during chip testing). The different workloads can include telemetry data from the various processing units (e.g., CPU, GPU, etc.) and can represent an overall performance metric. Through training, the neural network can learn the relationship between the different workloads and their respective gene speeds. The systems and methods described herein can be used for a variety of purposes, including but not limited to machine control, machine movement, machine driving, synthetic data generation, model training, perception, augmented reality, virtual reality, mixed reality, robotics, security and surveillance, simulation and digital twinning, autonomous or semi-autonomous machine applications, deep learning, environmental simulation, object or actor simulation and / or digital twinning, data center processing, conversational AI, light transport simulation (e.g., ray tracing, path tracing, etc.), collaborative content creation for 3D assets, cloud computing, and / or other suitable applications. The disclosed implementations can be included in a variety of different systems, such as automotive systems (e.g., a control system for an autonomous or semi-autonomous machine, a perception system for an autonomous or semi-autonomous machine, etc.).), systems implemented using a robot, air systems, media systems, boat systems, intelligent area monitoring systems, systems for performing deep learning operations, systems for performing simulation operations, systems for performing digital twin operations, systems implemented using an edge device, systems that include one or more virtual machines (VMs), systems for performing synthetic data generation operations, systems that are at least partially implemented in a data center, systems for performing conversational AI operations, systems for performing light transport simulations, systems for performing collaborative content creation for 3D assets, systems that are at least partially implemented using cloud computing resources, and / or other types of systems. With reference to Fig. 1, Fig. 1 is an exemplary system 100 for selecting an interface parameter value according to some implementations of the present disclosure. It should be noted that this and other arrangements described herein are presented only as examples. Other arrangements and elements (e.g., machines, interfaces, functions, sequences, groupings of functions, etc.) may be used in addition to or instead of those shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that may be implemented as single or distributed components, or in conjunction with other components, in any suitable combination and at any suitable location. Various functions described herein, performed by entities, may be executed by hardware, firmware, and / or software.For example, different functions can be performed by a processor that executes instructions stored in the main memory. The System 100 can contain one or more Unit Activity Counters 102. The Unit Activity Counter 102 can be hardware and / or firmware. The Activity Counter 102 can be random access memory (RAM). The Unit Activity Counter 102 can be coupled to a variety of processing units (e.g., a first processing unit, a second processing unit, etc.) and a communication interface (e.g., Communication Interface 710). One end of the communication interface can be coupled to the first processing unit, while the other end of the communication interface is coupled to the second processing unit. For example, the first processing unit can be a graphics processing unit (GPU) (e.g., GPU 708), and the second processing unit can be a central processing unit (CPU) (e.g., CPU 706). The communication interface can be a high-speed interface.The high-speed interface may include at least one of a Peripheral Component Interconnect Express (PCIe), a Non-Volatile Memory Express (NVMe), a Serial Advanced Technology Attachment (SATA), a U.2, a HyperTransport (HT), a Crossbar Switch, NVLink or Compute Express Link (CXL), but is not limited to these. The unit activity counter 102 can receive unit activity counts 104 from the first processing unit, the second processing unit, the communication interface, or a combination thereof. The unit activity counter 102 can count or otherwise track various metrics, such as cache reads, multiplications, or additions, that indicate a workload (e.g., operations and processes performed) of the computing device. The unit activity counter 102 can store the unit activity counts 104. The unit activity counts 104 can contain at least a plurality of first telemetry values 106 from the first processing unit and a plurality of second telemetry values 108 from the second processing unit. The unit activity counter 102 can also receive the plurality of first telemetry values 106 and the plurality of second telemetry values 108 from the communication interface.For example, the unit activity counter 102 can receive the plurality of first telemetry values 106 from a first side of the communication interface coupled to the first processing unit and the plurality of second telemetry values 108 from a second side of the communication interface coupled to the second processing unit. The unit activity counter 102 can receive various telemetry values (e.g., the plurality of first telemetry values 106, the plurality of second telemetry values 108, etc.) from at least one of the first processing unit, the second processing unit, and the communication interface. The unit activity counter 102 can also store the various telemetry values. The plurality of first telemetry values 106 and the plurality of second telemetry values 108 can indicate the workload of a computing device (e.g., computing device 700). The various telemetry values may include, but are not limited to, the utilization of at least one of the first or second processing units, a clock speed (e.g., the operating frequency) of at least one of the first or second processing units, an instruction execution rate by at least one of the first or second processing units, a bus arbitration (BA) signal, and performance measurements of at least one of the first or second processing units. In some implementations, the various telemetry values may also include, but are not limited to, operating temperature, power consumption, cache utilization, load average (e.g., measurement for utilization and workload demand), core voltage, memory clock frequency, memory utilization, fan speed, frame rate (FPS), thermal throttling (e.g.,Telemetry values may include changes in clock speed to mitigate thermal damage, link speed, link width, throughput, latency (e.g., data transmission delay), and error counts (e.g., number of errors occurring during data transmission) from at least one of the first processing unit, the second processing unit, or the communication interface. The various telemetry values may also include an operating frequency (e.g., clock speed), analog measurements (e.g., voltage, power), capability monitoring counters, activity status (e.g., continuous measurement, link usage), operating status (e.g., bandwidth capacity), and the power-saving mode status (e.g., power-saving function enabled or disabled) from at least one of the first processing unit, the second processing unit, or the communication interface.The CPU may, for example, contain a performance monitoring unit (PMU) to provide performance event counters, and the GPU may contain a block activity counter to count GPU activity (e.g., tasks). The PCIe interface may also contain a counter to measure, for example, the PCIe data throughput. The System 100 can contain one or more Performance Managers 110. The Performance Manager 110 can be hardware and / or firmware. The Performance Manager 110 can be coupled with the Unit Activity Counter 102 and receive the various telemetry values (e.g., the multitude of first telemetry values 106, the multitude of second telemetry values 108, etc.) from the Unit Activity Counter 102. The Performance Manager 110 can be a processor. The Performance Manager 110 can preprocess at least the multitude of first telemetry values 106 and the multitude of second telemetry values 108 (e.g., clean, process, augment). For example, the Performance Manager 110 can scale (e.g., normalize) the multitude of first telemetry values 106 and the multitude of second telemetry values 108.The Performance Manager 110 can normalize the multitude of first telemetry values 106 and the multitude of second telemetry values 108 so that they lie within a numerical range. This numerical range can, for example, be between 0 and 1 inclusive. The Performance Manager 110 can also calculate the multitude of first telemetry values 106 and the multitude of second telemetry values 108 as rates (e.g., values divided by time). This allows fluctuations in the measurement windows of the multitude of first telemetry values 106 and the multitude of second telemetry values 108 to be taken into account. The System 100 can contain one or more deep learning (DL) co-processors 112. The DL co-processor 112 can be hardware and / or firmware. The DL co-processor 112 can be coupled with the performance manager 110 and receive pre-processed telemetry values (e.g., a pre-processed set of first telemetry values 106 and a set of second telemetry values 108) from the performance manager 110. In some implementations, the DL co-processor 112 is a hardware processor. The DL co-processor 112 can contain an interface parameter value model 114 running on the DL co-processor 112. The interface parameter value model 114 can be a neural network that is updated (e.g., trained) using a variety of training telemetry values that specify different workloads (e.g., lower and higher workloads) of the computing device. The interface parameter value model 114 can be trained by supervised learning, where the variety of training telemetry values is mapped to a variety of training execution times and a variety of training capability values. The variety of training execution times and the variety of training capability values can each be mapped to a parameter value of a parameter of the communication interface.The multitude of training execution times can represent the duration the communication interface requires to perform a task (e.g., a data transfer rate), while the multitude of training performance values can indicate the performance of the communication interface. These training performance values can be generated based on various metrics, such as CPU performance compared to benchmark scores, graphics performance compared to benchmark scores, or power consumption, but are not limited to these. The parameter value can also specify the bandwidth of the communication interface.The communication interface parameter can specify a bandwidth and can include, but are not limited to, a speed, credit, permission, latency permission, link width, or clock frequency. For example, the speed parameter values can include the communication interface's gen velocities 1, 2, 3, 4, and 5. Similarly, the link width parameter values can include the communication interface's 16, 8, 4, 2, and 1. In some implementations, the communication interface parameters can also specify the link bandwidth capacity (e.g., speed, gen speed, link width, number of enabled links, etc.), the power state entry threshold (e.g., the threshold for transitioning from the active to the lower power state), and the operating frequency (e.g.,, use of dynamic voltage and frequency scaling (DVFS) for changing the operating frequency and / or voltage), power mode (e.g., state), power limit (e.g., maximum power consumption), latency tolerance (e.g., maximum tolerance), or credit throttling (e.g., credit allocation, throttling threshold) of the communication interface, but are not limited to these. The parameter value of the communication interface can be adjusted to optimize power consumption and performance based on the workload. For example, varying the parameter value of the communication interface depending on the workload can result in better performance and efficiency than a communication interface with a constant parameter value. For instance, a lower parameter value (e.g., lower speed) at a lower workload (e.g., requiring less bandwidth) can save power and maintain performance. The interface parameter value model 114 can be trained to select a parameter value based on the multitude of training telemetry values (e.g., indicating the workload), as further described herein. The performance manager 110 can program the DL co-processor 112 with telemetry values or otherwise provide them to it (e.g., with the plurality of first telemetry values 106, the plurality of second telemetry values 108, etc.) to be fed into the interface parameter value model 114. In some embodiments, the performance manager 110 can preprocess the plurality of first telemetry values 106 and the plurality of second telemetry values 108 based on limit values (e.g., minimum and maximum values in training data) of the interface parameter value model 114. For example, each of the telemetry values from the plurality of first telemetry values 106 and the plurality of second telemetry values 108 can be divided by a maximum value of the training data. This allows the plurality of first telemetry values 106 and the plurality of second telemetry values 108 to be normalized to the training data. The DL co-processor 112 can contain a RAM programmed with, but not limited to, a network architecture, the weights, and the distortions of the interface parameter value model 114. The performance manager 110 can program the DL co-processor 112 with the plurality of first telemetry values 106 and the plurality of second telemetry values 108 to generate a computation via the interface parameter value model 114. The interface parameter value model 114 can generate a model output 116 based on at least the plurality of first telemetry values 106 and the plurality of second telemetry values 108. The model output 116 can contain a plurality of execution times and a plurality of performance values. The plurality of execution times can be a duration required by the communication interface to perform a task (e.g.,a data transfer rate), while the multitude of performance values can indicate the performance of the communication interface and / or the computing device. The multitude of performance values can be generated based on various metrics, such as CPU performance compared to benchmark scores, graphics performance compared to benchmark scores, or power consumption, but are not limited to these. The interface parameter value model 114 can predict the multitude of execution times and the multitude of computing device performance values based at least on the multitude of first telemetry values 106 and the multitude of second telemetry values 108 per parameter value (e.g., per gen-speed). The multitude of execution times and the multitude of performance values can be associated with a multitude of parameter values. The multitude of execution times and the multitude of performance values can be predictions about the impact of implementing the multitude of parameter values on the communication interface and / or the computing device. The interface parameter value model 114 can receive the multitude of first telemetry values 106 and the multitude of second telemetry values 108 as an input, apply the various parameter values to the multitude of first telemetry values 106 and the multitude of second telemetry values 108, and generate the model output 116 as a result. For example, the interface parameter value model 114 can generate the model output 116 for a speed (e.g., gen-speed) of the communication interface that has five different speeds (e.g.,The interface parameter value model 114 can contain the multitude of parameter values. It can apply each of the five speeds to the multitude of first telemetry values 106 and the multitude of second telemetry values 108 to generate the model output 116. The model output 116 can be a table and / or another data structure. Once the interface parameter value model 114 generates the model output 116, the DL co-processor 112 can receive the model output 116 and provide it to the performance manager 110. The performance manager 110 can contain an interface parameter value selector 118. The interface parameter value selector 118 can be an algorithm (e.g., logic) for selecting an interface parameter value 120 for the communication interface from the model output 116. The interface parameter value selector 118 can be a controller. For example, the interface parameter value selector 118 can receive the plurality of execution times and the plurality of performance values from the model output 116 and select the interface parameter value 120 based on the plurality of execution times and the plurality of performance values.Interface parameter value selector 118 can select interface parameter value 120 based on the parameter value that corresponds to the lowest execution time and the highest performance value. For example, interface parameter value selector 118 can select interface parameter value 120 with an optimal combination of low execution times and high performance values. Interface parameter value selector 118 can apply a function (e.g., an optimization function) to select interface parameter value 120. After selecting interface parameter value 120, the performance manager 110 can set the communication interface to interface parameter value 120. The performance manager 110 can be coupled to the communication interface. The performance manager 110 can adjust settings and / or parameter values of the communication interface. For example, the performance manager 110 can set the communication interface to operate at this speed when the interface parameter value selector 118 selects a specific speed for the communication interface. The communication interface can then communicate data using interface parameter value 120. Based on the interface parameter value 120, the power manager 110 can determine a performance value of the computing device. The performance value can indicate the difference between a power consumption value (e.g., power consumption, power utilization, etc.) of the computing device before and after the communication of data through the communication interface using the interface parameter value 120. The performance value can also represent the amount of power saved by the communication interface through the communication of data using the interface parameter value 120. For example, the power consumption value before the communication interface communicates data using the interface parameter value 120 can be higher than the power consumption value after the communication interface has transmitted data using the interface parameter value 120.The power manager 110 can determine the power consumption value before the interface parameter value 120 is selected and after the communication interface has been set to the interface parameter value 120. In some implementations, the power manager 110 may include a power consumption threshold. In response to a power consumption value of the computing device that is at or above the power consumption threshold, the interface parameter value model 114 may generate the model output 116. Based on the computing device's mode, the Performance Manager 110 can allocate the performance value to various components of the computing device, as further described herein. For example, the computing device can have at least one battery mode or a core mode. When the computing device is put into battery mode (e.g., by a user, entity, etc.), the Performance Manager 110 can allocate the performance value to one of the computing device's batteries to extend its lifespan. When the computing device is put into core mode, the Performance Manager 110 can allocate the performance value to one of the computing device's cores (e.g., CPU) to improve a specific computing device performance characteristic (e.g., speed, throughput, etc.). In some implementations, the interface parameter value model 114 and the interface parameter value selector 118 are combined. For example, the generation of the model output 116 and the selection of the interface parameter value 120 can both be performed by the interface parameter value model 114. In this case, the interface parameter value model 114 can communicate the interface parameter value 120 to the performance manager 110. Fig. 2 is a block diagram of a system 200 for training the interface parameter value model 114, which can be used by the system of Fig. 1 according to some embodiments of the present disclosure. It should be noted that this and other arrangements described herein are presented only as examples. Other arrangements and elements (e.g., machines, interfaces, functions, sequences, groupings of functions, etc.) may be used in addition to or instead of those shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that can be implemented as single or distributed components, or in conjunction with other components, in any suitable combination and at any suitable location. Various functions described herein, performed by entities, may be executed by hardware, firmware, and / or software.For example, different functions can be performed by a processor that executes instructions stored in the main memory. The interface parameter value model 114 can be updated (e.g., trained) offline during a training phase of the system 200. For example, the interface parameter value model 114 can be trained before execution (e.g., implementation) on the computing device. The interface parameter value model 114 can be trained during the chip's startup (e.g., testing and validating a chip before installation in the computing device). The interface parameter value model 114 can be trained on a training dataset 202. The training dataset 202 can be collected by running various workloads on the computing device with different frequencies (e.g., time between increasing or decreasing workloads) and parameter values of the communication interface.For example, the chip can be operated with different computational workloads at different frequencies and different communication interface speeds to collect the training data set 202. The training data set 202 can contain a variety of training telemetry values 204, a variety of training execution times 206, and a variety of training capability values 208. The variety of training telemetry values 204 can be collected by different components (e.g., the first processing unit, the second processing unit, the communication interface, etc.) of the computing device while different workloads are running. While the different workloads are running, the parameter value can be changed to collect the variety of training execution times 206 and the variety of training capability values 208.Performing a higher workload at a lower gen velocity (e.g. gen velocity 1) may result in a lower performance score and a shorter execution time. Each parameter value of the communication interface can correspond to a workload (e.g., the training telemetry values 204). The training telemetry values 204 and the parameter value can correspond to at least one of the training execution times 206 or the training performance capability values 208. The performance manager 110 can use a maximum value of the training telemetry values 204 to normalize (e.g., scale) the multitude of first telemetry values 106 and the multitude of second telemetry values 108. The system 200 can contain one or more deep learning networks 210. The deep learning networks 210 can be updated (e.g., trained) using the training dataset 202. The deep learning network 210 can be trained on the training dataset 202 using supervised training. The training telemetry values 204 can contain telemetry values from both the first processing unit (e.g., GPU) and the second processing unit (e.g., CPU). The training telemetry values 204 can also contain telemetry values from the communication interface (e.g., PCIe). For example, the training telemetry values 204 can include performance metrics and frame rates from the first processing unit, the second processing unit, and the communication interface. The training dataset 202 can contain a basic truth (e.g., a baseline) to train the deep learning network 210.The basic truth can be the training execution times 206 and the training performance values 208, which are assigned to the training telemetry values 204. The basic truth can include the training execution times 206 and the training performance values 208 for each parameter value of the communication interface (e.g., the gene velocities 1, 2, 3, 4, and 5). After training, the deep learning network 210 can output the interface parameter value model 114. The interface parameter value model 114 can be a neural network. The interface parameter value model 114 can be updated (e.g., trained) to receive telemetry values and generate predictions about execution times and performance scores for different parameter values. For example, the input to the interface parameter value model 114 could be a variety of parameter values from the communication interface and a variety of telemetry values from the computing device. The interface parameter value model 114 can then output a variety of execution times and performance scores for each of the variety of parameter values.Another example: The interface parameter value model 114 can generate predictions about execution times and performance values for the individual gen speeds based on the telemetry values. System 200 can contain telemetry values 212. The telemetry values 212 can be live (e.g., real-time) telemetry values received by the first processing unit, the second processing unit, and / or the communication interface. The telemetry values 212 can include the multitude of first telemetry values 106, the multitude of second telemetry values 108, and / or the multitude of telemetry values from the communication interface. During an inference (e.g., prediction) stage of System 200, the interface parameter value model 114 can receive the telemetry values 212 and generate the model output 116. The model output 116 can include the multitude of execution times and the multitude of performance values for each of the multitude of parameter values.The interface parameter value model 114 can generate the model output 116 by predicting the multitude of execution times and the multitude of performance values for each of the parameter values based on the telemetry values 212. Fig. 3 is a block diagram of a system 300 for selecting a gen-speed (e.g., interface parameter value 120) and for determining a power value 304. The system 300 can be used by the system of Fig. 1 and / or Fig. 2, according to some embodiments of the present disclosure. It should be noted that these and other arrangements described herein are presented only as examples. Other arrangements and elements (e.g., machines, interfaces, functions, sequences, groupings of functions, etc.) may be used in addition to or instead of those shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that can be implemented as single or distributed components, or in conjunction with other components, in any suitable combination and at any suitable location.Various functions described herein, which are performed by entities, can be executed by hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in memory. As shown in Fig. 3, the interface parameter value model 114 can receive telemetry values 212 and generate relative execution times (e.g., compared to the execution times of different tasks) per gen speed. A range of gen speeds can be based on the communication interface. For example, if the interface parameter value model 114 receives telemetry values 212 from a GPU, a CPU, and a PCIe, the interface parameter can generate the relative execution times and performance values (not shown) per gen speed of the PCIe, which may include gen speeds 1, 2, 3, 4, and 5. Based on the relative execution times and performance values (e.g., the model output 116), the interface parameter value selector 118 can select a general gen speed (e.g., the interface parameter value 120).The interface parameter value selector 118 can apply an optimization function to the relative execution times and performance values to determine an optimal gen speed. The optimal gen speed can be a combination of the highest performance value and the lowest execution time. For example, as shown in Fig. 3, the interface parameter value selector 118 can compare the performance values of gen speeds 5, 4, and 3, since these gen speeds have the same execution times, which are lower than gen speeds 2 and 1. The interface parameter selector 118 can then, for example, select the lowest gen speed with the highest performance value among gen speeds 1, 2, and 3. The interface parameter value selector 118 can determine the power value 304 and, based on a computing device mode, assign the power value 304 to different components of the computing device. The power value 304 can be the difference in a power consumption value of the communication interface and / or the computing device before and after the communication interface is set to the interface parameter value 120. For example, the computing device may have a direct current (DC) mode and an alternating current (AC) mode. In some implementations, the DC mode is the battery mode and the AC mode is the core mode. When the computing device is switched to DC mode, the interface parameter selector 118 can direct the power value 304 to the computing device's battery to extend battery life.When the computing device is switched to AC mode, the interface parameter selector 118 can direct the power value 304 to a core of the computing device for increased performance. The core can be the CPU (e.g., the second processing unit). The power value 304 can be assigned by the power manager 110. In some implementations, the interface parameter value selector 118 may contain logic to prevent it from toggling the communication interface parameter values too frequently (e.g., a high frequency of parameter value toggles leads to a drop in performance). The interface parameter value selector 118 may include functions for reducing the rate (e.g., frequency) of parameter value toggles. The interface parameter selector 118 may also include a time threshold. The time threshold can specify a time interval between parameter value toggles.For example, in response to the fulfillment of the time threshold, the interface parameter value model 114 generates the multitude of performance values and execution times based on the telemetry values, and the interface parameter value selector 118 selects the interface parameter value 120 to which the communication interface is to be set. In some implementations, the computing device includes additional modes. For example, the computing device may include a graphics mode, a memory mode, and / or a cooling mode. When the computing device is switched to graphics mode, the performance manager 110 can assign the GPU a power value for improved graphics performance. When the computing device is switched to memory mode, the performance manager 110 can assign the RAM a power value for improved memory performance, such as faster data access. When the computing device is switched to cooling mode, the performance manager 110 can assign the cooling system a power value for improved thermal management. In some implementations, the system 100 changes the computing device mode based on the multitude of first telemetry values 106 and the multitude of second telemetry values 108.In some implementations, the user adjusts the mode manually. Referring to Fig. 4, each block of the Method 400 described herein comprises a computational process that can be performed using any combination of hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in memory. The Method can also be embodied as computer-usable instructions stored on computer storage media. The Method can be provided by a standalone application, a service or hosted service (standalone or in combination with another hosted service), or a plug-in for another product, to name just a few. Furthermore, Method 400 is described by way of example with respect to the system of Fig. 1, Fig. 2, and / or Fig. 3.However, this procedure can additionally or alternatively be performed by any system or any combination of systems, including, but not limited to, the systems described herein. Figure 4 is a flowchart illustrating Method 400 for selecting a speed and for communicating data using the speed, according to some implementations of the present disclosure. Method 400 includes, in block 402, the determination of multiple telemetry values, such as a plurality of first telemetry values (e.g., plurality of first telemetry values 106) and a plurality of second telemetry values (e.g., plurality of second telemetry values 108). The plurality of first telemetry values can originate from a GPU (e.g., GPU 708). The plurality of second telemetry values can originate from a CPU (e.g., CPU 706). The plurality of first telemetry values and the plurality of second telemetry values can specify a workload of a computing device (e.g., computing device 700). In block 404, the power consumption value of a high-speed interface (e.g., communication interface 710) coupled to the GPU and CPU is determined by selecting a speed (e.g., interface parameter value 120) for the high-speed interface. The speed can be selected using a neural network (e.g., with interface parameter value model 114). The neural network can use at least one segment of the multitude of telemetry segments (e.g., the multitude of first telemetry values, the multitude of second telemetry values, etc.) to select the speed. In block 406, the high-speed interface can communicate data using the high-speed connection. For example, the communication interface is configured to use the high-speed connection. In some implementations, Procedure 400 may also include receiving a mode of the computing device. A power value (e.g., Power Value 304) may also be determined. The power value may indicate the difference between the power consumption before and after data communication using the high-speed interface. Based on the power value, Procedure 400 may include allocating the power value to one or more components of the computing device based on the mode. The mode may include at least one battery mode or one core mode. The battery mode may indicate that the power value is allocated to a battery to extend the lifetime of the computing device, while the core mode indicates that the power value is allocated to a core to improve the performance of the computing device. In some implementations, the neural network determines a variety of execution times and a variety of performance values (e.g., model output 116) for a variety of high-speed interface speeds to determine its speed. The variety of execution times can specify a data transfer rate of the high-speed interface, and the variety of performance values can specify the performance of the high-speed interface. The high-speed interface can include a Peripheral Component Interconnect Express (PCIe). The neural network can be updated (e.g., trained) using a training dataset (e.g., training dataset 202). The training dataset can contain a variety of training telemetry values (e.g., training telemetry values 204), which correspond to a variety of training execution times (e.g.,the training execution times 206) correspond, and contain a variety of training performance values (e.g. the training performance values 208). In some implementations, the multiple telemetry values may include GPU and CPU usage, GPU and CPU clock speed, GPU and CPU instruction execution rate, a bus arbitration (BA) signal, and GPU and CPU performance metrics. Referring to Fig. 5, each block of the Method 500 described herein comprises a computational process that can be performed using any combination of hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in memory. The Method can also be embodied as computer-usable instructions stored on computer storage media. The Method can be provided by a standalone application, a service or hosted service (standalone or in combination with another hosted service), or a plug-in for another product, to name just a few. Furthermore, the Method 500 is described by way of example with respect to the system of Fig. 1, Fig. 2, and / or Fig. 3.However, this procedure can additionally or alternatively be performed by any system or any combination of systems, including, but not limited to, the systems described herein. Figure 5 is a flowchart illustrating Method 500 for selecting a parameter value and for communicating data using the parameter value, according to some implementations of the present disclosure. Method 500 includes, in block 502, determining at least one plurality of first telemetry values (e.g., plurality of first telemetry values 106) from a first processing unit and a plurality of second telemetry values (e.g., plurality of second telemetry values 108) from a second processing unit, the plurality of first telemetry values and the plurality of second telemetry values specifying a workload of a computing device. The first processing unit can be a GPU, while the second processing unit can be a CPU. In Block 504, Procedure 500 includes determining a parameter value for a communication interface parameter coupled to the first and second processing units using a neural network, based at least on the plurality of first telemetry values and the plurality of second telemetry values. The parameter value can specify a bandwidth of the communication interface. The parameter can be at least one of the link bandwidth scaling capacity, a power state entry threshold, an operating frequency, a power mode, a power ceiling, a latency tolerance, or a credit throttling of the communication interface. The neural network can be executed on a hardware coprocessor (e.g., the DL Coprocessor 112). In block 506, the communication interface can be configured using the parameter value. For example, the communication interface can be coupled to the neural network and communicate data based on the parameter value. Referring to Fig. 6, each block of the Method 600 described herein comprises a computational process that can be performed using any combination of hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in main memory. The Method can also be embodied as computer-usable instructions stored on computer storage media. The Method can be provided by a standalone application, a service or hosted service (standalone or in combination with another hosted service), or a plug-in for another product, to name just a few. Furthermore, the Method 600 is described by way of example with respect to the system of Fig. 1, Fig. 2, and / or Fig. 3.However, this procedure can additionally or alternatively be performed by any system or any combination of systems, including, but not limited to, the systems described herein. Fig. 6 is a flowchart showing a method 600 for selecting a parameter value and for communicating data using the parameter value according to some implementations of the present disclosure. Method 600 includes in block 602 the determination of at least a plurality of first telemetry values (e.g., the plurality of first telemetry values 106) from a first processing unit and a plurality of second telemetry values (e.g., the plurality of second telemetry values 108) from a second processing unit, the plurality of first telemetry values and the plurality of second telemetry values specifying a workload of a computing device. In Block 604, Procedure 600 includes the determination, by a neural network (e.g., the interface parameter value model 114), of a multitude of execution times and a multitude of capability values (e.g., the model output 116) for a multitude of parameter values of a communication interface coupled to the first and second processing units. The multitude of parameter values can specify a bandwidth of the communication interface, the multitude of execution times can specify a data transmission rate of the communication interface, and the multitude of capability values can specify a capability of the communication interface. In block 606, a parameter value is selected from the available parameter values. The parameter value can be selected based on a variety of execution times and performance metrics. In some implementations, the parameter value can be selected using interface parameter value selector 118. In block 608, the communication interface can work with the parameter value. In some implementations, the interface parameter value selector 118 can set the communication interface to the parameter value. EXAMPLE CALCULATION DEVICE Figure 7 is a block diagram of an exemplary computing device(s) 700 suitable for use in the implementation of at least some implementations of the present disclosure. The computing device 700 may include a connection system 702 that directly or indirectly couples the following devices: main memory 704, one or more central processing units (CPUs) 706, one or more graphics processing units (GPUs) 708, a communication interface 710, input / output (I / O) ports 712, input / output components 714, a power supply 716, one or more presentation components 718 (e.g., display(s)), and one or more logic units 720. In at least one implementation, the computing device(s) 700 may include one or more virtual machines (VMs), and / or each of its components may include virtual components (e.g., virtual hardware components).As non-restrictive examples, one or more of the GPUs 708 can comprise one or more vGPUs, one or more of the CPUs 706 can comprise one or more vCPUs, and / or one or more of the logic units 720 can comprise one or more virtual logic units. Thus, a computing device 700 can contain discrete components (e.g., a complete GPU allocated to the computing device 700), virtual components (e.g., a portion of a GPU allocated to the computing device 700), or a combination thereof. Although the various blocks in Fig. 7 are shown connected via the connection system 702, this is not intended as a limitation and is for clarity only. In some implementations, for example, a presentation component 718, such as a display device, may be considered an I / O component 714 (e.g., if the display is a touchscreen). As another example, the CPUs 706 and / or GPUs 708 may contain memory (e.g., the memory 704 may represent a storage device in addition to the memory of the GPUs 708, the CPUs 706, and / or other components). In other words, the computing device in Fig. 7 is for illustrative purposes only.No distinction is made between categories such as "workstation", "server", "laptop", "desktop", "tablet", "client device", "mobile device", "handheld device", "game console", "electronic control unit (ECU)", "virtual reality system" and / or other device or system types, as all are considered within the scope of the computing device of Fig. 7. The 702 interconnect system can represent one or more connections or buses, such as an address bus, a data bus, a control bus, or a combination thereof. The 702 interconnect system can include one or more bus or connection types, such as an Industry Standard Architecture (ISA) bus, an Extended ISA bus, a Video Electronics Standards Association (VESA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI Express (PCIe) bus, and / or another type of bus or connection. In some implementations, there are direct connections between components. For example, the CPU (706) can be directly connected to the memory (704). Furthermore, the CPU (706) can be directly connected to the GPU (708).In a direct or point-to-point connection between components, the connection system 702 can include a PCIe link to establish the connection. In these examples, a PCI bus need not be included in the computing device 700. The multitude of first telemetry values 106 can originate from a first side of the PCIe coupled to the GPU 708, and the multitude of second telemetry values 108 can originate from a second side of the PCIe coupled to the CPU 706. The 704 main memory can contain any of a variety of computer-readable media. Computer-readable media can be any available media that the 700 computing device can access. Computer-readable media can include both volatile and non-volatile media, and removable and non-removable media. For example, and without limitation, computer-readable media can include computer storage media and communication media.Computer storage media can include both volatile and non-volatile media, and / or removable and non-removable media, implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, and / or other types of data. For example, main memory can store 704 computer-readable instructions (e.g., representing a program and / or program element, such as an operating system).Computer storage media may, but are not limited to, include RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, Digital Versatile Discs (DVDs) or other optical disk storage, magnetic cartridges, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that the Computing Device 700 can access. As used herein, computer storage media do not per se include signals. Computer storage media can embody computer-readable instructions, data structures, program modules, and / or other types of data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any media for transmitting information. The term "modulated data signal" can refer to a signal in which one or more of its properties are set or modified to encode information within the signal. Computer storage media may include, but are not limited to, wired media, such as a wired network or a direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of the foregoing should also be included in the scope of protection of the computer-readable media. The CPU(s) 706 can be configured to execute at least some of the computer-readable instructions to control one or more components of the Computing Device 700 to perform one or more of the procedures and / or processes described herein. The CPU(s) 706 can each contain one or more cores (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) capable of processing a plurality of software threads simultaneously. The CPU(s) 706 can contain any type of processor and may contain different types of processors depending on the type of Computing Device 700 implemented (e.g., processors with fewer cores for mobile devices and processors with more cores for servers).Depending on the type of computing device 700, the processor can be, for example, an Advanced RISC Machine (ARM) processor implemented using Reduced Instruction Set Computing (RISC), or an x86 processor implemented with Complex Instruction Set Computing (CISC). The computing device 700 can contain one or more CPUs 706, in addition to one or more microprocessors or additional coprocessors, such as mathematical coprocessors. In addition to or as an alternative to the CPU(s) 706, the CPU(s) 708 may be configured to execute at least some of the computer-readable instructions to control one or more components of the Computing Device 700 to perform one or more of the procedures and / or processes described herein. One or more of the GPU(s) 708 may be an integrated GPU (e.g., with one or more of the CPU(s) 706) and / or one or more of the GPU(s) 708 may be a discrete GPU. In implementations, one or more of the GPU(s) 708 may be a coprocessor of one or more of the CPU(s) 706. The GPU(s) 708 may be used by the Computing Device 700 to render graphics (e.g., 3D graphics) or to perform general-purpose calculations. The GPU(s) 708 can be used, for example, for general-purpose computing on GPUs (GPGPU).The GPU(s) 708 can contain hundreds or thousands of cores capable of processing hundreds or thousands of software threads simultaneously. The GPU(s) 708 can generate pixel data for output images in response to rendering commands (e.g., rendering commands from the CPU(s) 706 received via a host interface). The GPU(s) 708 can include graphics memory, such as display memory, for storing pixel data or other suitable data, such as GPGPU data. The display memory can be included as part of the main memory 704. The GPU(s) 708 can contain two or more GPUs operating in parallel (e.g., via a link). The link can connect the GPUs directly (e.g., using NVLINK) or connect them via a switch (e.g., using NVSwitch).When combined, each GPU can generate 708 pixel data or GPGPU data for different sections of an output or for different outputs (e.g., a first GPU for a first image and a second GPU for a second image). Each GPU can have its own dedicated memory or share memory with other GPUs. In addition to or as an alternative to the CPU(s) 706 and / or the GPU(s) 708, the logic unit(s) 720 may be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 700 to perform one or more of the procedures and / or processes described herein. In implementations, the CPU(s) 706, the GPU(s) 708, and / or the logic unit(s) 720 may discretely or jointly perform any combination of the procedures, processes, and / or sections thereof. One or more of the logic units 720 may be part of and / or integrated within one or more of the CPU(s) 706 and / or the GPU(s) 708, and / or one or more of the logic units 720 may be discrete components or otherwise separate from the CPU(s) 706 and / or the GPU(s) 708.In implementations, one or more of the 720 logic units can be a co-processor of one or more of the 706 CPUs and / or one or more of the 708 GPUs. Examples of Logic Unit(s) 720 include one or more processing cores and / or components thereof, such as Data Processing Units (DPUs), Tensor Cores (TCs), Tensor Processing Units (TPUs), Pixel Visual Cores (PVCs), Vision Processing Units (VPUs), Graphics Processing Clusters (GPCs), Texture Processing Clusters (TPCs), Streaming Multiprocessors (SMs), Tree Traversal Units (TTUs), Artificial Intelligence Accelerators (AIAs), Deep Learning Accelerators (DLAs), Arithmetic Logic Units (ALUs), and application-specific integrated circuits. (Application-Specific Integrated Circuits, ASICs), Floating Point Units (FPUs), Input / Output (I / O) elements,Peripheral Component Interconnect (PCI) or PCI Express (PCIe) elements, and / or the like. The 710 communication interface can include one or more receivers, transmitters, and / or transceivers that enable the 700 computing device to communicate with other computers over an electronic network, including wired and / or wireless communication. The 710 communication interface can include components and functions that enable communication over a variety of different networks, such as wireless networks (e.g., Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g., Ethernet or InfiniBand communication), low-power wide-area networks (e.g., LoRaWAN, SigFox, etc.), and / or the Internet.In one or more implementations, the logic unit(s) 720 and / or the communication interface 710 may contain one or more data processing units (DPUs) to directly transfer data received via a network and / or the connection system 702 to one or more GPUs 708 (e.g., one of their memory locations). The System 100, System 200, and / or System 300 may be coupled to at least one of the communication interfaces 710, the GPU 708, or the CPU 706. The I / O ports 712 enable the computing device 700 to be logically coupled with other devices, including the I / O components 714, the presentation component(s) 718, and / or other components, some of which may be built into (e.g., integrated with) the computing device 700. Illustrative I / O components 714 include a microphone, mouse, keyboard, joystick, gamepad, game controller, satellite dish, scanner, printer, wireless device, etc. The I / O components 714 can provide a natural user interface (NUI) that processes air gestures, speech, or other physiological inputs generated by a user. In some cases, the inputs can be transmitted to a suitable network element for further processing.A NUI can implement any combination of speech capture, stylus capture, face capture, biometric capture, gesture capture (both on-screen and off-screen), air gestures, head and eye tracking, and touch capture (as described in more detail below) associated with a display of the Computing Device 700. The Computing Device 700 can include depth cameras, such as stereoscopic camera systems, infrared camera systems, RGB camera systems, touchscreen technology, and combinations thereof, for gesture capture and recognition. Additionally, the Computing Device 700 can include accelerometers or gyroscopes (e.g., as part of an inertial measurement unit (IMU)) that enable motion detection. In some examples, the output from the accelerometers or gyroscopes can be used by the Computing Device 700 to render immersive augmented reality or virtual reality. The power supply 716 can include a hardwired power supply, a battery power supply, or a combination thereof. The power supply 716 can provide power to the computer 700 to enable the operation of its components. In battery mode (e.g., DC mode), the power manager 110 can assign the power value 304 to the power supply 716. The 718 presentation component(s) can include a display (e.g., a monitor, touchscreen, television screen, head-up display (HUD), other display types, or a combination thereof), speakers, and / or other presentation components. The 718 presentation component(s) can receive data from other components (e.g., the 708 GPU(s), the 706 CPU(s), DPUs, etc.) and output the data (e.g., as an image, video, sound, etc.). EXEMPLARY DATA CENTER Figure 8 illustrates an exemplary data center 800 that can be used in at least one implementation of the present disclosure. The data center 800 can include a data center infrastructure layer 810, a framework layer 820, a software layer 830, and / or an application layer 840. As shown in Fig. 8, the infrastructure layer 810 of the data center can contain a resource orchestrator 812, clustered computing resources 814 and node computing resources (“node RRs”) 816(1)-816(N), where “N” is any positive integer. In at least one implementation, the Node RRs 816(1)-816(N) may include, but are not limited to, any number of central processing units (CPUs) or other processors (including DPUs, accelerators, field programmable gate arrays (FPGAs), graphics processing units or graphics processing units (GPUs), etc.), memory devices (e.g., dynamic solid memory), storage devices (e.g., solid-state or disk drives), network input / output (NW I / O) devices, network switches, virtual machines (VMs), power supply modules and / or cooling modules, etc.In some implementations, one or more node RRs among node RRs 816(1)-816(N) may correspond to a server that has one or more of the aforementioned compute resources. Furthermore, in some implementations, node RRs 816(1)-816(N) may include one or more virtual components, such as vGPUs, vCPUs, and / or the like, and / or one or more of node RRs 816(1)-816(N) may correspond to a virtual machine (VM). In at least one implementation, the clustered compute resources 814 can contain separate groupings of Node RRs 816, which are housed in one or more racks (not shown) or in many racks in data centers at different geographic locations (also not shown). Separate groupings of Node RRs 816 within clustered compute resources 814 can contain grouped compute, network, memory, or storage resources that can be configured or allocated to support one or more workloads. In at least one implementation, multiple Node RRs 816, including CPUs, GPUs, DPUs, and / or other processors, can be grouped in one or more racks to provide compute resources to support one or more workloads.The one or more racks can also contain any number of power supply modules, cooling modules and / or network switches in any combination. The Resource Orchestrator 812 can configure or otherwise control one or more Node RRs 816(1)-816(N) and / or clustered compute resources 814. In at least one implementation, the Resource Orchestrator 812 can include a Software Design Infrastructure (SDI) management entity for the Data Center 800. The Resource Orchestrator 812 can include hardware, software, or a combination thereof. In at least one implementation, as shown in Fig. 8, the framework layer 820 can contain a job scheduler 828, a configuration manager 834, a resource manager 836, and / or a distributed file system 838. The framework layer 820 can contain a framework that supports the software 832 of the software layer 830 and / or application(s) 842 of the application layer 840. The software 832 or the application(s) 842 can each contain web-based service software or applications such as those provided by Amazon Web Services, Google Cloud, and Microsoft Azure. The framework layer 820 can be a type of free and open-source software web application framework, such as Apache Spark™ (hereinafter "Spark"), which can utilize a distributed file system 838 for handling large amounts of data (e.g., "Big Data") without being limited to it.In at least one implementation, the Job Scheduler 828 can include a Spark driver to facilitate the scheduling of workloads supported by different layers of the data center 800. The Configuration Manager 834 can be able to configure different layers, such as the Software Layer 830 and the Framework Layer 820, which includes Spark and the Distributed File System 838, to support the processing of large amounts of data. The Resource Manager 836 can be able to manage clustered or grouped compute resources allocated or assigned to support the Distributed File System 838 and the Job Scheduler 828. In at least one implementation, the clustered or grouped compute resources can include the Grouped Compute Resource 814 on the Infrastructure Layer 810 of the data center.The Resource Manager 836 can coordinate with the Resource Orchestrator 812 to manage these allocated or assigned computing resources. In at least one implementation, the software contained in software layer 830 may include software 832 that is used by at least sections of the node RRs 816(1)-816(N), the grouped compute resources 814, and / or the distributed file system 838 of framework layer 820. One or more types of software may include, but are not limited to, web page search software, email virus scanning software, database software, and streaming video content software. In at least one implementation, the application(s) contained in application layer 840 may comprise one or more types of applications used by at least parts of the node RRs 816(1)-816(N), the grouped compute resources 814, and / or the distributed file system 838 of framework layer 820. One or more types of applications may include, but are not limited to, any number of genome applications, cognitive computations, and machine learning applications, including training or inference software, machine learning framework software (e.g., PyTorch, TensorFlow, Caffe, etc.), and / or other machine learning applications used in conjunction with one or more implementations. In at least one implementation, a configuration manager 834, resource manager 836, and resource orchestrator 812 can implement any number and type of self-modifying actions based on any amount and type of data collected in any technically feasible way. Self-modifying actions can relieve a data center operator of data center 800 from potentially making poor configuration decisions and potentially avoiding underutilized and / or poorly functioning sections of a data center. The Data Center 800 may contain tools, services, software, or other resources to train one or more machine learning models or to predict or infer information using one or more machine learning models according to one or more implementations described herein. For example, a machine learning model(s) may be trained by calculating weighting parameters according to a neural network architecture, using software and / or computing resources described above with reference to Data Center 800.In at least one implementation, trained or deployed machine learning models corresponding to one or more neural networks can be used to infer or predict information using the resources described above with reference to the Data Center 800, by using weighting parameters computed by one or more training techniques, such as those described herein, but not limited to. The Data Center 800 can train the interface parameter value model 114. In at least one implementation, the data center can utilize 800 CPUs, application-specific integrated circuits (ASICs), GPUs, FPGAs, and / or other hardware (or equivalent virtual computing resources) to perform training and / or inference using the resources described above. Additionally, one or more of the software and / or hardware resources described above can be configured as a service to allow users to train or infer information, such as image capture, speech capture, or other artificial intelligence services. EXEMPLARY NETWORK ENVIRONMENTS Network environments suitable for implementing the disclosure may include one or more client devices, servers, network-attached storage (NAS), other backend devices, and / or other device types. The client devices, servers, and / or other device types (e.g., each device) may be implemented on one or more instances of the computing device(s) 700 of Fig. 7—e.g., each device may include similar components, features, and / or functionality to the computing device(s) 700. Furthermore, if backend devices (e.g., servers, NAS, etc.) are implemented, the backend devices may be included as part of a data center 800, an example of which is described in more detail herein with reference to Fig. 8. The components of a network environment can communicate with each other over a network, which can be wired, wireless, or both. The network can contain multiple networks or a network of networks. For example, the network can contain one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks such as the internet and / or a public switched telephone network (PSTN), and / or one or more private networks. If the network includes a wireless telecommunications network, components such as a base station, a communications tower, or even access points (as well as other components) can provide wireless connectivity. Compatible network environments can include one or more peer-to-peer network environments—in which case a server cannot be included in a network environment—and one or more client-server network environments—in which case one or more servers can be included in a network environment. In peer-to-peer network environments, the functionality described herein can be implemented on any number of client devices with reference to a server. In at least one implementation, a network environment can include one or more cloud-based network environments, a distributed computing environment, a combination thereof, etc. A cloud-based network environment can include a framework layer, a job scheduler, a resource manager, and a distributed file system implemented on one or more servers, which may include one or more core network servers and / or edge servers. A framework layer can include a framework for supporting software of a software layer and / or one or more applications of an application layer. The software or application(s) can each include web-based service software or applications. In implementations, one or more of the client devices can use the web-based service software or applications (e.g.,by accessing the service software and / or applications via one or more application programming interfaces (APIs). The framework layer can be a type of free and open-source software web application framework, such as one that uses a distributed file system for processing large amounts of data (e.g., "Big Data"), but is not limited to that. A cloud-based network environment can provide cloud computing and / or cloud storage, performing any combination (or parts thereof) of the computing and / or data storage functions described herein. Each of these different functions can be distributed across multiple locations of central or core servers (e.g., one or more data centers, which may be distributed across a state, region, country, the globe, etc.). If a connection to a user (e.g., a client device) is relatively close to an edge server, the core server(s) may offload at least some functionality to the edge server(s). A cloud-based network environment can be private (e.g., restricted to a single organization), public (e.g., available to many organizations), and / or a combination thereof (e.g., a hybrid cloud environment). The client device(s) may include at least some of the components, features, and functions of the exemplary computing device(s) 700 described herein with reference to Fig. 7. By way of example, and not as a limitation, a client device may be a personal computer (PC), a laptop, a mobile device, a smartphone, a tablet computer, a smartwatch, a portable computer, a personal digital assistant (PDA), an MP3 player, a virtual reality headset, a global positioning system (GPS) or a global positioning device, a video player, a video camera, a surveillance device or a surveillance system, a vehicle, a boat, a hydrofoil, a virtual machine, a drone, a robot, a handheld communication device, a hospital device, a gaming device or a gaming system, an entertainment system, a vehicle computer system, an embedded system controller, a remote control,a device, a consumer electronics device, a workstation, an edge device, any combination of these described devices, or any other suitable device. The revelation can be described in the general context of computer code or machine-usable instructions, including computer-executable instructions such as program modules that are executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules contain routines, programs, objects, components, data structures, etc., and refer to code that performs specific tasks or implements certain abstract types of data. The revelation can be practiced in a variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, more specialized computing devices, etc. The revelation can also be practiced in distributed computing environments, where tasks are performed by remote processing devices connected to each other via a network for communication. As used herein, any mention of "and / or" in relation to two or more elements should be interpreted as referring to only one element or a combination of elements. For example, "element A, element B and / or element C" may include only element A, only element B, only element C, element A and element B, element A and element C, element B and element C, or elements A, B, and C. Furthermore, "at least one of element A or element B" may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B. Additionally, "at least one of element A and element B" may include at least one of element A, at least one of element B, or at least one of element A and at least one of element B. The subject matter of this disclosure is specifically described herein to satisfy legal requirements. However, the description itself is not intended to limit the scope of protection afforded by this disclosure. Rather, the inventors have considered that the claimed subject matter may also be embodied in other ways to include various steps or combinations of steps similar to those described in this document, in conjunction with other present or future technologies. Although the terms "step" and / or "block" may be used herein to denote various elements of the methods employed, these terms should not be interpreted as implying any particular sequence among or between the various steps disclosed herein, except where the sequence of each step is expressly described. It is understood that the aspects and embodiments described above are only exemplary and that changes to details may be made within the scope of protection of the claims. Each device, method and feature disclosed in the description and (where applicable) in the claims and drawings may be provided independently or in any suitable combination. The reference numerals appearing in the claims are for illustrative purposes only and are not intended to have any limiting effect on the scope of protection of the claims.
Claims
A system comprising one or more processors for the following: determining a plurality of first telemetry values from a graphics processing unit (GPU) and a plurality of second telemetry values from a central processing unit (CPU), wherein the plurality of first telemetry values and the plurality of second telemetry values specify a workload of a computing device; determining a power consumption value of a high-speed interface coupled to the GPU and the CPU, at least based on the plurality of first telemetry values and the plurality of second telemetry values, by selecting a speed for the high-speed interface using a neural network; and communicating data over the high-speed interface using the speed. System according to claim 1, wherein the one or more processors serve to: receive a mode of the computing device; determine a power value, the power value indicating a difference between the power consumption value before and after data communication using the high-speed interface; and assign the power value to one or more of the components of the computing device based on the mode. System according to claim 2, wherein the mode comprises a battery mode or a core mode, wherein the battery mode indicates that the power value is allocated to a battery to extend the lifespan of the computing device, and the core mode indicates that the power value is allocated to a core to improve the performance of the computing device. System according to one of the preceding claims, wherein for determining the speed of the one or more processors, the following are performed: by the neural network determining a plurality of execution times and a plurality of performance values for a plurality of speeds of the high-speed interface, wherein the plurality of execution times specifies a data transmission rate of the high-speed interface and the plurality of performance values specifies a performance of the communication interface; and by the neural network selecting the speed from the plurality of speeds based on the plurality of execution times and the plurality of performance values. System according to one of the preceding claims, wherein the high-speed interface comprises a Peripheral Component Interconnect Express (PCIe). System according to one of the preceding claims, wherein the neural network is updated using a training data set to select the speed prior to execution on the computing device, the training data set comprising a plurality of training telemetry values corresponding to a plurality of training execution times and a plurality of training performance values. System according to one of the preceding claims, wherein the plurality of first telemetry values and the plurality of second telemetry values comprise the operating frequency, usage, analog measurements, performance monitoring counters, activity status, current operating status and current power saving mode status of at least one of the GPU, CPU or high-speed interface. System according to any one of the preceding claims, wherein the one or more processors are included in at least one of the following: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system implemented using a robot; an antenna system; a medical system; a boat system; an intelligent area monitoring system; a system for performing deep learning operations; a system for performing simulation operations; a system for generating or displaying virtual reality (VR), augmented reality (AR), or mixed reality (MR) content; a system for performing digital twin operations; a system implemented using an edge device; a system that includes one or more virtual machines (VMs); a system for generating synthetic data;a system that is at least partially implemented in a data center; a system for performing conversational artificial intelligence (AI) operations; a system for performing generative AI operations; a system for implementing language models; a system for implementing Vision Language Models (VLMs); a system for implementing Large Language Models (LLMs); a system for implementing Small Language Models (SLMs); a system for implementing multimodal language models; a system for hosting one or more real-time streaming applications; a system for performing light transport simulations; a system for performing collaborative content creation for 3D assets; or a system that is at least partially implemented using cloud computing resources. A system comprising one or more processors for: determining a plurality of first telemetry values from a first processing unit and a plurality of second telemetry values from a second processing unit, wherein the plurality of first telemetry values and the plurality of second telemetry values specify a workload of a computing device; determining a parameter value for a parameter of a communication interface coupled to the first processing unit and the second processing unit, using a neural network at least based on the plurality of first telemetry values and the plurality of second telemetry values, wherein the parameter value specifies a bandwidth of the communication interface; and configuring the communication interface using the parameter value. System according to claim 9, wherein the parameter is at least one of a scaling capacity of the link bandwidth, a threshold for entering the power state, an operating frequency, a power mode, a power limit, a latency tolerance or a credit throttling of the communication interface. System according to claim 9 or 10, wherein the plurality of first telemetry values and the plurality of second telemetry values comprise the operating frequency, usage, analog measurements, performance monitoring counters, activity status, current operating status and current power saving mode status of the at least one of the first processing unit, the second processing unit or the communication interface. System according to any one of claims 9 to 11, wherein the one or more processors serve to: receive a mode of the computing device; determine a power value, wherein the power value indicates a difference between a bandwidth value before and after the communication of data using the parameter value on the communication interface; and assign the power value to one or more of the components of the computing device based on the mode. System according to claim 12, wherein the mode comprises a battery mode or a core mode, wherein the battery mode indicates that the power value is allocated to a battery to extend the lifespan of the computing device, and the core mode indicates that the power value is allocated to a core to improve the performance of the computing device. System according to any one of claims 9 to 13, wherein for determining the parameter value, one or more processors serve to: determine a plurality of execution times and a plurality of performance values for a plurality of parameter values of the communication interface by means of the neural network, wherein the plurality of execution times specifies a data transmission rate of the high-speed interface and the plurality of performance values specifies a performance of the communication interface; and select the parameter value from the plurality of parameter values based on the plurality of execution times and the plurality of performance values by means of the neural network. System according to any one of claims 9 to 14, wherein the first processing unit is a graphics processing unit (GPU) and the second processing unit is a central processing unit (CPU). System according to any one of claims 9 to 15, wherein the neural network is updated using a training data set to select the parameter value prior to execution on the computing device, wherein the training data set comprises a plurality of training telemetry values corresponding to a plurality of training execution times and a plurality of training performance values. System according to any one of claims 9 to 16, wherein the neural network is executed on a hardware co-processor. System according to any one of claims 9 to 17, wherein the communication interface comprises a high-speed communication interface. A method comprising: determining a plurality of first telemetry values from a first processing unit and a plurality of second telemetry values from a second processing unit, wherein the plurality of first telemetry values and the plurality of second telemetry values specify a workload of a computing device; determining a plurality of execution times and a plurality of performance values for a plurality of parameter values of a communication interface coupled to the first processing unit and the second processing unit by a neural network, wherein the plurality of parameter values specifies a bandwidth of the communication interface, the plurality of execution times specifies a data transmission rate of the communication interface, and the plurality of performance values specifies a performance of the communication interface;Selecting a parameter value from the multitude of parameter values based on the multitude of execution times and the multitude of performance values; and operating the communication interface using the parameter value. The method of claim 19, wherein the neural network is updated using a training data set to select the parameter value prior to execution on the computing device, the training data set comprising a plurality of training telemetry values corresponding to a plurality of training execution times and a plurality of training performance values.
