Technologies for dynamic accelerator selection
Technologies for dynamic accelerator selection include a compute sled. The compute sled includes a network interface controller to communicate with a remote accelerator of an accelerator sled over a network, where the network interface controller includes a local accelerator and a compute engine. The compute engine is to obtain network telemetry data indicative of a level of bandwidth saturation of the network. The compute engine is also to determine whether to accelerate a function managed by the compute sled. The compute engine is further to determine, in response to a determination to accelerate the function, whether to offload the function to the remote accelerator of the accelerator sled based on the telemetry data. Also the compute engine is to assign, in response a determination not to offload the function to the remote accelerator, the function to the local accelerator of the network interface controller.
1. A compute device comprising:
a compute engine;
a network interface controller to communicate with a remote accelerator over a network, wherein the network interface controller includes a local accelerator,
wherein the network interface controller is to:
receive a function to accelerate from the compute engine;
obtain network telemetry data;
determine whether to offload the function to the remote accelerator based on the network telemetry data; and
assign, in response to a determination not to offload the function to the remote accelerator, the function to the local accelerator.
2. The compute device of claim 1 , wherein the network telemetry data is indicative of a level of bandwidth saturation of (i) the network interface controller or (ii) a second network interface controller at an accelerator device that includes the remote accelerator.
3. The compute device of claim 1 , wherein the network interface controller is further to determine requirements of the function, wherein the requirements define parameters to be satisfied during execution of the function, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the requirements of the function.
4. The compute device of claim 3 , wherein to determine the requirements of the function comprises to determine whether the function requires memory coherency, and
wherein to assign the function to the local accelerator comprises to assign the function to the local accelerator in response to a determination that the function requires memory coherency.
5. The compute device of claim 1 , wherein the network interface controller is further to determine a resource usage of the compute device, wherein the resource usage is indicative of a level of usage of resources at the compute device, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the resource usage of the compute device.
6. The compute device of claim 1 , wherein the network interface controller is further to determine a resource usage at an accelerator device that includes the remote accelerator, wherein the resource usage is indicative of a level of usage of resources at the accelerator device, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the resource usage of at the accelerator device.
7. The compute device of claim 1 , wherein the network interface controller is further to determine a present power envelope of the compute device, wherein the present power envelope is indicative of an amount of power presently used by the compute device of a total power envelope available to the compute device, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the present power envelope of the compute device.
8. The compute device of claim 1 , further comprising a processor, and
wherein the network interface controller is further to determine a present power usage of the processor, and
wherein to assign the function to the local accelerator comprises to increase a power envelope of the local accelerator in response to a determination that the present power usage of the processor is less than a reference power threshold value.
9. A method for accelerating a function by a compute device of a data center, the method comprising:
obtaining, by the compute device, network telemetry data;
determining, by the compute device, whether to accelerate a function managed by the compute device;
determining, by the compute device and in response to a determination to accelerate the function, whether to accelerate the function using a local accelerator included in a network interface controller at the compute device or offload the function to a remote accelerator based on the network telemetry data; and
assigning, in response to a determination not to offload the function to the remote accelerator, the function to the local accelerator.
10. The method of claim 9 , wherein the network telemetry data is indicative of a level of bandwidth saturation of (i) the network interface controller or (ii) a second network interface controller at an accelerator device that includes the remote accelerator.
11. The method of claim 9 , further comprising determining, by the compute device, requirements of the function, wherein the requirements define parameters to be satisfied during execution of the function, and
wherein determining whether to offload the function comprises determining, by the compute device, whether to offload the function to the remote accelerator based on the network telemetry data and the requirements of the function.
12. The method of claim 9 , further comprising determining, by the compute device, a resource usage of the compute device, wherein the resource usage is indicative of a level of usage of resources at the compute device, and
wherein determining whether to offload the function comprises determining, by the compute device, whether to offload the function to the remote accelerator based on the network telemetry data and the resource usage of the compute device.
13. The method of claim 9 , further comprising determining, by the compute device, a resource usage at an accelerator device that includes the remote accelerator, wherein the resource usage is indicative of a level of usage of resources at the accelerator device, and
wherein determining whether to offload the function comprises determining, by the compute device, whether to offload the function to the remote accelerator based on the network telemetry data and the resource usage of the accelerator device.
14. The method of claim 9 , further comprising determining, by the compute device, a present power envelope of the compute device, wherein the present power envelope is indicative of an amount of power presently used by the compute device of a total power envelope available to the compute device, and
wherein determining whether to offload the function comprises determining, by the compute device, whether to offload the function to the remote accelerator based on the network telemetry data and the present power envelope of the compute device.
15. The method of claim 9 , further comprising determining a present power usage of a processor of the compute device, and
wherein assigning the function to the local accelerator comprises increasing a power envelope of the local accelerator in response to a determination that the present power usage of the processor is less than a reference power threshold value.
16. One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, when executed, causes a compute device to:
obtain network telemetry data;
determine whether to accelerate a function managed by the compute device;
determine, in response to a determination to accelerate the function, whether to accelerate the function using a local accelerator included in a network interface controller at the compute device or offload the function to a remote accelerator based on the network telemetry data; and
assign, in response to a determination not to offload the function to the remote accelerator, the function to the local accelerator.
17. The one or more non-transitory machine-readable storage media of claim 16 , wherein the network telemetry data is indicative of a level of bandwidth saturation of (i) the network interface controller or (ii) a second network interface controller at an accelerator device that includes the remote accelerator.
18. The one or more non-transitory machine-readable storage media of claim 16 , wherein the plurality of instructions, when executed, further cause the compute device to determine requirements of the function, wherein the requirements define parameters to be satisfied during execution of the function, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the requirements of the function.
19. The one or more non-transitory machine-readable storage media of claim 18 , wherein to determine the requirements of the function comprises to determine whether the function requires memory coherency, and
wherein to assign the function to the local accelerator comprises to assign the function to the local accelerator in response to a determination that the function requires memory coherency.
20. The one or more non-transitory machine-readable storage media of claim 16 , wherein the plurality of instructions, when executed, further cause the compute device to determine a resource usage of the compute device, wherein the resource usage is indicative of a level of usage of resources at the compute device, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the resource usage of the compute device.
21. The one or more non-transitory machine-readable storage media of claim 16 , wherein the plurality of instructions, when executed, further cause the compute device to determine a resource usage at an accelerator device that includes the remote accelerator, wherein the resource usage is indicative of a level of usage of resources at the accelerator device, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the resource usage of the accelerator device.
22. The one or more non-transitory machine-readable storage media of claim 16 , wherein the plurality of instructions, when executed, further cause the compute device to determine a present power envelope of the compute device, wherein the present power envelope is indicative of an amount of power presently used by the compute device of a total power envelope available to the compute device, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the present power envelope of the compute device.
23. The one or more non-transitory machine-readable storage media of claim 16 , wherein the plurality of instructions, when executed, further cause the compute device to determine a present power usage of a processor of the compute device, and
wherein to assign the function to the local accelerator comprises to increase a power envelope of the local accelerator in response to a determination that the present power usage of the processor is less than a reference power threshold value.
24. An apparatus comprising:
a network interface controller, the network interface controller to communicate with a remote accelerator over a network, the network interface controller to include a local accelerator,
wherein the network interface controller is to:
receive a function to accelerate from a processor of a compute device;
obtain network telemetry data;
determine whether to offload the function to the remote accelerator based on the network telemetry data; and
assign, in response to a determination not to offload the function to the remote accelerator, the function to the local accelerator.
25. The apparatus of claim 24 , wherein the network telemetry data is indicative of a level of bandwidth saturation of (i) the network interface controller or (ii) a second network interface controller at an accelerator device that includes the remote accelerator.
26. The apparatus of claim 24 , wherein the network interface controller is further to determine requirements of the function, wherein the requirements define parameters to be satisfied during execution of the function, and
wherein to determine whether to offload the function comprises to determine whether to offload the function to the remote accelerator based on the network telemetry data and the requirements of the function.
27. The apparatus of claim 26 , wherein to determine the requirements of the function comprises to determine whether the function requires memory coherency, and
wherein to assign the function to the local accelerator comprises to assign the function to the local accelerator in response to a determination that the function requires memory coherency.
28. The apparatus of claim 24 , wherein the local accelerator comprises a field programmable gate array (FPGA).