US-12625541-B2 - Smart network interface cards (sNICs) offload for improved sustainability
Abstract
Devices, networks, systems, methods, and processes for offloading services for sustainability improvements are described herein. A device may receive one or more service requests corresponding to one or more services. The device may determine one or more energy profiles for one or more processing units based on a plurality of power consumption metrics of the one or more processing units. The device may assign execution of the one or more service requests to the one or more processing units based on corresponding energy profiles of the one or more processing units. Thus, the device may facilitate selective offloading and execution of services among different processing units. The device can optimize the offloading and execution of the services such that the services are executed with least power consumption, thereby improving sustainability of the device.
Inventors
- Carlos Pignataro
- Nagendra Kumar Nainar
Assignees
- CISCO TECHNOLOGY, INC.
Dates
- Publication Date
- 20260512
- Application Date
- 20231213
Claims (20)
- 1 . A device, comprising: a processor; a memory communicatively coupled to the processor; and a sustainable offloading logic, configured to: determine a plurality of energy profiles corresponding to a plurality of processing units; receive one or more service requests; assign one or more processing units from the plurality of processing units to the one or more service requests based on the plurality of energy profiles; determine one or more state entries for the one or more processing units; and generate an allocation signal indicative of the one or more state entries, wherein the allocation signal comprises a header field of a data-plane packet, the header field being modified by each processing unit to indicate whether the corresponding service request has been executed or skipped.
- 2 . The device of claim 1 , wherein the sustainable offloading logic is further configured to: receive a plurality of power consumption metrics from the plurality of processing units in real-time; and generate the plurality of energy profiles corresponding to the plurality of processing units based on the plurality of power consumption metrics.
- 3 . The device of claim 1 , wherein the plurality of energy profiles are indicative of power consumption of the plurality of processing units per service request.
- 4 . The device of claim 1 , wherein the one or more state entries are indicative of a number of service requests to skip and a number or service requests to execute.
- 5 . The device of claim 1 , wherein the sustainable offloading logic is further configured to transmit the allocation signal to the one or more processing units through a data plane.
- 6 . The device of claim 5 , wherein the one or more processing units execute the one or more service requests based on the one or more state entries indicated by the allocation signal.
- 7 . The device of claim 1 , wherein the sustainable offloading logic is further configured to: transmit the plurality of energy profiles corresponding to the plurality of processing units to a central controller; and receive the one or more state entries for the one or more processing units from the central controller.
- 8 . The device of claim 1 , wherein the sustainable offloading logic is further configured to: determine a target sustainability metric; and determine an energy budget for each processing unit of the plurality of processing units based on the target sustainability metric.
- 9 . The device of claim 8 , wherein the sustainable offloading logic is further configured to monitor a power consumption of a processing unit in real-time.
- 10 . The device of claim 9 , wherein the sustainable offloading logic is further configured to dynamically modify the energy budget for the processing unit based on the power consumption of the processing unit.
- 11 . The device of claim 10 , wherein the sustainable offloading logic is further configured to dynamically modify a state entry of the one or more state entries for the processing unit based on the energy budget.
- 12 . The device of claim 1 , wherein the sustainable offloading logic is further configured to execute a service request of the one or more service requests.
- 13 . The device of claim 12 , wherein the sustainable offloading logic is further configured to: modify a header of a data packet indicative of the service request; and generate a modified data packet including the header, wherein the modified data packet is indicative of execution of the service request.
- 14 . The device of claim 13 , wherein the sustainable offloading logic is further configured to: generate a modified allocation signal comprising the modified data packet; and transmit the modified allocation signal to the one or more processing units.
- 15 . A device, comprising: a processor; a memory communicatively coupled to the processor; and a sustainable offloading logic, configured to: receive a plurality of power consumption metrics from a plurality of network devices; determine a plurality of energy profiles corresponding to the plurality of network devices based on the plurality of power consumption metrics; receive one or more service requests; assign one or more network devices from the plurality of network devices to the one or more service requests based on the plurality of energy profiles; generate an allocation signal indicative of assignment of the one or more network devices, wherein the allocation signal comprises a header field of a data-plane packet, the header field being modified by each processing unit to indicate whether the corresponding service request has been executed or skipped; and transmit the allocation signal to the one or more network devices.
- 16 . The device of claim 15 , wherein a first network device of the one or more network devices executes a first service request of the one or more service requests based on the allocation signal.
- 17 . The device of claim 16 , wherein the first network device modifies the allocation signal to generate a modified allocation signal indicative of execution of the first service request, and forwards the modified allocation signal to a second network device of the one or more network devices.
- 18 . The device of claim 17 , wherein the second network device executes a second service request of the one or more service requests based on the modified allocation signal.
- 19 . A method comprising: determining a plurality of energy profiles corresponding to a plurality of processing units; receiving one or more service requests; assigning one or more processing units from the plurality of processing units to the one or more service requests based on the plurality of energy profiles; determining one or more state entries for the one or more processing units; generating an allocation signal indicative of the one or more state entries, wherein the allocation signal comprises a header field of a data-plane packet, the header field being modified by each processing unit to indicate whether the corresponding service request has been executed or skipped; and transmitting the allocation signal to the one or more processing units.
- 20 . The method of claim 19 , further comprising: determining a target sustainability metric; determining an energy budget for each processing unit of the plurality of processing units based on the target sustainability metric; and dynamically modifying a state entry of the one or more state entries associated with a processing unit of the one or more processing units based on corresponding energy budget.
Description
The present disclosure relates to digital networks. More particularly, the present disclosure relates to offloading services to processing units or devices in a digital network. BACKGROUND In modern digital networks, Smart Network Interface Cards (sNICs) comprising Application Specific Integrated Circuits (ASICs) and Field Programmable Gate Arrays (FPGAs) can function as accelerators within devices in the digital networks. These sNICs can optimize the digital networks wherein services and complex functions, for example, cloud native services can be offloaded to the sNICs for execution. The sNICs also support hypervisor functionality, allowing them to create and manage virtual machines (VMs) and execute microservices. Some digital networks also allow Router-on-NIC by offloading routing or switching functions to the sNICs. Offloading routing or switching functions to the sNICs not only simplifies architectures of the digital networks but also optimizes routing and switching performances, thereby resulting in more efficient data traffic management. The sNICs provide network operators with various options for executing the services and functions. For instance, cloud native services and functions such as packet forwarding can be executed in a control place, can be forwarded to a forwarding plane, can be executed in Data Processing Units (DPUs) or Network Processing Units (NPUs) integrated into line cards, or can be executed by the sNICs in the line cards. By offloading the services to the sNICs, the network operators can improve performance of the digital networks by reducing response times, thereby creating more responsive and efficient digital networks. However, a decision of offloading or executing the services and the functions has significantly different effects on performance and energy efficiencies of the digital networks. The choice of processing units, devices, or accelerators can impact the efficiency of execution of the services in the digital networks as well as the energy consumption of the digital networks. Further, different services and functions may execute in highly varied and non-linear ways when offloaded to different processing units, devices, or accelerators. This makes it essential to consider unique characteristics of each service and function before executing or offloading on the different processing units, devices, or accelerators. Therefore, there is a need to selectively execute or offload the services and functions on the different processing units, devices, or accelerators in the devices in the digital networks such that the performance and energy efficiencies of the digital networks are balanced and optimized. SUMMARY OF THE DISCLOSURE Systems and methods for offloading services to processing units or devices in a digital network in accordance with embodiments of the disclosure are described herein. In some embodiments, a device includes a processor, a memory communicatively coupled to the processor, and a sustainable offloading logic. The logic is configured to determine a plurality of energy profiles corresponding to a plurality of processing units, receive one or more service requests, assign one or more processing units from the plurality of processing units to the one or more service requests based on the plurality of energy profiles, determine one or more state entries for the one or more processing units, and generate an allocation signal indicative of the one or more state entries. In some embodiments, the sustainable offloading logic is further configured to receive a plurality of power consumption metrics from the plurality of processing units in real-time, and generate the plurality of energy profiles corresponding to the plurality of processing units based on the plurality of power consumption metrics. In some embodiments, the plurality of energy profiles are indicative of power consumption of the plurality of processing units per service request. In some embodiments, the one or more state entries are indicative of a number of service requests to skip and a number or service requests to execute. In some embodiments, the sustainable offloading logic is further configured to transmit the allocation signal to the one or more processing units through a data plane. In some embodiments, the one or more processing units execute the one or more service requests based on the one or more state entries indicated by the allocation signal. In some embodiments, the sustainable offloading logic is further configured to transmit the plurality of energy profiles corresponding to the plurality of processing units to a central controller, and receive the one or more state entries for the one or more processing units from the central controller. In some embodiments, the sustainable offloading logic is further configured to determine a target sustainability metric, and determine an energy budget for each processing unit of the plurality of processing units based on the target sustainability