GPU as Programmable Packet Transfer Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network interface performance has increased, but packet processing has not kept pace, leading to bottlenecks due to CPU overhead, memory latency, and serialization of packet processing by multi-queue network interface controllers.

Innovation Solution

Combining a Graphics Processing Unit (GPU) with a Network Interface Controller (NIC) to offload packet processing functions, utilizing high thread-level parallelism and pre-processing data packets on the GPU before they reach the CPU, effectively creating a virtual NIC that enhances packet processing performance and reduces bottlenecks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If packet processing is performed on CPU, then processing flexibility is maintained, but processing speed is limited due to CPU overhead and serialization

Engineering Contradiction:
Improvepacket processing speedVSAvoidCPU overhead
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent extracts packet processing functions from the CPU and implements them on the GPU. The GPU handles packet classification, routing decisions, and data plane processing, while the CPU focuses on control plane functions. This separation allows parallel processing of packets on the GPU, eliminating CPU serialization bottlenecks and significantly improving packet processing speed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a GPU-based packet processing engine as an intermediary between the network interface controller and the CPU. This intermediary layer offloads packet processing tasks, enabling high-speed parallel processing while maintaining system flexibility through programmable packet processing functions on the GPU.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multi-queue network interface controllers are used, then network throughput is improved, but packet processing becomes serialized creating bottlenecks

Engineering Contradiction:
Improvenetwork throughputVSAvoidpacket processing speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments packet processing into multiple independent queues on the GPU, each handling specific packet streams simultaneously. This segmentation enables parallel packet processing across multiple GPU threads, eliminating the serialization bottleneck while maintaining high network throughput from multi-queue NICs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions packet processing from a single-threaded CPU approach to a multi-threaded GPU approach, adding the dimension of parallelism. By distributing packet processing across thousands of GPU cores, the system achieves both high throughput from multi-queue NICs and high-speed parallel processing.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If packet processing is offloaded to GPU, then processing speed increases through parallelism, but system complexity increases

Engineering Contradiction:
Improvepacket processing throughputVSAvoidGPU integration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent makes the GPU universally applicable for packet processing by implementing a programmable packet processing engine. The same GPU infrastructure handles diverse packet processing functions including classification, routing, QoS, and encryption, eliminating the need for separate dedicated hardware for each function and managing complexity through software programmability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Ease of operation

If CPU processes all packets, then processing control is centralized, but memory latency and bus bandwidth become bottlenecks

Engineering Contradiction:
Improveprocessing controlVSAvoidmemory latency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent extracts time-sensitive packet processing operations from the CPU and executes them on the GPU with direct memory access capabilities. This extraction eliminates CPU memory latency and bus bandwidth bottlenecks by allowing the GPU to process packets independently without frequent CPU-GPU data transfers.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10331590B2Graphics processing unit (GPU) as a programmable packet transfer mechanism
Publication Date: 2019.06.25 INTEL CORP
  • US10331590B2 patent drawing
  • US10331590B2 patent drawing
  • US10331590B2 patent drawing

AI summary

Discloses is an apparatus including a network interface controller (NIC), memory, and an accelerator. The accelerator can include a direct memory access (DMA) controller configured to receive data packets from the NIC and to provide the data packets to the memory. The accelerator can also include processing circuitry to generate processed data packets by implementing packet processing functions on the data packets received from the NIC, and to provide the processed data packets to at least one processing core. Other methods, apparatuses, articles and systems are also described.