Genetic Algorithm Prediction for CPU to GPU Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in efficiently transforming applications developed for classical computational environments using CPUs to accelerated environments like GPUs or FPGAs due to architectural differences, requiring modifications and lacking an effective method to predict execution speedups.

Innovation Solution

A computer-implemented system that generates computational profiles for applications using execution metrics from both CPU and accelerated processing units, applies a genetic algorithm prediction model to determine if execution speedup is achievable on GPUs or FPGAs, and processes accelerated code versions when sufficient capacity and faster execution is predicted.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If applications are transformed from CPU to GPU/FPGA environments, then execution speed is improved, but algorithm modification complexity increases

Engineering Contradiction:
Improveexecution speedVSAvoidalgorithm modification complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces a hybrid computational environment that acts as an intermediary between CPU and GPU/FPGA. This hybrid environment includes a management processor that automatically manages task distribution and resource allocation, allowing applications to run with minimal modification while achieving accelerated processing through automatic identification and offloading of suitable computational kernels to GPU/FPGA resources.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates a universal computational platform that can execute both CPU-optimized and GPU/FPGA-optimized code within the same environment. The management processor dynamically determines which processing unit is most suitable for each computational task, making the system adaptable to different application types without requiring complete algorithm redesign for each target architecture.

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

2Measurement precision

If computational profiles are generated for multiple applications, then prediction accuracy is improved, but processing overhead increases

Engineering Contradiction:
Improveprediction accuracyVSAvoidprocessing overhead
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary profiling of computational applications during development or initial execution to establish baseline performance characteristics. These pre-collected computational profiles include information about memory access patterns, computational intensity, and parallelization potential, which are stored and reused for future prediction decisions, avoiding the need to perform full profiling each time an application is executed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The management processor uses computational profiles from benchmark applications and similar workloads as templates to predict performance for new applications. By copying and adapting known performance patterns from previously analyzed applications, the system can make accurate predictions without performing exhaustive profiling on every new application, thus reducing processing overhead.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11354592B2Intelligent computation acceleration transform utility
Publication Date: 2022.06.07 MORGAN STANLEY SERVICES GROUP INC
  • US11354592B2 patent drawing
  • US11354592B2 patent drawing
  • US11354592B2 patent drawing

AI summary

Systems and methods for intelligent computation acceleration transform to allow applications to be executed by accelerated processing units such as graphic processing units (GPUs) or field programmable gate arrays (FPGAs) are disclosed. In an embodiment, a computational profile is generated for an application based on execution metrics of the application for the CPU and the accelerated processing unit, and a genetic algorithm (GA) prediction model is applied to predict execution speedup on an accelerated processing unit for the application. In an embodiment, upon identification of speedup, computational steps are arbitrated among various processing units according to compute availability to achieve optimal completion time for the compute job.