Offload Server Optimizing Parallel Processing Patterns
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for automatically offloading processing to GPUs or FPGAs often fail to optimize performance and power consumption simultaneously, leading to inefficient resource utilization in heterogeneous computing environments.
Innovation Solution
An offload server that analyzes application code, designates data transfer, specifies parallel processing patterns, and measures performance to select optimal execution patterns based on processing time and power consumption, using a genetic algorithm to automate the offloading process and improve resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If automatic parallelization is performed using existing compilers, then processing speed is improved, but data exchange overhead between CPU-GPU memories deteriorates performance
Solution Approach 1:
The system performs preliminary analysis of application code to identify suitable parallel processing sections before actual execution. It pre-determines which loops should be offloaded to GPUs based on predicted performance gain, avoiding unnecessary data transfers by selecting only the most beneficial parallelization targets.
Solution Approach 2:
The system measures actual execution time and power consumption of parallelized code sections, uses this feedback to evaluate performance gain, and adjusts future parallelization decisions accordingly. This feedback loop ensures that only parallelization sections delivering net performance improvement are selected.
2Productivity
If manual tuning using OpenCL or CUDA is performed, then processing performance is improved, but the skill requirement and time to start use deteriorates
Solution Approach 1:
The system automatically performs code analysis, identifies parallel processing sections, generates optimized OpenCL/CUDA code, and handles data transfer management without requiring user intervention. The offload server self-adjusts parallelization strategies based on the application code structure, eliminating the need for user expertise in low-level GPU programming.
Solution Approach 2:
The system dynamically adjusts parallelization parameters such as block size, grid dimension, and data transfer timing based on the specific characteristics of the application code and hardware configuration. This automated parameter optimization eliminates manual tuning while adapting to different workloads.
3Reliability
If data is transferred frequently between CPU and GPU, then data availability is improved, but processing efficiency deteriorates due to transfer overhead
Solution Approach 1:
The system performs preliminary code analysis to identify variables that need to be transferred between CPU and GPU, and pre-organizes data transfer timing to minimize interruptions. It determines optimal transfer points before execution, reducing the frequency of data transfers while ensuring data availability when needed.
Solution Approach 2:
The system optimizes data transfer scheduling to minimize interruptions in the useful computational action. By carefully timing transfers between CPU and GPU, it maintains continuous productive work on the GPU while ensuring data is available when required, reducing the impact of transfer overhead on overall processing efficiency.
Data Source
AI summary
An offload server includes a performance measurement unit that compiles an application of a parallel processing pattern, arranges the application in an accelerator verification apparatus, and executes processing of measuring performance achieved when offloading to an accelerator is performed, an evaluation value setting unit that sets an evaluation value including a processing time and power consumption and having a higher value as a processing time is shorter and power consumption is lower on the basis of a processing time and power consumption required at a time of offloading measured by the performance measurement unit, and an execution file creation unit that selects a parallel processing pattern having the highest evaluation value from among a plurality of the parallel processing patterns on the basis of a measurement result of a processing time and power consumption, compiles the parallel processing pattern having the highest evaluation value, and creates an execution file.


