# US 10,320,695 B2 · Message aggregation, combining and compression for efficient data communications in GPU-based clusters

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,695 B2
- Document ID: US10320695B2
- Status: Granted
- Kind: B2
- Application number: 15/165,953
- Filed: 2016-05-26
- Published: 2016-12-01
- Granted: 2019-06-11
- Earliest claimed: 2015-05-29
- Assignees: Advanced Micro Devices, Inc.
- Applicants: Advanced Micro Devices, Inc.
- Inventors: Steven K. Reinhardt; Marc S. Orr; Bradford M. Beckmann; Shuai Che; David A. Wood
- Web page: https://patentgrep.com/patent/US10320695B2

## CPC

- H04L 47/365: {Dynamic adaptation of the packet size}
- H04L 47/38: by adapting coding or compression rate
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and method for efficient management of network traffic management of highly data parallel computing. A processing node includes one or more processors capable of generating network messages. A network interface is used to receive and send network messages across a network. The processing node reduces at least one of a number or a storage size of the original network messages into one or more new network messages. The new network messages are sent to the network interface to send across the network.

## Claims

### Claim 1

A processing node comprising:
a processor configured to generate a plurality of network messages; and
a network operation combiner, wherein in response to an indication that one or more network messages of the plurality of network messages are combinable, the network operation combiner is configured to:
perform a combining operation on a plurality of data elements in the one or more network messages to produce a given result; and
generate a first packed network message comprising the given result in place of the plurality of data elements, wherein the first packed network message includes fewer than all of the data elements in the one or more network messages;
a data compressor configured to replace two or more network messages with a second packed network message responsive to the two or more network messages comprising an indication of a same destination node and one or more data elements in common, the second packed network message comprising an indication of the destination node and a single copy of the one or more data elements in common.

### Claim 2 (depends on 1)

The processing node as recited in claim 1, wherein the combining operation comprises any one or more of: a commutative operation, an associative operation, a maximum function, or a minimum function.

### Claim 3 (depends on 1)

The processing node as recited in claim 1, wherein the processing node further comprises a message aggregator configured to replace two or more network messages with a third packed network message responsive to the two or more network messages comprising an indication of a same destination node and one or more different data elements, the second packed network message comprising an indication of the destination node and a copy of the one or more different data elements.

### Claim 4 (depends on 3)

The processing node as recited in claim 3, wherein the message aggregator is further configured to insert in a given packed network message an indication of a number of network messages to expand from the given packed network message.

### Claim 5 (depends on 1)

The processing node as recited in claim 1, wherein the processing node further comprises a unit that includes at least the network operation combiner, wherein the unit is configured to:
monitor a total size of the plurality of network messages generated by the processor; and
responsive to determining the total size of the plurality of network messages exceeds a threshold, send an indication to the network operation combiner to process the plurality of network messages.

### Claim 6 (depends on 1)

The processing node as recited in claim 1, wherein:
the processing node further comprises a network interface configured to receive and send network messages across a network;
the operation combiner is further configured to send an indication to the network interface to send packed network message across the network instead of one or more of the plurality of network messages.

### Claim 7 (depends on 6)

The processing node as recited in claim 6, wherein in response to receiving a given packed network message, the network interface is further configured to generate two or more network messages, each with data from the received packed network message.

### Claim 8

A method comprising:
generating a plurality of network messages;
wherein in response to an indication that one or more network messages of the plurality of network messages is combinable:
performing a combining operation on a plurality of data elements in the one or more network messages to produce a given result; and
generating a first packed network message comprising the given result in place of the plurality of data elements, wherein the first packed network message includes fewer than all of the data elements in the one or more network messages;
replacing two or more network messages with a second packed network message responsive to the two or more network messages comprising an indication of a same destination node and one or more data elements in common, the second packed network message comprising an indication of the destination node and a single copy of the one or more data elements in common.

### Claim 9 (depends on 8)

The method as recited in claim 8, wherein the combining operation comprises any one or more of: a commutative operation, an associative operation, a maximum function, or a minimum function.

### Claim 10 (depends on 8)

The method as recited in claim 8, further comprising replacing two or more network messages with a third packed network message responsive to the two or more network messages comprising an indication of a same destination node and one or more different data elements, the second packed network message comprising an indication of the destination node and a copy of the one or more different data elements.

### Claim 11 (depends on 10)

The method as recited in claim 10, further comprising inserting in a given packed network message an indication of a number of network messages to expand from the given packed network message.

### Claim 12 (depends on 10)

The method as recited in claim 10, further comprising sending an indication to a network interface indicating to send packed network message across a network and bypass sending one or more of the plurality of network messages used to generate the packed network messages.

### Claim 13 (depends on 8)

The method as recited in claim 8, further comprising:
monitoring a total size of the plurality of network messages generated by the processor; and
responsive to determining the total size of the plurality of network messages exceeds a threshold, sending an indication to a network operation combiner to process the plurality of network messages.

### Claim 14 (depends on 13)

The method as recited in claim 13, further comprising inserting in a given packed network message an indication of a number of network messages to expand from the given packed network message and an indication of which data to place in which of the number of network messages.

### Claim 15

A computing system comprising:
a source node;
a network; and
a target node coupled to the source node via the network; and
wherein the source node is configured to:
generate a plurality of network messages;
in response to an indication that one or more network messages of the plurality of network messages is combinable:
perform a combining operation on a plurality of data elements in the one or more network messages to produce a given result; and
generate a first packed network message comprising the given result in place of the plurality of data elements, wherein the first packed network message includes fewer than all of the data elements in the one or more network messages;
replace two or more network messages with a second packed network message responsive to the two or more network messages comprising an indication of a same destination node and one or more data elements in common, the second packed network message comprising an indication of the destination node and a single copy of the one or more data elements in common.

### Claim 16 (depends on 15)

The computing system as recited in claim 15, wherein the source node is further configured to send the first packed network message across the network to the target node and bypass sending one or more of the plurality of network message.

### Claim 17 (depends on 15)

The computing system as recited in claim 15, wherein the source node is further configured to replace two or more network messages with a third packed network message responsive to the two or more network messages comprising an indication of a same destination node and one or more different data elements, the second packed network message comprising an indication of the destination node and a copy of the one or more different data elements.
