Genetic Algorithm Prediction for CPU to GPU Acceleration
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Speed
If applications are transformed from CPU to GPU/FPGA environments, then execution speed is improved, but algorithm modification complexity increases
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.
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.
2Measurement precision
If computational profiles are generated for multiple applications, then prediction accuracy is improved, but processing overhead increases
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.
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.
Data Source
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.


