Methods, devices, and systems for transmitting data over a computer communications network are disclosed. A queue of communications commands can be pre-generated using a central processing unit (CPU) and stored in a device memory of a network interface controller (NIC). Thereafter, if a graphics processing unit (GPU) has data to communicate to a remote GPU, it can store the data in a send buffer, where the location in the buffer is pointed to by a pre-generated command. The GPU can then signal to the interface device that the data is ready, triggering execution of the pre-generated command to send the data.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for transmitting data, the method comprising: receiving, by an interface device, a pre-generated network remote communications command from a central processing unit, wherein the pre-generated network remote communications command includes a threshold value that indicates a number of triggers to wait for before sending a message specified by a pending put command; receiving, by the interface device, a signal from a graphics processing unit indicating that data is ready in a memory, wherein the signal comprises a trigger; determining that, after receiving the trigger from the graphics processing unit, a number of triggers experienced by the interface device matches the threshold value stored in the pre-generated network remote communications command; and in response to the determining, executing, by the interface device, the pre-generated network command based on the signal, to transmit the data to a remote target device over a network.
2. The method of claim 1 , wherein the pre-generated network remote communications command comprises a put command.
3. The method of claim 1 , wherein the signal indicates a change in a value of a counter variable.
4. The method of claim 1 , wherein the pre-generated network remote communications command comprises a counter variable threshold.
5. The method of claim 1 , wherein the pre-generated network remote communications command comprises a pointer to an address in the memory.
6. The method of claim 1 , wherein the pre-generated network remote communications command comprises information indicating the remote target device.
7. The method of claim 6 , wherein the information comprises metadata.
8. The method of claim 1 , wherein the interface device comprises a network interface controller (NIC).
9. A device for transmitting data, the device comprising: receiver circuitry configured to receive a pre-generated network remote communications command from a central processing unit, wherein the pre-generated network remote communications command includes a threshold value that indicates a number of triggers to wait for before sending a message specified by a pending put command; the receiver circuitry further configured to receive a signal from a graphics processing unit indicating that data is ready in a memory, wherein the signal comprises a trigger; processor circuitry configured to determine that, after receiving the trigger from the graphics processing unit, a number of triggers experienced by the interface device matches the threshold value stored in the pre-generated network remote communications command, and in response to the determining, execute the pre-generated network command based on the signal; and transmitter circuitry configured to transmit the data to a remote target device over a network based on the pre-generated network command.
10. The device of claim 9 , wherein the pre-generated network remote communications command comprises a put command.
11. The device of claim 9 , wherein the signal indicates a change in a value of a counter variable.
12. The device of claim 9 , wherein the pre-generated network remote communications command comprises a counter variable threshold.
13. The device of claim 9 , wherein the pre-generated network remote communications command comprises a pointer to an address in the memory.
14. The device of claim 9 , wherein the pre-generated network remote communications command comprises information indicating the target device.
15. The device of claim 14 , wherein the information comprises metadata.
16. The device of claim 9 , wherein the device comprises a network interface controller (NIC).
17. A system for transmitting data, the system comprising: a central processing unit (CPU); and a graphics processing unit (GPU); the CPU comprising processing circuitry configured to generate a plurality of pre-generated network remote communications commands, and transmitter circuitry configured to transmit the pre-generated network remote communications commands to an interface device, wherein the pre-generated network remote communications commands include threshold values that indicates a number of triggers to wait for before sending a message specified by a pending put command; the GPU comprising processing circuitry configured to generate data for transmission to a remote target device over a network, storage circuitry configured to store the data in a buffer, and transmitter circuitry configured to signal to the interface device that the data is stored in the buffer such that the interface device executes one of the plurality of pre-generated network remote communications commands.
18. The system of claim 17 , wherein the CPU and the GPU are disposed on a single die.
19. The system of claim 17 , wherein the CPU and the GPU are disposed within the same package.
20. The system of claim 17 , wherein the interface device comprises a network interface controller (NIC).
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 18, 2016
March 2, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.