Cross-channel network operation offloading for collective operations
First Claim
1. A Network Interface device (NI), comprising:
- a host interface, which is configured to communicate with a host processor of a node of a network;
a network interface, which is configured to be coupled to the network; and
circuitry, which is coupled between the host interface and the network interface and is configured to;
maintain multiple work queues that correspond to transport channels between the node and one or more peer nodes on the network,receive from the host processor via the host interface one or more cross-channel work requests,execute work queue entries from the multiple work queues;
disable the execution of work queue entries in a first work queue from the multiple work queues until conditions required for execution of the work queue entries of the first work queue are met, responsive to the received one or more cross-channel work requests; and
enable the execution of work queue entries in the first work queue, responsive to identifying a completion status of one or more second work queues such that the conditions required for execution of the work queue entries of the first work queue are met,wherein the circuitry is configured to place in the first work queue, responsive to the received one or more cross-channel work requests, a sequence of entries including a wait entry, followed by a calculation entry, which when executed performs a calculation on data received in the one or more second work queues, and to disable the execution of work queue entries in the first work queue when the wait entry is executed.
3 Assignments
0 Petitions
Accused Products
Abstract
A Network Interface (NI) includes a host interface, which is configured to receive from a host processor of a node one or more cross-channel work requests that are derived from an operation to be executed by the node. The NI includes a plurality of work queues for carrying out transport channels to one or more peer nodes over a network. The NI further includes control circuitry, which is configured to accept the cross-channel work requests via the host interface, and to execute the cross-channel work requests using the work queues by controlling an advance of at least a given work queue according to an advancing condition, which depends on a completion status of one or more other work queues, so as to carry out the operation.
-
Citations
39 Claims
-
1. A Network Interface device (NI), comprising:
-
a host interface, which is configured to communicate with a host processor of a node of a network; a network interface, which is configured to be coupled to the network; and circuitry, which is coupled between the host interface and the network interface and is configured to; maintain multiple work queues that correspond to transport channels between the node and one or more peer nodes on the network, receive from the host processor via the host interface one or more cross-channel work requests, execute work queue entries from the multiple work queues; disable the execution of work queue entries in a first work queue from the multiple work queues until conditions required for execution of the work queue entries of the first work queue are met, responsive to the received one or more cross-channel work requests; and enable the execution of work queue entries in the first work queue, responsive to identifying a completion status of one or more second work queues such that the conditions required for execution of the work queue entries of the first work queue are met, wherein the circuitry is configured to place in the first work queue, responsive to the received one or more cross-channel work requests, a sequence of entries including a wait entry, followed by a calculation entry, which when executed performs a calculation on data received in the one or more second work queues, and to disable the execution of work queue entries in the first work queue when the wait entry is executed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method, comprising:
-
using a Network Interface device (NI) that is coupled between a network and a host processor of a node, maintaining in the NI multiple work queues that correspond to transport channels between the node and one or more peer nodes on the network; execute, by the NI, work queue entries from the multiple work queues; receiving in the NI from the host processor one or more cross-channel work requests, placing in a first work queue from the multiple work queues, responsive to the received one or more cross-channel work requests, a sequence of entries including a wait entry, followed by a calculation entry; disabling the execution of work queue entries in the first work queue until conditions required for execution of the work queue entries of the first work queue are met, when the wait entry is executed; and enabling the execution of work queue entries in the first work queue, responsive to identifying a completion status of one or more second work queues such that the conditions required for execution of the work queue entries of the first work queue are met, wherein the calculation entry, when executed, performs a calculation on data received in the one or more second work queues. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A computer software product, comprising a non-transitory computer-readable storage medium in which program instructions are stored, which instructions, when read by a processor that is coupled between a network and a host processor of a node, cause the processor:
-
to maintain multiple work queues that correspond to transport channels between the node and one or more peer nodes on the network, to execute work queue entries from the multiple work queues, to receive from the host processor one or more cross-channel work requests, to place in a first work queue from the multiple work queues, responsive to the received one or more cross-channel work requests, a sequence of entries including a wait entry, followed by a calculation entry, to disable the execution of work queue entries in the first work queue when the wait entry is executed until conditions required for execution of the work queue entries of the first work queue are met, and to enable the execution of work queue entries in the first work queue, responsive to identifying a completion status of one or more second work queues, such that the conditions required for execution of the work queue entries of the first work queue are met, wherein the calculation entry, when executed, performs a calculation on data received in the one or more second work queues.
-
Specification