Parallel Processing Unit Large Integer Library Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processors are inefficient in handling large integers due to their limited register capacity and high latency in memory operations, which hinders the processing of large integers that exceed 64 bits in width.

Innovation Solution

A system and method for generating executable code that utilizes a parallel processing unit, specifically a large integer library optimized for parallel processing, allowing large integer operations to be performed efficiently by compiling source code linked to the library and executing it on a parallel processing unit with multiple cores operating in parallel.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If large integers are processed by breaking them into smaller units and using available registers, then the operation can be performed, but the number of available registers is insufficient to store all intermediate results

Engineering Contradiction:
Improveability to process large integersVSAvoidnumber of available registers
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments the large integer processing into multiple stages, with each stage handling a portion of the intermediate results. Instead of requiring all intermediate results to be stored simultaneously in registers, the processing is divided into batches that can be handled with the limited register capacity available in parallel processing units.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a register-based storage model to a memory-based storage model, effectively moving the storage dimension from on-chip registers to off-chip memory. This allows intermediate results to be stored externally, bypassing the limitation of limited register capacity while maintaining the ability to process large integers.

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

2Quantity of substance

If intermediate results are transferred from registers to memory for temporary storage, then storage capacity is sufficient, but the transfer operation has high latency and slows down processing

Engineering Contradiction:
Improvestorage capacity for intermediate resultsVSAvoidlatency of memory transfer operation
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-fetching data and pre-positioning intermediate results in optimal locations before they are needed. This reduces the latency of memory operations by ensuring that data is already in the correct location when needed, rather than performing transfers on-demand.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuity of useful action by overlapping memory transfer operations with computation operations. While intermediate results are being transferred to memory, other computational tasks are performed, ensuring that the processing pipeline remains active and minimizing idle time.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If conventional processors with limited registers are used, then device complexity is low, but productivity in processing large integers is insufficient

Engineering Contradiction:
Improveprocessing speed of large integersVSAvoidcomplexity of parallel processing unit
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the large integer processing task across multiple processing units and memory locations, allowing parallel execution of multiple operations simultaneously. This segmentation enables high productivity by utilizing the parallel processing capability, despite the increased device complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent designs the parallel processing unit with universal components that can handle multiple types of operations (addition, multiplication, etc.) on large integers. This multi-functionality allows a single complex device to perform various large integer operations efficiently, justifying the increased complexity through versatile productivity.

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

Data Source

PatentUS9880851B2System, method, and computer program product for implementing large integer operations on a graphics processing unit
Publication Date: 2018.01.30 NVIDIA CORP
  • US9880851B2 patent drawing
  • US9880851B2 patent drawing
  • US9880851B2 patent drawing

AI summary

A system, method, and computer program product for generating executable code for performing large integer operations on a parallel processing unit is disclosed. The method includes the steps of compiling a source code linked to a large integer library to generate an executable file and executing the executable file to perform a large integer operation using a parallel processing unit. The large integer library includes functions for processing large integers that are optimized for the parallel processing unit.