Dynamic power optimization for high speed interconnects using machine learning
By analyzing telemetry values through a machine learning system, the generational speed of high-speed interconnects is automatically adjusted, solving the problem of power consumption that is difficult to optimize manually, and realizing dynamic power optimization and performance improvement.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- NVIDIA CORP
- Filing Date
- 2025-12-22
- Publication Date
- 2026-07-07
AI Technical Summary
In existing technologies, the power configuration of high-speed interconnects requires manual adjustment by the user, making it difficult to reduce active power consumption while maintaining performance requirements, and different applications respond differently to generational speed adjustments.
A machine learning system is used to analyze telemetry values from GPUs and CPUs via neural networks to automatically determine the optimal power configuration and adjust the generation speed of high-speed interconnects to optimize power consumption.
It achieves automatic power optimization for high-speed interconnects, and the saved power can be redirected to the battery to extend its life or to the core to improve performance, dynamically adapting to the performance requirements of different workloads.
Smart Images

Figure CN122346451A_ABST
Abstract
Description
Background Technology
[0001] High-speed interconnects enable the transfer and processing of large amounts of data between two components within a system. They can also feature various power configurations or operating modes that can be leveraged in specific use cases to reduce active power consumption while maintaining performance requirements. Traditional techniques for adjusting the power configuration of high-speed interconnects may require user input, such as manual tuning or coding. Summary of the Invention
[0002] This disclosure relates to embodiments of dynamic power optimization for high-speed interconnects using machine learning. Systems and methods are disclosed that allow high-speed interconnects to automatically execute optimal power configurations. The system can determine telemetry values at both ends or endpoints of the high-speed interconnect and use a neural network to determine the optimal power configuration based on the telemetry values. After determining the optimal power configuration, the system can execute that optimal configuration on the high-speed interconnect.
[0003] Compared to the conventional systems described above, the system disclosed herein may include one or more processors for 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 indicate the workload of the computing device, and, based at least on the plurality of first telemetry values and the plurality of second telemetry values, determines the power consumption value of a high-speed interface coupled to the GPU and CPU by using a neural network to select a speed, and transmits data by the high-speed interface at the speed.
[0004] In various implementations, one or more processors: receive a mode of the computing device; determine a power value indicating the difference in power consumption before and after data communication at a speed using a 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, where the battery mode allocates power to the battery to extend the lifespan of the computing device, and a core mode allocates power to the cores to improve the performance of the computing device. To determine the speed, the one or more processors may: determine multiple execution times and multiple performance values for various speeds of the high-speed interface using a neural network, where the multiple execution times indicate the data transfer rate of the high-speed interface, and the multiple performance values indicate the performance of the high-speed interface; and select a speed from the multiple speeds based on the multiple execution times and multiple performance values using the neural network.
[0005] In various implementations, the high-speed interface includes Peripheral Component Rapid Interconnect (PCIe). The neural network can be updated to select a speed based on a training dataset before execution on the computing device. The training dataset includes multiple training telemetry values corresponding to multiple training execution times and multiple training performance values. The multiple first telemetry values and multiple second telemetry values can include the operating frequency, utilization, analog measurements, performance monitoring counters, activity states, current operating states, and current low-power mode states of at least one of the GPU, CPU, or high-speed interface.
[0006] In various implementations, one or more processors are included in at least one of the following systems: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system implemented using robots; an aerial system; a medical system; a shipboard system; a smart area monitoring system; a system for performing deep learning operations; a system for performing simulation operations; a system for generating or presenting virtual reality (VR) content, augmented reality (AR) content, or mixed reality (MR) content; a system for performing digital twin operations; a system implemented using edge devices; a system containing one or more virtual machines (VMs); a system for generating synthetic data; a system 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 a language model; a system for implementing a visual language model (VLM); a system for implementing a large language model (LLM); a system for implementing a small language model (SLM); a system for implementing a multimodal language model; a system for hosting one or more real-time streaming applications; a system for performing optical transmission simulation; a system for performing 3D asset collaborative content creation; or a system at least partially implemented using cloud computing resources.
[0007] At least one aspect of this disclosure relates to a system comprising one or more processors configured to: determine 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 indicate the workload of a computing device; determine, using a neural network, at least based on the plurality of first telemetry values and the plurality of second telemetry values, parameter values of a communication interface coupled to the first processing unit and the second processing unit, wherein the parameter values indicate the bandwidth of the communication interface; and configure the communication interface using the parameter values.
[0008] In various implementations, the parameter is at least one of the following: link bandwidth capacity of the communication interface, power state entry threshold, operating frequency, power mode, power limit, latency tolerance, or credit throttling. Multiple first telemetry values and multiple second telemetry values may include at least one of the following: operating frequency, utilization, analog measurement, performance monitoring counter, activity state, current operating state, and current low-power mode state of at least one of the first processing unit, second processing unit, or communication interface. One or more processors may also: receive a mode of the computing device; determine a power value indicating the difference in bandwidth values before and after data transmission using the parameter value via the communication 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 battery mode indicates that power values are allocated to the battery to extend the lifespan of the computing device, and core mode indicates that power values are allocated to the core to improve the performance of the computing device.
[0009] In various implementations, to determine parameter values, one or more processors: determine multiple execution times and multiple performance values for multiple parameter values of a communication interface using a neural network, wherein the multiple execution times indicate the data transmission rate of the communication interface, and the multiple performance values indicate the performance of the communication interface; and select parameter values from the multiple parameter values based on the multiple execution times and multiple performance values using the neural network. The first processing unit may be a graphics processing unit (GPU), and the second processing unit may be a central processing unit (CPU).
[0010] In various implementations, the neural network updates its parameters based on a training dataset to select values before execution on the computing device. The training dataset includes multiple training telemetry values corresponding to multiple training execution times and multiple training performance values. The neural network can execute on a hardware coprocessor. The communication interface may include a high-speed communication interface.
[0011] At least one aspect of this disclosure relates to 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 indicate the workload of a computing device; determining, by a neural network, 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 and second processing units, wherein the plurality of parameter values indicate the bandwidth of the communication interface, the plurality of execution times indicate the data transmission rate of the communication interface, and the plurality of performance values indicate the performance of the communication interface; selecting a parameter value from the plurality of parameter values based on the plurality of execution times and the plurality of performance values; and operating the communication interface with the parameter value.
[0012] In various implementations, the neural network updates its parameters based on a training dataset to select values before execution on a computing device. The training dataset includes multiple training telemetry values corresponding to multiple training execution times and multiple training performance values. Attached Figure Description
[0013] The system and method of this disclosure for high-speed interconnect power optimization using machine learning are described in detail below with reference to the accompanying drawings, wherein:
[0014] Figure 1 This is a block diagram of an example system for selecting interface parameter values according to some implementations of this disclosure;
[0015] Figure 2 This is a block diagram of an example system for selecting interface parameter values based on some implementations of this disclosure;
[0016] Figure 3 This is a block diagram of an example system for selecting interface parameter values and determining power values according to some implementations of this disclosure;
[0017] Figure 4 This is a flowchart of an exemplary method for selecting a speed and transmitting data at that speed, according to some implementations of this disclosure;
[0018] Figure 5 This is a flowchart of an exemplary method for selecting parameter values and using those parameter values to transmit data, according to some implementations of this disclosure;
[0019] Figure 6 This is a flowchart of an exemplary method for selecting parameter values and using those parameter values to transmit data, according to some implementations of this disclosure;
[0020] Figure 7 This is a block diagram of an exemplary computing device suitable for implementing some implementations of this disclosure; and
[0021] Figure 8 This is a block diagram of an exemplary data center applicable to some implementations of this disclosure. Detailed Implementation
[0022] Systems and methods for power optimization of high-speed interconnects using machine learning are disclosed. As a non-limiting example, a neural network can be updated using performance, power, and telemetry values from various processing units of a computing device, such as graphics processing units (GPUs) and central processing units (CPUs). The neural network can be updated prior to execution on the computing device, and can be implemented to determine and adjust the high-speed interconnects of the computing device based on optimal power configuration. The power saved by the neural network can be reallocated to the computing device's battery to extend battery life, or allocated to the cores to achieve higher performance for the computing device.
[0023] This disclosure relates to systems and methods for optimizing the power and performance of high-speed interconnects (e.g., PCIe), such as saving power via the PCIe interface while maintaining performance. Power saved from various high-speed interconnects (e.g., Non-volatile Memory Fast Access (NVMe)) can be used to improve (e.g., device) battery life or transferred to improve core performance. One approach to doing this involves adjusting the generation speed of the high-speed interconnect. However, various applications (e.g., applications on the device) have different performance requirements and may respond differently to generation speed adjustments. These applications may have different high-speed interconnect throughput boundaries, and each application may have a different optimal generation speed. Furthermore, although end users can manually select the optimal generation speed, they may need to adjust the generation speed for each application and use case.
[0024] The systems and methods according to this disclosure can implement a neural network to dynamically determine an optimal high-speed interconnect generation speed based on telemetry (e.g., various data and metrics related to the performance, health, and usage of a device) received from sources such as a GPU, CPU, high-speed interconnect, and / or other such sources. Telemetry may be received by a cell activity counter random access memory (RAM) to determine the device's workload (e.g., a task). The neural network can be executed by a hardware coprocessor and controller within a power management unit to control the high-speed interconnect and operate at the generation speed determined by the neural network. The neural network can generate a compilation (e.g., in a table, etc.) of relative execution time relative to the generation speed of the high-speed interconnect to determine the optimal generation speed for the current telemetry. For example, the neural network can select the optimal generation speed based on a combination of lower relative execution time (e.g., compared to other generation speeds) and higher performance values (e.g., compared to other generation speeds). The hardware coprocessor can be mounted on a chip and dedicated to executing the neural network and determining the optimal generation speed. For example, the system can receive telemetry from a GPU and input the telemetry into the neural network. The neural network can then determine the optimal generational speed of the high-speed interconnect based on telemetry and communicate this optimal generational speed to the controller. The controller can then configure the high-speed interconnect to operate at the optimal generational speed.
[0025] Power saved by operating high-speed interconnects at optimal generational speeds can be redirected based on the system's mode. Modes can include direct current (DC) mode and alternating current (AC) mode. For example, in response to the system being set to DC mode, the saved power can be redirected to a battery connected to the chip (e.g., a computer battery) to extend battery life. As another example, in response to the system being set to AC mode, the saved power can be directed to the cores (e.g., a GPU core) to improve performance.
[0026] Neural networks can be updated offline (e.g., trained) through supervised learning of various workloads associated with different generational speeds. Training can be performed during chip startup (e.g., during chip testing). Various workloads can include telemetry from various processing units (e.g., CPU, GPU, etc.) and can be overall performance metrics. Training allows the neural network to learn the relationship between various workloads and different generational speeds.
[0027] The systems and methods described herein can be used for a variety of purposes, including but not limited to: machine control, machine motion, machine driving, synthetic data generation, model training, perception, augmented reality, virtual reality, mixed reality, robotics, security and supervision, simulation and digital twins, autonomous or semi-autonomous machine applications, deep learning, environmental simulation, object or participant simulation and / or digital twins, data center processing, conversational AI, optical transport simulation (e.g., ray tracing, path tracing, etc.), collaborative content creation for 3D assets, cloud computing and / or any other suitable application.
[0028] The disclosed implementations can be found in a variety of different systems, such as automotive systems (e.g., control devices for autonomous or semi-autonomous machines, perception systems for autonomous or semi-autonomous machines, etc.), systems implemented using robots, aerial systems, medical systems, marine systems, smart area monitoring systems, systems for performing deep learning operations, systems for performing simulation operations, systems for performing digital twin operations, systems implemented using edge devices, systems containing one or more virtual machines (VMs), systems for performing synthetic data generation operations, systems implemented at least partially in data centers, systems for performing conversational AI operations, systems for performing optical transmission simulations, systems for performing collaborative content creation for 3D assets, systems implemented at least partially using cloud computing resources, and / or other types of systems.
[0029] refer to Figure 1 , Figure 1This is an exemplary system 100 for selecting interface parameter values according to some implementations of this disclosure. It should be understood that the arrangements and other arrangements described herein are merely illustrative examples. Other arrangements and elements (e.g., machines, interfaces, functions, sequences, functional groups, etc.) may be used in addition to or in place of the arrangements and elements shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that can be implemented as discrete or distributed components, or combined with other components, and implemented in any suitable combination and location. The various functions described herein as being performed by entities can be performed by hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in memory.
[0030] System 100 may include one or more unit activity counters 102. Unit activity counters 102 may be hardware and / or firmware. Unit activity counters 102 may be random access memory (RAM). Unit activity counters 102 may be coupled to multiple processing units (e.g., a first processing unit, a second processing unit, etc.) and a communication interface (e.g., a communication interface 710). One end of the communication interface may be coupled to a first processing unit, and the other end to a second processing unit. For example, the first processing unit may be a graphics processing unit (GPU) (e.g., GPU 708), and the second processing unit may be a central processing unit (CPU) (e.g., CPU 706). The communication interface may be a high-speed interface. High-speed interfaces may include, but are not limited to, at least one of peripheral component fast interconnect (PCIe), non-volatile memory fast access (NVMe), Serial Advanced Technology Attachment (SATA), U.2, HyperTransport (HT), crossbar switch, NVLink, or compute fast link (CXL).
[0031] Unit activity counter 102 may receive unit activity count 104 from a first processing unit, a second processing unit, a communication interface, or a combination thereof. Unit activity counter 102 may count or otherwise track various metrics, such as cache reads, multiplications, or additions, indicating the workload of the computing device (e.g., operations and processes being performed). Unit activity counter 102 may store unit activity count 104. Unit activity count 104 may include 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. Unit activity counter 102 may also receive the plurality of first telemetry values 106 and the plurality of second telemetry values 108 from the communication interface. For example, unit activity counter 102 may 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., multiple first telemetry values 106, multiple 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 various telemetry values. The multiple first telemetry values 106 and the multiple second telemetry values 108 can indicate the workload of the computing device (e.g., computing device 700).
[0032] Various telemetry values may include, but are not limited to, the utilization of at least one of the first or second processing units, the clock speed (e.g., operating frequency) of at least one of the first or second processing units, the instruction execution rate of at least one of the first or second processing units, the bus arbitration (BA) signal, and performance readings of at least one of the first or second processing units. In some implementations, various telemetry values may also include, but are not limited to, the operating temperature, power consumption, cache utilization, average load (e.g., a measure of utilization and workload demand) of at least one of the first processing unit, the second processing unit, or the communication interface, the core voltage, memory clock speed, memory utilization, fan speed, frame rate (FPS), thermal throttling (e.g., changing the clock speed to mitigate thermal damage), link speed, link width, throughput, latency (e.g., latency in data transmission), and error count (e.g., the number of errors occurring during data transmission). Various telemetry values may also include the operating frequency (e.g., clock speed) of at least one of the first processing unit, the second processing unit, or the communication interface, analog measurements (e.g., voltage, power), performance monitoring counters, activity states (e.g., throughput measurements, link occupancy), operating states (e.g., bandwidth capacity), and low-power mode states (e.g., low-power function enabled or disabled). For example, the CPU may include a performance monitoring unit (PMU) for providing performance event counters, and the GPU may include a block activity counter for counting GPU activity (e.g., tasks). The PCIe may also include counters for, for example, measuring PCIe data throughput.
[0033] System 100 may include one or more power managers 110. Power managers 110 may be hardware and / or firmware. Power managers 110 may be coupled to cell activity counter 102 and receive various telemetry values (e.g., multiple first telemetry values 106, multiple second telemetry values 108, etc.) from cell activity counter 102. Power managers 110 may be a processor. Power managers 110 may preprocess (e.g., clean, process, enhance) the at least multiple first telemetry values 106 and multiple second telemetry values 108. For example, power managers 110 may scale (e.g., normalize) the multiple first telemetry values 106 and multiple second telemetry values 108. Power managers 110 may normalize the multiple first telemetry values 106 and multiple second telemetry values 108 to a numerical range. For example, this numerical range may be between 0 and 1 (inclusive). Power managers 110 may also calculate the multiple first telemetry values 106 and multiple second telemetry values 108 as rates (e.g., value divided by time). This can take into account the variation of measurement windows for multiple first telemetry values 106 and multiple second telemetry values 108.
[0034] System 100 may include one or more deep learning (DL) coprocessors 112. The DL coprocessors 112 may be hardware and / or firmware. The DL coprocessors 112 may be coupled to a power manager 110 and receive preprocessed telemetry values (e.g., a plurality of preprocessed first telemetry values 106 and a plurality of second telemetry values 108) from the power manager 110. In some implementations, the DL coprocessor 112 is a hardware processor.
[0035] The DL coprocessor 112 may include an interface parameter value model 114 running on the DL coprocessor 112. The interface parameter value model 114 may be a neural network that is updated (e.g., trained) based on multiple training telemetry values representing various workloads of the computing device (e.g., low workload and high workload). The interface parameter value model 114 may be trained via supervised learning, wherein the multiple training telemetry values are associated with multiple training execution times and multiple training performance values. The multiple training execution times and multiple training performance values may be associated with parameter values of the communication interface's parameters, respectively. The multiple training execution times may be the duration required for the communication interface to perform a task (e.g., data transfer rate), while the multiple training performance values may represent the performance of the communication interface. The multiple training performance values may be generated based on various metrics, such as, but not limited to, CPU performance compared to a benchmark score, graphics performance compared to a benchmark score, or power consumption. The parameter value may indicate the bandwidth of the communication interface. The parameters of the communication interface may indicate the bandwidth of the communication interface and may include, but are not limited to, the speed, credits, quotas, latency quotas, link width, or clock speed of the communication interface. For example, the speed parameter value may include generational speeds of 1, 2, 3, 4, and 5 for the communication interface. As another example, the link width parameter value may include 16, 8, 4, 2, and 1 for the communication interface. In some implementations, the parameters of the communication interface may include, but are not limited to, link bandwidth capacity (e.g., speed, generational speed, link width, number of enabled links, etc.), power state entry threshold (e.g., threshold for transitioning from an active state to a low-power state), operating frequency (e.g., using Dynamic Voltage Frequency Scaling (DVFS) to change the operating frequency and / or voltage), power mode (e.g., state), power cap (e.g., maximum power utilization), latency tolerance (e.g., maximum tolerance), or credit throttling (e.g., credit allocation, throttling threshold).
[0036] The parameter values of a communication interface can be adjusted based on workload to optimize its power and performance. For example, changing the parameter values of a communication interface according to workload may result in better power and performance than a communication interface with constant parameter values. For instance, in response to a lower workload (e.g., requiring lower bandwidth), lower parameter values (e.g., lower generation speed) can save power while maintaining performance. The interface parameter value model 114 can be trained to select parameter values based on multiple training telemetry values (e.g., indicating workload), as will be further described below.
[0037] Power manager 110 can program or otherwise provide telemetry values (e.g., a plurality of first telemetry values 106, a plurality of second telemetry values 108, etc.) to the DL coprocessor 112 to feed into interface parameter value model 114. In some embodiments, power manager 110 can preprocess the plurality of first telemetry values 106 and the plurality of second telemetry values 108 based on the boundaries of interface parameter value model 114 (e.g., minimum and maximum values in training data). For example, each of the plurality of first telemetry values 106 and the plurality of second telemetry values 108 can be divided by the maximum value of the training data. This normalizes the plurality of first telemetry values 106 and the plurality of second telemetry values 108 to the training data.
[0038] The DL coprocessor 112 may include RAM programmed with (but not limited to) the network architecture, weights, and biases of the interface parameter value model 114. The power manager 110 may program the DL coprocessor 112 with a plurality of first telemetry values 106 and a plurality of second telemetry values 108 to generate computations via the interface parameter value model 114. The interface parameter value model 114 may generate a model output 116 based at least on the plurality of first telemetry values 106 and the plurality of second telemetry values 108. The model output 116 may include a plurality of execution times and a plurality of performance values. The plurality of execution times may be the duration required for the communication interface to perform a task (e.g., data transfer rate), while the plurality of performance values may indicate the performance of the communication interface and / or the computing device. The plurality of performance values may be generated based on various metrics, such as, but not limited to, CPU performance compared to a benchmark score, graphics performance compared to a benchmark score, or power consumption. The interface parameter value model 114 can predict multiple execution times and multiple performance values of the computing device based at least on multiple first telemetry values 106 and multiple second telemetry values 108 for each parameter value (e.g., per generational velocity).
[0039] Multiple execution times and multiple performance values can be associated with multiple parameter values. These multiple execution times and multiple performance values can be used to predict the impact of multiple parameter values on a communication interface and / or computing device. The interface parameter value model 114 can receive multiple first telemetry values 106 and multiple second telemetry values 108 as input, apply different parameter values to the multiple first telemetry values 106 and multiple second telemetry values 108, and generate a model output 116 as a result. For example, the interface parameter value model 114 can generate a model output 116 for the speed of a communication interface (e.g., generational speed), which may include five different speeds (e.g., multiple parameter values). The interface parameter value model 114 can apply each of the five speeds to the multiple first telemetry values 106 and multiple second telemetry values 108 to generate the model output 116. The model output 116 can be a table and / or another data structure.
[0040] Once the interface parameter value model 114 generates model output 116, the DL coprocessor 112 can receive model output 116 and provide it to the power manager 110. The power manager 110 may include an interface parameter value selector 118. The interface parameter value selector 118 may be an algorithm (e.g., logic) for selecting interface parameter values 120 for the communication interface from the model output 116. The interface parameter value selector 118 may be a controller. For example, the interface parameter value selector 118 may receive multiple execution times and multiple performance values of the model output 116 and select interface parameter value 120 based on the multiple execution times and multiple performance values. The interface parameter value selector 118 may select interface parameter value 120 based on parameter values corresponding to the lowest execution time and the highest performance value. For example, the interface parameter value selector 118 may select interface parameter value 120 with the best combination of low execution time and high performance values. The interface parameter value selector 118 may apply a function (e.g., an optimization function) to select interface parameter value 120.
[0041] After selecting interface parameter value 120, power manager 110 can set the communication interface to interface parameter value 120. Power manager 110 can be coupled to the communication interface. Power manager 110 can adjust the settings and / or parameter values of the communication interface. For example, in response to interface parameter value selector 118 selecting a generational speed for the communication interface, power manager 110 can set the communication interface to operate at that generational speed. Subsequently, the communication interface can use interface parameter value 120 to transmit data.
[0042] Based on interface parameter value 120, power manager 110 can determine the power consumption value of the computing device. This power consumption value can represent the difference between the power consumption (e.g., power consumption, power usage, etc.) of the computing device before and after transmitting data via the communication interface using interface parameter value 120. This power consumption value can be the power saved by the communication interface by transmitting data using interface parameter value 120. For example, the power consumption value of the computing device may be higher before transmitting data via the communication interface using interface parameter value 120 than after transmitting data via the communication interface using interface parameter value 120. Power manager 110 can determine the power consumption value before selecting interface parameter value 120 and after setting the communication interface to interface parameter value 120. In some implementations, power manager 110 may include a power consumption threshold. In response to the computing device's power consumption value reaching or exceeding the power consumption threshold, interface parameter value model 114 can generate model output 116.
[0043] Based on the computing device's mode, power manager 110 can allocate power values to the various components of the computing device, as further described herein. For example, the computing device may include at least one of battery mode or core mode. In response to the computing device being set to battery mode (e.g., set by a user, entity, etc.), power manager 110 can allocate power values to the computing device's battery to extend the computing device's lifespan. When the computing device is set to core mode, power manager 110 can allocate power values to the computing device's cores (e.g., CPU) to improve the computing device's performance (e.g., speed, throughput, etc.).
[0044] In some implementations, the interface parameter value model 114 and the interface parameter value selector 118 are combined. For example, both generating the model output 116 and selecting the interface parameter value 120 can be performed by the interface parameter value model 114. In this case, the interface parameter value model 114 can transmit the interface parameter value 120 to the power manager 110.
[0045] Figure 2 It is based on some implementations of this disclosure that can be used Figure 1The illustrated system is a block diagram of system 200 used for training interface parameter value model 114. It should be understood that the schemes and other schemes described herein are illustrative only. Other arrangements and elements (e.g., machines, interfaces, functions, sequences, functional groups, etc.) may be used in addition to or in place of the arrangements and elements shown, and some elements may be omitted entirely. Furthermore, many elements described herein are functional entities that can be implemented as discrete or distributed components, or combined with other components, and implemented in any suitable combination and at any suitable location. The various functions described herein as being performed by entities can be performed by hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in memory.
[0046] The interface parameter value model 114 can be updated offline (e.g., during training) during the training phase of 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 chip startup (e.g., testing and validating the chip before it is installed on the computing device). The interface parameter value model 114 can be trained on training dataset 202. Training dataset 202 can be collected by running different workloads of the computing device at various frequencies (e.g., the time between increasing or decreasing workloads) and parameter values of the communication interface. For example, training dataset 202 can be collected by running different computing workloads at different frequencies and different generational speeds of the communication interface. Training dataset 202 may include multiple training telemetry values 204, multiple training execution times 206, and multiple training performance values 208. Multiple training telemetry values 204 can be collected from various components of the computing device (e.g., first processing unit, second processing unit, communication interface, etc.) when running different workloads. When running different workloads, parameter values can be changed to collect multiple training execution times 206 and multiple training performance values 208. For example, running a higher workload at a lower generation speed (e.g., generation speed 1) may result in lower performance values and lower execution times.
[0047] Each parameter value of the communication interface can correspond to a workload (e.g., training telemetry value 204). The training telemetry value 204 and the parameter value can correspond to at least one of training execution time 206 or training performance value 208. The power manager 110 can use the maximum value in the training telemetry value 204 to normalize (e.g., scale) a plurality of first telemetry values 106 and a plurality of second telemetry values 108.
[0048] System 200 may include one or more deep learning networks 210. Deep learning networks 210 may be updated (e.g., trained) on training dataset 202. Deep learning networks 210 may be trained through supervised training on training dataset 202. Training telemetry values 204 may include telemetry values from a first processing unit (e.g., GPU) and a second processing unit (e.g., CPU). Training telemetry values 204 may also include telemetry values from a communication interface (e.g., PCIe). Training telemetry values 204 may include, for example, performance metrics and frame rates of the first processing unit, the second processing unit, and the communication interface. Training dataset 202 may include ground truth (e.g., baseline) used to train deep learning networks 210. Ground truth may be training execution time 206 and training performance value 208 associated with training telemetry values 204. For each parameter value of the communication interface (e.g., generational speeds 1, 2, 3, 4, and 5), ground truth may include training execution time 206 and training performance value 208.
[0049] After training, the deep learning network 210 can output an 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 of execution time and performance values for various parameter values. For example, the input to the interface parameter value model 114 can be multiple parameter values of a communication interface and multiple telemetry values of a computing device. The interface parameter value model 114 can then output multiple execution time and performance values for each of the multiple parameter values. As another example, the interface parameter value model 114 can generate predictions of execution time and performance values for each generation of speed based on telemetry values.
[0050] System 200 may include telemetry values 212. Telemetry values 212 may be real-time (e.g., live) telemetry values received from a first processing unit, a second processing unit, and / or a communication interface. Telemetry values 212 may include multiple first telemetry values 106, multiple second telemetry values 108, and / or multiple telemetry values from the communication interface. During the inference (e.g., prediction) phase of system 200, interface parameter value model 114 may receive telemetry values 212 and generate model output 116. Model output 116 may include multiple execution times and multiple performance values for each of the multiple parameter values. Interface parameter value model 114 may generate model output 116 based on telemetry values 212 by predicting multiple execution times and multiple performance values for each parameter value.
[0051] Figure 3 This is a block diagram of a system 300 used to select the generational speed (e.g., interface parameter value 120) and determine the power value 304. According to some implementations of this disclosure, Figure 1and / or Figure 2 The system described herein may use system 300. It should be understood that the arrangement and other arrangements described herein are merely illustrative examples. Other arrangements and elements (e.g., machines, interfaces, functions, sequences, functional groups, etc.) may be used in addition to or in place of the arrangements and elements shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that may be implemented as discrete or distributed components, or combined with other components, and implemented in any suitable combination and location. The various functions described herein as being performed by entities may be performed by hardware, firmware, and / or software. For example, various functions may be performed by a processor that executes instructions stored in memory.
[0052] like Figure 3 As shown, 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) for each generation speed. The number of generation speeds can be based on the communication interface. For example, in response to interface parameter value model 114 receiving telemetry values 212 from GPU, CPU, and PCIe, the interface parameters can generate relative execution times and performance values (not shown) for each generation speed of PCIe, where PCIe generation speeds can include 1, 2, 3, 4, and 5. Based on the relative execution times and performance values (e.g., model output 116), interface parameter value selector 118 can select a generation speed (e.g., interface parameter value 120). Interface parameter value selector 118 can apply an optimization function to the relative execution times and performance values to determine the optimal generation speed. The optimal generation speed can include a combination of the highest performance value and the lowest execution time. For example, as... Figure 3 As shown, the interface parameter value selector 118 can compare the performance values of generation speeds 5, 4, and 3 because these generation speeds have equal execution times and are lower than generation speeds 2 and 1. The interface parameter value selector 118 can then select, for example, the lowest generation speed with the highest performance value among generation speeds 1, 2, and 3.
[0053] Interface parameter value selector 118 can determine power value 304 and allocate power value 304 to various components of the computing device based on the computing device's mode. Power value 304 can be the difference in power consumption of the communication interface and / or the computing device before and after the communication interface is set to interface parameter value 120. For example, the computing device can include a direct current (DC) mode and an alternating current (AC) mode. In some implementations, DC mode is battery mode and AC mode is core mode. In response to setting the computing device to DC mode, interface parameter value selector 118 can direct power value 304 to the computing device's battery to extend battery life. In response to setting the computing device to AC mode, interface parameter value selector 118 can direct power value 304 to the core of the computing device for higher performance. The core can be a CPU (e.g., a second processing unit). Power value 304 can be allocated by power manager 110.
[0054] In some implementations, the interface parameter value selector 118 may include logic to prevent the interface parameter value selector 118 from switching the parameter values of the communication interface too frequently (e.g., the frequency of parameter value switching leads to performance degradation). The interface parameter value selector 118 may include functionality to reduce the speed (e.g., frequency) of parameter value switching. The interface parameter value selector 118 may also include a time threshold. The time threshold may represent the time between parameter value switching. For example, in response to meeting the time threshold, the interface parameter value model 114 generates multiple performance values and execution times based on telemetry values, and the interface parameter value selector 118 selects the interface parameter value 120 to set the communication interface to that value.
[0055] 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. In response to setting the computing device to graphics mode, power manager 110 may allocate power values to the GPU to improve graphics performance. In response to setting the computing device to memory mode, power manager 110 may allocate power values to RAM to improve memory performance, such as faster data access. In response to setting the computing device to cooling mode, power manager 110 may allocate power values to the cooling system for better thermal management. In some implementations, system 100 changes the mode of the computing device based on a plurality of first telemetry values 106 and a plurality of second telemetry values 108. In some implementations, the user manually adjusts the mode.
[0056] Now for reference Figure 4Each module of the method 400 described herein includes a computational process that can be executed using any combination of hardware, firmware, and / or software. For example, various functions can be executed by a processor that executes instructions stored in memory. These methods can also be embodied as computer-usable instructions stored on a computer storage medium. These methods can be provided by standalone applications, services, or managed services (standalone or in combination with another managed service) or plug-ins of another product, to name a few. Furthermore, method 400 is, for example, combined with... Figure 1 , Figure 2 and / or Figure 3 The system described herein. However, this method may also be performed by any system or combination of systems, including but not limited to the system described herein.
[0057] Figure 4 This is a flowchart illustrating a method 400 for selecting a speed and transmitting data at that speed according to some implementations of this disclosure. Method 400 includes, at block 402, determining a plurality of telemetry values, such as a plurality of first telemetry values (e.g., a plurality of first telemetry values 106) and a plurality of second telemetry values (e.g., a plurality of second telemetry values 108). The plurality of first telemetry values may come from a GPU (e.g., GPU 708). The plurality of second telemetry values may come from a CPU (e.g., CPU 706). The plurality of first telemetry values and the plurality of second telemetry values may indicate the workload of a computing device (e.g., computing device 700).
[0058] At block 404, the power consumption of the high-speed interface is determined by selecting a speed (e.g., interface parameter value 120) for the high-speed interface coupled to the GPU and CPU (e.g., communication interface 710). A neural network (e.g., interface parameter value model 114) can be used to select the speed. The neural network can use at least a portion of multiple telemetry values (e.g., multiple first telemetry values, multiple second telemetry values, etc.) to select the speed.
[0059] At block 406, the high-speed interface can transmit data at this speed. For example, the communication interface is configured to use this speed.
[0060] In some implementations, method 400 may further include receiving a mode of the computing device. A power value (e.g., power value 304) may also be determined. This power value may indicate the difference in power consumption before and after data transfer at the speed of a high-speed interface. Based on this power value, method 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 of a battery mode or a core mode. A battery mode may represent allocating power to the battery to extend the lifespan of the computing device, while a core mode may represent allocating power to the cores to improve the performance of the computing device.
[0061] In some implementations, to determine the speed, the neural network determines multiple execution times and multiple performance values for various speeds of the high-speed interface (e.g., model output 116). The multiple execution times can represent the data transfer rate of the high-speed interface, and the multiple performance values can represent the performance of the high-speed interface. The high-speed interface may include Peripheral Component Rapid Interconnect (PCIe). The neural network may be updated (e.g., trained) on a training dataset (e.g., training dataset 202). The training dataset may include multiple training telemetry values (e.g., training telemetry value 204) corresponding to multiple training execution times (e.g., training execution time 206) and multiple training performance values (e.g., training performance value 208).
[0062] In some implementations, multiple telemetry values may include GPU and CPU utilization, GPU and CPU clock speeds, GPU and CPU instruction execution rates, bus arbitration (BA) signals, and GPU and CPU performance readings.
[0063] Now for reference Figure 5 Each module of the method 500 described herein includes a computational process that can be executed using any combination of hardware, firmware, and / or software. For example, various functions can be executed by a processor that executes instructions stored in memory. These methods can also be embodied as computer-usable instructions stored on a computer storage medium. These methods can be provided by standalone applications, services, or managed services (standalone or in combination with another managed service) or plug-ins of another product, to name a few. Furthermore, method 500 is, for example, combined with… Figure 1 , Figure 2 and / or Figure 3 The system described herein. However, this method may also be performed by any system or combination of systems, including but not limited to the system described herein.
[0064] Figure 5 This is a flowchart illustrating a method 500 for selecting parameter values and transmitting data using parameter values according to some implementations of this disclosure. In block 502, method 500 includes: determining at least a plurality of first telemetry values (e.g., a plurality of first telemetry values 106) from a first processing unit and determining at least a plurality of second telemetry values (e.g., a plurality of second telemetry values 108) from a second processing unit, wherein the plurality of first telemetry values and the plurality of second telemetry values indicate the workload of a computing device. The first processing unit may be a GPU, and the second processing unit may be a CPU.
[0065] In block 504, method 500 includes: using a neural network, based at least on a plurality of first telemetry values and a plurality of second telemetry values, determining parameter values of a communication interface coupled to a first processing unit and a second processing unit. The parameter values may indicate the bandwidth of the communication interface. The parameter may be at least one of the following: link bandwidth capacity scaling, power state entry threshold, operating frequency, power mode, power limit, latency tolerance, or credit throttling of the communication interface. The neural network may execute on a hardware coprocessor (e.g., DL coprocessor 112).
[0066] In block 506, this parameter value can be used to configure the communication interface. For example, the communication interface can be communicatively coupled to a neural network and transmit data based on the parameter value.
[0067] Now for reference Figure 6 Each module of the method 600 described herein includes a computational process that can be executed using any combination of hardware, firmware, and / or software. For example, various functions can be implemented by a processor executing instructions stored in memory. These methods can also be embodied as computer-usable instructions stored on a computer storage medium. These methods can be provided by standalone applications, services, or managed services (standalone or in combination with another managed service) or plug-ins of another product, to name a few. Furthermore, method 600 is, for example, combined with… Figure 1 , Figure 2 and / or Figure 3 The system described herein. However, this method may also be performed by any system or combination of systems, including but not limited to the system described herein.
[0068] Figure 6 This is a flowchart illustrating a method 600 for selecting parameter values and transmitting data using parameter values according to some implementations of this disclosure. In block 602, method 600 includes: determining at least a plurality of first telemetry values (e.g., a plurality of first telemetry values 106) from a first processing unit and determining a plurality of second telemetry values (e.g., a plurality of second telemetry values 108) from a second processing unit, wherein the plurality of first telemetry values and the plurality of second telemetry values indicate the workload of a computing device.
[0069] In block 604, method 600 includes: determining multiple execution times and multiple performance values (e.g., model output 116) for multiple parameter values of a communication interface coupled to the first processing unit and the second processing unit by a neural network (e.g., interface parameter value model 114). The multiple parameter values may indicate the bandwidth of the communication interface, the multiple execution times may indicate the data transmission rate of the communication interface, and the multiple performance values may indicate the performance of the communication interface.
[0070] In block 606, a parameter value is selected from the parameter values. The parameter value can be selected based on multiple execution times and multiple performance values. In some implementations, interface parameter value selector 118 can select the parameter value.
[0071] In block 608, the communication interface can be operated according to parameter values. In some implementations, the interface parameter value selector 118 can set the communication interface to the parameter value.
[0072] Example computing device
[0073] Figure 7 The following is a block diagram of an example computing device 700 suitable for implementing some embodiments of the present disclosure. The computing device 700 may include an interconnect system 702 directly or indirectly coupled to the following devices: 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., displays), and one or more logic units 720. In at least one embodiment, the computing device 700 may include one or more virtual machines (VMs), and / or any component thereof may include virtual components (e.g., virtual hardware components). For a non-limiting example, one or more GPUs 708 may include one or more vGPUs, one or more CPUs 706 may include one or more vCPUs, and / or one or more logic units 720 may include one or more virtual logic units. Therefore, computing device 700 may include discrete components (e.g., a complete GPU dedicated to computing device 700), virtual components (e.g., a portion of the GPU dedicated to computing device 700), or a combination thereof.
[0074] although Figure 7 The various blocks are shown connected via an interconnect system 702 with wiring, but this is not intended to be limiting and is merely for clarity. For example, in some embodiments, a presentation component 718, such as a display device, can be considered an I / O component 714 (e.g., if the display is a touchscreen). As another example, the CPU 706 and / or GPU 708 may include memory (e.g., memory 704 can represent a storage device other than the memory of the GPU 708, CPU 706, and / or other components). In other words, Figure 7The computing devices mentioned are merely illustrative. 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 of these are considered within the same category. Figure 7 Within the scope of computing devices.
[0075] Interconnect system 702 may represent one or more links or buses, such as address buses, data buses, control buses, or combinations thereof. Interconnect system 702 may include one or more link or bus types, such as Industry Standard Architecture (ISA) bus, Extended Industry Standard Architecture (EISA) bus, Video Electronics Standards Association (VESA) bus, Peripheral Component Interconnect (PCI) bus, Peripheral Component Interconnect Fast (PCIe) bus, and / or another type of bus or link. In some embodiments, there is a direct connection between components. As an example, CPU 706 may be directly connected to memory 704. Furthermore, CPU 706 may be directly connected to GPU 708. In cases where there is a direct or point-to-point connection between components, interconnect system 702 may include a PCIe link to perform the connection. In these examples, computing device 700 does not need to include a PCI bus. A plurality of first telemetry values 106 may originate from a first side of the PCIe coupled to GPU 708, and a plurality of second telemetry values 108 may originate from a second side of the PCIe coupled to CPU 706.
[0076] The memory 704 may include any of a wide variety of computer-readable media. Computer-readable media can be any available medium that can be accessed by the computing device 700. Computer-readable media may include volatile and non-volatile media, as well as removable and non-removable media. For example and without limitation, computer-readable media may include computer storage media and communication media.
[0077] Computer storage media may include volatile and non-volatile media and / or removable and non-removable media, implemented in any way or by any method or technique for storing information such as computer-readable instructions, data structures, program modules, and / or other data types. For example, memory 704 may store computer-readable instructions (e.g., representing programs and / or program elements, such as an operating system). Computer storage media may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other storage technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage devices, magnetic tape cassettes, magnetic tape, disk storage devices or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by computing device 700. As used herein, computer storage media does not include the signal itself.
[0078] Computer storage media may contain computer-readable instructions, data structures, program modules, and / or other data types in modulated data signals such as carrier waves or other transmission mechanisms, and include any information transport medium. The term "modulated data signal" can refer to a signal whose characteristics are set or altered in a manner that encodes information into that signal. For example and without limitation, computer storage media may include wired media such as wired networks or direct wired connections, and wireless media such as sound, RF, infrared, and other wireless media. Any combination of the above should also be included within the scope of computer-readable media.
[0079] CPU 706 may be configured to execute at least some of computer-readable instructions to control one or more components of computing device 700 to perform one or more of the methods and / or processes described herein. Each of CPU 706 may include one or more cores (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) capable of processing a large number of software threads simultaneously. CPU 706 may include any type of processor and may include 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). For example, depending on the type of computing device 700, the processor may be an advanced RISC mechanism (ARM) processor implemented using Reduced Instruction Set Computing (RISC) or an x86 processor implemented using Complex Instruction Set Computing (CISC). In addition to one or more microprocessors or supplementary coprocessors such as math coprocessors, computing device 700 may also include one or more CPUs 706.
[0080] In addition to or replacing CPU 706, GPU 708 may also be configured to execute at least some computer-readable instructions to control one or more components of computing device 700 to perform one or more of the methods and / or processes described herein. One or more GPUs 708 may be integrated GPUs (e.g., having one or more CPUs 706) and / or one or more GPUs 708 may be discrete GPUs. In embodiments, one or more GPUs 708 may be coprocessors of one or more CPUs 706. Computing device 700 may use GPU 708 to render graphics (e.g., 3D graphics) or perform general-purpose computing. For example, GPU 708 may be used for general-purpose computing on a GPU (GPGPU). GPU 708 may include hundreds or thousands of cores capable of processing hundreds or thousands of software threads simultaneously. GPU 708 may generate pixel data for outputting an image in response to rendering commands (e.g., rendering commands received via a host interface from CPU 706). GPU 708 may include graphics memory, such as display memory, for storing pixel data or any other suitable data (e.g., GPGPU data). Display memory may be included as part of memory 704. GPU 708 may include two or more GPUs operating in parallel (e.g., via links). The links may connect the GPUs directly (e.g., using NVLINK) or via a switch (e.g., using NVSwitch). When combined, each GPU 708 may generate different portions of pixel data or GPGPU data for different outputs (e.g., the first GPU for a first image, the second GPU for a second image). Each GPU may include its own memory or may share memory with other GPUs.
[0081] In addition to or replacing CPU 706 and / or GPU 708, logic unit 720 may be configured to execute at least some computer-readable instructions to control one or more components of computing device 700 to perform one or more methods and / or processes described herein. In embodiments, CPU 706, GPU 708, and / or logic unit 720 may execute any combination of methods, processes, and / or portions thereof discretely or jointly. One or more logic units 720 may be part of and / or integrated into one or more CPUs 706 and / or one or more GPUs 708, and / or one or more logic units 720 may be discrete components of CPU 706 and / or GPU 708 or otherwise external thereto. In embodiments, one or more logic units 720 may be processors of one or more CPUs 706 and / or one or more GPUs 708.
[0082] Examples of logic unit 720 include one or more processing cores and / or components thereof, such as data processing unit (DPU), tensor core (TC), tensor processing unit (TPU), pixel vision core (PVC), vision processing unit (VPU), graphics processing cluster (GPC), texture processing cluster (TPC), streaming multiprocessor (SM), tree traversal unit (TTU), artificial intelligence accelerator (AIA), deep learning accelerator (DLA), arithmetic logic unit (ALU)), application-specific integrated circuit (ASIC), floating-point unit (FPU), input / output (I / O) element, peripheral component interconnect (PCI) or peripheral component interconnect fast (PCIe) element, etc.
[0083] The communication interface 710 may include one or more receivers, transmitters, and / or transceivers that enable the computing device 700 to communicate with other computing devices via electronic communication networks, including wired and / or wireless communications. The communication interface 710 may include components and functions that enable communication via any of several different networks, such as wireless networks (e.g., Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g., communication via Ethernet or InfiniBand), low-power wide area networks (e.g., LoRaWAN, SigFox, etc.), and / or the Internet. In one or more embodiments, the logic unit 720 and / or the communication interface 710 may include one or more data processing units (DPUs) to directly transmit data received via a network and / or via interconnect system 702 to one or more GPUs 708 (e.g., memory of one or more GPUs 708). System 100, system 200, and / or system 300 may be coupled to at least one of the communication interface 710, GPU 708, or CPU 706.
[0084] I / O port 712 enables computing device 700 to be logically coupled to other devices, including I / O component 714, presentation component 718, and / or other components, some of which may be built into (e.g., integrated into) computing device 700. Illustrative I / O component 714 includes microphones, mice, keyboards, joysticks, game pads, game controllers, satellite dish antennas, browsers, printers, wireless devices, and so on. I / O component 714 provides a Natural User Interface (NUI) for processing user-generated air gestures, voice, or other physiological input. In some cases, input information may be transmitted to appropriate network elements for further processing. NUI enables any combination of voice recognition, stylus recognition, facial recognition, biometric recognition, in-screen and side-screen gesture recognition, air gestures, head and eye tracking, and touch recognition (see below) associated with the display of computing device 700. Computing device 700 may include depth cameras such as stereo camera systems, infrared camera systems, RGB camera systems, touchscreen technology, and combinations thereof for gesture detection and recognition. In addition, the computing device 700 may include an accelerometer or gyroscope that enables motion detection (e.g., as part of an inertial measurement unit (IMU)). In some examples, the output of the accelerometer or gyroscope may be used by the computing device 700 to render immersive augmented reality or virtual reality.
[0085] Power supply 716 may include a hard-wired power supply, battery power supply, or a combination thereof. Power supply 716 can supply power to computing device 700 to enable the components of computing device 700 to operate. In battery mode (e.g., DC mode), power manager 110 can allocate power value 304 to power supply 716.
[0086] The presentation component 718 may include a display (such as a monitor, touch screen, television screen, head-up display (HUD), other display types, or combinations thereof), speakers, and / or other presentation components. The presentation component 718 may receive data from other components (such as GPU 708, CPU 706, DPU, etc.) and output that data (e.g., as images, videos, sounds, etc.).
[0087] Example Data Center
[0088] Figure 8 An example data center 800 is shown, which can be used in at least one embodiment of this disclosure. The data center 800 may include a data center infrastructure layer 810, a framework layer 820, a software layer 830, and an application layer 840.
[0089] like Figure 8As shown, the data center infrastructure layer 810 may include a resource coordinator 812, packet computing resources 814, and node computing resources (“nodes CR”) 816(1)-816(N), where “N” represents any complete positive integer. In at least one embodiment, nodes CR 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 read-only memory), storage devices (e.g., solid-state drives or disk drives), network input / output (“NW I / O”) devices, network switches, virtual machines (VMs), power modules and cooling modules, etc. In some embodiments, one or more nodes CR 816(1)-816(N) may correspond to servers having one or more of the aforementioned computing resources. In addition, in some implementations, nodes CR816(1)-816(N) may include one or more virtual components, such as vGPU, vCPU, etc., and / or one or more of nodes CR816(1)-816(N) may correspond to virtual machines (VMs).
[0090] In at least one embodiment, the grouped computing resource 814 may include individual groups (not shown) of nodes CR816 housed in one or more racks, or a plurality of racks (also not shown) housed in data centers in various geographic locations. Individual groups of nodes CR816 within the grouped computing resource 814 may include computing, networking, memory, or storage resources that can be configured or allocated to support groups of one or more workloads. In at least one embodiment, several nodes CR816, including CPUs, GPUs, DPUs, and / or other processors, may be grouped within one or more racks to provide computing resources to support one or more workloads. One or more racks may also include any number of power modules, cooling modules, and / or network switches in any combination.
[0091] Resource coordinator 812 may be configured or otherwise control one or more nodes CR816(1)-816(N) and / or grouped computing resources 814. In at least one embodiment, resource coordinator 812 may include a Software Design Infrastructure (“SDI”) management entity for data center 800. Resource coordinator 812 may include hardware, software, or some combination thereof.
[0092] In at least one implementation, such as Figure 8As shown, framework layer 820 may include a job scheduler 828, a configuration manager 834, a resource manager 836, and a distributed file system 838. Framework layer 820 may include a framework of software 832 supporting software layer 830 and / or one or more applications 842 supporting application layer 840. Software 832 or application 842 may respectively include web-based service software or applications, such as service software or applications provided by Amazon Web Services, Google Cloud, and Microsoft Azure. Framework layer 820 may be, but is not limited to, a free and open-source software web application framework, such as Apache Spark, which can utilize distributed file system 838 for large-scale data processing (e.g., "big data"). TM (Hereinafter referred to as "Spark"). In at least one embodiment, job scheduler 828 may include Spark drivers for facilitating the scheduling of workloads supported by various layers of data center 800. In at least one embodiment, configuration manager 834 may be able to configure different layers, such as software layer 830 and framework layer 820 including Spark and distributed file system 738 for supporting large-scale data processing. Resource manager 836 is able to manage cluster or group computing resources mapped to or allocated to support distributed file system 838 and job scheduler 828. In at least one embodiment, cluster or group computing resources may include group computing resources 814 at data center infrastructure layer 810. Resource manager 836 may coordinate with resource coordinator 812 to manage these mapped or allocated computing resources.
[0093] In at least one embodiment, the software 832 included in the software layer 830 may include software used by at least a portion of nodes CR816(1)-816(N), grouped computing resources 814, and / or the distributed file system 838 of the framework layer 820. One or more types of software may include, but are not limited to, Internet web page search software, email virus browsing software, database software, and streaming video content software.
[0094] In at least one embodiment, one or more applications 842 included in application layer 840 may include one or more types of applications used by at least a portion of nodes CR816(1)-816(N), grouped computing 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 genomics applications, cognitive computing 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 embodiments.
[0095] In at least one implementation, any of the configuration manager 834, resource manager 836, and resource coordinator 812 can perform any number and type of self-modification actions based on any amount and type of data acquired in any technically feasible manner. Self-modification actions can alleviate the risk of data center operators of data center 800 making potentially poor configuration decisions and can prevent underutilization and / or skewed portions of the data center.
[0096] Data center 800 may include tools, services, software, or other resources for training one or more machine learning models or using one or more machine learning models to predict or infer information according to one or more embodiments described herein. For example, a machine learning model can be trained by calculating weight parameters based on a neural network architecture using the software and computing resources described above with respect to data center 800. In at least one embodiment, by using weight parameters calculated through one or more training techniques, information can be inferred or predicted using trained machine learning models corresponding to one or more neural networks, such as, but not limited to, those described herein, using the resources described above with respect to data center 800. Data center 800 may train interface parameter value model 114.
[0097] In at least one implementation, the data center 800 may use CPUs, application-specific integrated circuits (ASICs), GPUs, FPGAs, and / or other hardware (or corresponding virtual computing resources) to perform training and / or inference. Furthermore, one or more of the aforementioned software and / or hardware resources may be configured as a service to allow a user to train or perform information inference, such as image recognition, speech recognition, or other artificial intelligence services.
[0098] Example network environment
[0099] A network environment suitable for implementing embodiments of this disclosure may include one or more client devices, servers, network-attached storage (NAS), other backend devices, and / or other device types. Client devices, servers, and / or other device types (e.g., each device) may... Figure 7 The implementation is carried out on one or more instances of computing device 700—for example, each device may include similar components, features, and / or functions of computing device 700. Furthermore, in the case of implementing back-end devices (e.g., servers, NAS, etc.), the back-end devices may be included as part of data center 800, examples of which are described herein. Figure 8 To describe in more detail.
[0100] Components of a network environment can communicate with each other via a network, which can be wired, wireless, or both. A network can include multiple networks, or networks within multiple networks. For example, a network can include 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 the Public Switched Telephone Network (PSTN)), and / or one or more private networks. In cases where the network includes a wireless telecommunications network, components such as base stations, communication towers, or even access points (and other components) can provide wireless connectivity.
[0101] A compatible network environment may include one or more peer-to-peer network environments (in which case the server may not be included in the network environment) and one or more client-server network environments (in which case one or more servers may be included in the network environment). In a peer-to-peer network environment, the server functionality described herein can be implemented on any number of client devices.
[0102] In at least one implementation, the network environment may include one or more cloud-based network environments, distributed computing environments, combinations thereof, etc. A cloud-based network environment may 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. The framework layer may include a framework for supporting software at the software layer and / or one or more applications at the application layer. The software or applications may respectively include network-based service software or applications. In an implementation, one or more client devices may use the network-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 may be, but is not limited to, a type of free and open-source software network application framework, such as one that can use a distributed file system for large-scale data processing (e.g., "big data").
[0103] A cloud-based network environment can provide cloud computing and / or cloud storage for any combination of the computing and / or data storage functions (or one or more portions thereof) described herein. Any of these various functions can be distributed across multiple locations from a central or core server (e.g., distributed across one or more data centers at the state, region, country, global, etc.). If the connection to a user (e.g., a client device) is relatively close to an edge server, the core server can assign at least a portion of the functionality to the edge server. A cloud-based network environment can be private (e.g., limited to a single organization), public (e.g., available to many organizations), and / or a combination thereof (e.g., a hybrid cloud environment).
[0104] Client devices may include those described in this article. Figure 7 The example computing device 700 described includes at least some components, features, and functions. By way of example and not limitation, the client device can be a personal computer (PC), laptop computer, mobile device, smartphone, tablet computer, smartwatch, wearable computer, personal digital assistant (PDA), MP3 player, virtual reality headset, global positioning system (GPS) or device, video player, camera, surveillance equipment or system, vehicle, ship, aircraft, virtual machine, drone, robot, handheld communication device, hospital equipment, gaming equipment or system, entertainment system, in-vehicle computer system, embedded system controller, remote control, electrical appliance, consumer electronics device, workstation, edge device, any combination of these described devices, or any other suitable device.
[0105] This disclosure can be described in the general context of machine-usable instructions or computer code, including computer-executable instructions such as program modules, which are executed by a computer or other machine such as a personal digital assistant or other handheld device. Typically, a program module, including routines, programs, objects, components, data structures, etc., refers to code that performs a specific task or implements a specific abstract data type. This disclosure can be practiced in a wide variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, more specialized computing devices, etc. This disclosure can also be practiced in distributed computing environments where tasks are performed by remote processing devices linked via a communication network.
[0106] As used herein, the phrase "and / or" relating 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" could 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" could 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. Further, "at least one of element A and element B" could 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.
[0107] The subject matter of this disclosure is described in detail herein to satisfy legal requirements. However, the description itself is not intended to limit the scope of this disclosure. Rather, the inventors have envisioned that the claimed subject matter may also be embodied in other ways to include steps different from or similar combinations of steps described herein in conjunction with other current or future techniques. Moreover, although the terms “step” and / or “block” may be used herein to imply different elements of the method employed, these terms should not be construed as implying any particular order among or between the steps disclosed herein, unless the order of the steps is explicitly described.
Claims
1. A system comprising one or more processors, said one or more processors being used to: Multiple first telemetry values are determined from the graphics processing unit (GPU) and multiple second telemetry values are determined from the central processing unit (CPU), the multiple first telemetry values and the multiple second telemetry values indicating the workload of the computing device; Based at least on the plurality of first telemetry values and the plurality of second telemetry values, the power consumption value of the high-speed interface is determined by using a neural network to select the speed of the high-speed interface coupled to the GPU and the CPU; and Data is transmitted using the speed provided by the high-speed interface.
2. The system according to claim 1, wherein the one or more processors are configured to: Receive the mode of the computing device; Determine a power value, the power value indicating the difference in power consumption before and after transmitting data at the speed used on the high-speed interface; and The power value is allocated to one or more components of the computing device based on the pattern.
3. The system according to claim 2, wherein, The modes include a battery mode or a core mode. The battery mode allocates the power value to the battery to extend the life of the computing device, while the core mode allocates the power value to the core to improve the performance of the computing device.
4. The system according to claim 1, wherein, To determine the speed, the one or more processors are used to: The neural network determines multiple execution times and multiple performance values for multiple speeds of the high-speed interface, wherein the multiple execution times indicate the data transmission rate of the high-speed interface, and the multiple performance values indicate the performance of the high-speed interface; as well as The neural network selects the speed from the plurality of speeds based on the plurality of execution times and the plurality of performance values.
5. The system according to claim 1, wherein, The high-speed interface includes PCIe for rapid interconnection of peripheral components.
6. The system according to claim 1, wherein, Prior to execution on the computing device, the neural network is updated based on a training dataset to select the speed, the training dataset including multiple training telemetry values corresponding to multiple training execution times and multiple training performance values.
7. The system according to claim 1, wherein, The plurality of first telemetry values and the plurality of second telemetry values include the operating frequency, utilization, analog measurement, performance monitoring counter, activity status, current operating status, and current low-power mode status of at least one of the GPU, the CPU, or the high-speed interface.
8. The system according to claim 1, wherein, The one or more processors are included in at least one of the following: Control systems for autonomous or semi-autonomous machines; Sensing systems for autonomous or semi-autonomous machines; Systems implemented using robots; Airborne systems; Healthcare system; Shipboard systems; Intelligent area monitoring system; A system used to perform deep learning operations; A system used to perform simulation operations; A system for generating or presenting virtual reality (VR) content, augmented reality (AR) content, or mixed reality (MR) content; Systems used to perform digital twin operations; Systems implemented using edge devices; 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; Systems used to perform generative AI operations; A system for implementing a language model; A system that implements a visual language model (VLM); A system for implementing large-scale language modeling (LLM); A system for implementing a small language model (SLM); A system for implementing a multimodal language model; A system used to host one or more real-time streaming applications; A system for performing optical transmission simulation; A system for performing collaborative content creation for 3D assets; or A system that utilizes cloud computing resources at least in part.
9. A system comprising one or more processors, said one or more processors being used to: A plurality of first telemetry values are determined from a first processing unit and a plurality of second telemetry values are determined from a second processing unit, wherein the plurality of first telemetry values and the plurality of second telemetry values indicate the workload of the computing device; Using a neural network, at least based on the plurality of first telemetry values and the plurality of second telemetry values, parameter values of a communication interface coupled to the first processing unit and the second processing unit are determined, the parameter values indicating the bandwidth of the communication interface; as well as Configure the communication interface using the parameter values.
10. The system according to claim 9, wherein, The parameter is at least one of the following: link bandwidth capacity scaling, power state entry threshold, operating frequency, power mode, power limit, latency tolerance, or credit throttling of the communication interface.
11. The system according to claim 9, wherein, The plurality of first telemetry values and the plurality of second telemetry values include the operating frequency, utilization rate, analog measurement value, performance monitoring counter, activity status, current operating status, and current low power mode status of at least one of the first processing unit, the second processing unit, or the communication interface.
12. The system of claim 9, wherein the one or more processors are configured to: Receive the mode of the computing device; Determine a power value, which indicates the difference in bandwidth before and after transmitting data using the parameter value on the communication interface; and The power value is allocated to one or more components of the computing device based on the pattern.
13. The system according to claim 12, wherein, The modes include a battery mode or a core mode. The battery mode allocates the power value to the battery to extend the life of the computing device, while the core mode allocates the power value to the core to improve the performance of the computing device.
14. The system according to claim 9, wherein, To determine the parameter value, the one or more processors are used to: The neural network determines multiple execution times and multiple performance values for multiple parameter values of the communication interface, wherein the multiple execution times indicate the data transmission rate of the communication interface, and the multiple performance values indicate the performance of the communication interface; as well as The neural network selects the parameter value from the plurality of parameter values based on the plurality of execution times and the plurality of performance values.
15. The system according to claim 9, wherein, The first processing unit is a graphics processing unit (GPU), and the second processing unit is a central processing unit (CPU).
16. The system according to claim 9, wherein, Before execution on the computing device, the neural network is updated according to a training dataset to select the parameter values, the training dataset including multiple training telemetry values corresponding to multiple training execution times and multiple training performance values.
17. The system according to claim 9, wherein, The neural network executes on a hardware coprocessor.
18. The system according to claim 9, wherein, The communication interface includes a high-speed communication interface.
19. A method comprising: A plurality of first telemetry values are determined from a first processing unit and a plurality of second telemetry values are determined from a second processing unit, wherein the plurality of first telemetry values and the plurality of second telemetry values indicate the workload of the computing device; The neural network determines multiple execution times and multiple performance values for multiple parameter values of a communication interface coupled to the first processing unit and the second processing unit, wherein the multiple parameter values indicate the bandwidth of the communication interface, the multiple execution times indicate the data transmission rate of the communication interface, and the multiple performance values indicate the performance of the communication interface; Based on the plurality of execution times and the plurality of performance values, select a parameter value from the plurality of parameter values; as well as Operate the communication interface with the parameter values.
20. The method according to claim 19, wherein, Before execution on the computing device, the neural network is updated according to a training dataset to select the parameter values, the training dataset including multiple training telemetry values corresponding to multiple training execution times and multiple training performance values.