Continuous Thread GPU Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units face inefficiencies in handling latency-sensitive applications due to high communication overhead and thread launch costs between central processing units and graphics processing units, which hinder effective processing of complex operations and network packet processing.

Innovation Solution

Implementing a continuous thread model that runs uninterrupted on the graphics processing unit, utilizing shared virtual memory and fine-grained preemption, allowing for reduced communication overhead and enabling continuous streaming workloads without the need for frequent thread launches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional thread launch model is used on graphics processing unit, then task assignment can be performed, but communication overhead and thread launch time increase latency

Engineering Contradiction:
Improvelatency sensitivityVSAvoidthread launch time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-allocates and pre-configures thread pools on the graphics processing unit before actual packet processing begins. This preliminary setup eliminates the need for repeated thread launches during runtime, as threads are already available and configured to handle incoming packets immediately, thus reducing thread launch time and improving latency sensitivity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a continuous thread pool model where threads remain active and ready to process packets continuously without interruption. This continuous operation eliminates the start-stop nature of traditional thread launches, maintaining steady-state processing that reduces latency and improves reliability for time-sensitive network operations

Inventive Principle:
Principle #20Continuity of useful action

2Productivity

If batch processing is used to amortize overhead, then processing efficiency improves, but latency sensitivity requirements are not met

Engineering Contradiction:
Improveprocessing throughputVSAvoidbatch processing delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the processing workload into individual packet-level tasks that can be handled by dedicated threads in the pool, rather than batching multiple packets together. This segmentation allows each packet to be processed independently and immediately by an available thread, maintaining high throughput while eliminating batch processing delays and meeting latency sensitivity requirements

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent maintains a thread pool size that exceeds the immediate processing needs, providing more threads than strictly necessary for any single batch of packets. This excessive thread availability ensures that threads are always ready to process individual packets immediately upon arrival, eliminating waiting time associated with batch assembly while maintaining high processing throughput

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If central processing unit assigns tasks to graphics processing unit, then task management is achieved, but communication overhead increases latency

Engineering Contradiction:
Improvetask assignmentVSAvoidcommunication overhead
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent extracts the task assignment function from the central processing unit and relocates it to the graphics processing unit itself. The CPU simply submits work to the GPU's internal task submission mechanism, while the GPU's thread pool manager handles all subsequent thread allocation, configuration, and packet processing decisions locally, eliminating repeated CPU-GPU communication overhead for each task assignment

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary layer in the form of a GPU-resident command buffer and task submission mechanism that sits between the CPU and the thread pool. This intermediary receives task submissions from the CPU in bulk, then autonomously manages thread allocation and execution on the GPU without requiring further CPU intervention, reducing communication overhead while maintaining ease of operation

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9830676B2Packet processing on graphics processing units using continuous threads
Publication Date: 2017.11.28 TAHOE RES LTD
  • US9830676B2 patent drawing
  • US9830676B2 patent drawing
  • US9830676B2 patent drawing

AI summary

In accordance with some embodiments, a continuous thread is operated on the graphics processing unit. A continuous thread is launched one time from the central processing unit and then it runs continuously until an application on the central processing unit decides to terminate the thread. For example, the application may decide to terminate the thread in one of a variety of situations which may be programmed in advance. For example, upon error detection, a desire to change the way that the thread on the graphics processing unit operates, or in power off, the thread may terminate. But unless actively terminated by the central processing unit, the continuous thread generally runs uninterrupted.