GPU Microcode Offloading for Cryptographic Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern GPUs lack fundamental computing constructs like integer data operands and operations, making them unsuitable for mathematically complex tasks such as cryptography, and existing systems struggle to efficiently offload cryptographic computations from CPUs, especially with the increasing demand for computer security and high throughput required by IPsec and AES algorithms.

Innovation Solution

A system and method that utilizes a CPU, GPU, and driver to offload cryptographic computations by downloading microcode to the GPU, enabling integer and logical operations, and optimizing AES algorithm execution through pre-computed tables and thread-based processing, allowing for efficient encryption of payloads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If cryptographic computations are performed on the CPU, then security requirements are met, but the CPU becomes overwhelmed and throughput is insufficient

Engineering Contradiction:
Improvecryptographic computation throughputVSAvoidcomputational architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cryptographic computation task is segmented and distributed across multiple GPU streaming multiprocessors, each handling parallel thread groups. This divides the overwhelming CPU workload into manageable parallel units that can be processed simultaneously on the GPU, achieving high throughput without overloading a single processor

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A driver system acts as an intermediary between the CPU and GPU, managing the complex task of downloading microcode, organizing data batches, and coordinating cryptographic operations. This intermediary layer handles the architectural complexity, allowing the CPU to offload computations while maintaining system coherence

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If GPUs are used for general-purpose computing, then computational efficiency improves, but the lack of integer operations and bitwise logic makes them unsuitable for cryptography

Engineering Contradiction:
Improvecomputation speedVSAvoidcryptographic operation capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

Cryptographic microcode is downloaded to the GPU in advance, pre-configuring the GPU with the specific integer operations, bitwise logic, and cryptographic algorithms needed. This preliminary action transforms the GPU from a graphics-only processor to a cryptographic computing device capable of executing AES and other cryptographic functions efficiently

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The GPU's operational parameters are changed by loading specialized microcode that enables integer data types and bitwise logical operations. This parameter change allows the GPU to execute cryptographic instructions that require integer arithmetic and logic operations, which are essential for AES encryption and other cryptographic protocols

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If microcode is downloaded to the GPU for cryptographic operations, then integer and logical operations become available, but memory bandwidth and batch processing complexity increase

Engineering Contradiction:
Improvecryptographic operation supportVSAvoidmicrocode management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The driver processes cryptographic requests in periodic batches, organizing data into structured formats and downloading corresponding microcode segments to the GPU. This periodic batch processing manages memory bandwidth demands and microcode transfer complexity by breaking continuous operations into manageable discrete units

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

Microcode is downloaded to the GPU in advance before cryptographic operations begin, and data is pre-organized into batches with proper formatting. This preliminary preparation reduces the complexity of real-time microcode management and memory bandwidth requirements during actual cryptographic processing

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8106916B1Cryptographic computations on general purpose graphics processing units
Publication Date: 2012.01.31 NVIDIA CORP
  • US8106916B1 patent drawing
  • US8106916B1 patent drawing
  • US8106916B1 patent drawing

AI summary

One embodiment of the invention sets forth a computing system for performing cryptographic computations. The computing system comprises a central processing unit, a graphics processing unit, and a driver. The central processing requests a cryptographic computation. In response, the driver downloads microcode to perform the cryptographic computation to the graphics processing unit and the graphics processing unit executes microcode. This offloads cryptographic computations from the CPU. As a result, cryptographic computations are performed faster and more efficiently on the GPU, freeing resources on the CPU for other tasks.