GPU TCP Packet Offloading via CPU Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computing systems are limited in handling TCP connections due to their reliance on CPUs for parallel computing, which hampers their ability to meet the demands of high-speed data processing required in fields like scientific research.

Innovation Solution

A system and method that enables GPUs to handle TCP packets without involving the CPU, allowing for parallel processing and direct communication between GPUs and TCP peers, thereby bypassing the OS socket and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If CPU is used to handle TCP packets, then connection management is reliable, but processing speed is limited

Engineering Contradiction:
Improveconnection management reliabilityVSAvoidpacket processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments TCP packet handling into two distinct paths: control packets (SYN, FIN, RST flags) are handled by the CPU for reliable connection management, while bulk data packets are offloaded to the GPU for high-speed parallel processing. This segmentation resolves the contradiction by assigning tasks to the most appropriate processor based on their nature.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (lookup table and packet inspection logic) that determines whether a packet should be routed to the CPU or GPU. This intermediary enables intelligent task distribution, allowing the system to maintain reliability for control packets while achieving high productivity for data packets.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If CPU handles all TCP communication, then protocol compliance is ensured, but parallel processing capability is insufficient

Engineering Contradiction:
Improveprotocol complianceVSAvoidparallel processing capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments TCP packet handling into two distinct paths: control packets (SYN, FIN, RST flags) are handled by the CPU for reliable connection management, while bulk data packets are offloaded to the GPU for high-speed parallel processing. This segmentation resolves the contradiction by assigning tasks to the most appropriate processor based on their nature.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The GPU is enabled to autonomously handle bulk data packet processing without requiring CPU intervention for each packet. The system configures the GPU with necessary parameters and then allows it to self-service by processing packets in parallel, thereby achieving high adaptability and parallel processing capability while maintaining protocol compliance through initial CPU setup.

Inventive Principle:
Principle #25Self-service

3Reliability

If three-way handshake is required for TCP connection, then connection reliability is improved, but communication overhead increases

Engineering Contradiction:
Improveconnection reliabilityVSAvoidcommunication overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs the three-way handshake preliminarily through the CPU to establish reliable TCP connections before offloading bulk data transfer to the GPU. By completing the connection setup in advance, the system ensures connection reliability while minimizing overhead during the actual data processing phase, as subsequent bulk packets can be handled efficiently by the GPU without repeated CPU involvement.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240364642A1Systems and methods of packet-based communication
Publication Date: 2024.10.31 MELLANOX TECHNOLOGIES LTD(IL)
  • US20240364642A1 patent drawing
  • US20240364642A1 patent drawing
  • US20240364642A1 patent drawing

AI summary

A system for transmitting data is described, among other things. An illustrative system is disclosed to include one or more circuits to perform receiving a first packet, determining a header of the first packet includes a SYN, FIN, or RST flag, in response, delivering the first packet to a CPU, receiving a second packet, determining a header of the second packet does not include a SYN, FIN, or RST flag, and, in response, deliver the second packet to a GPU.