Off-load Server Software Placement for GPU and FPGA Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In the context of cloud-first applications, using accelerators like GPUs and FPGAs for performance and cost-effective operation is challenging due to the need for code conversion, resource allocation, and optimal deployment locations, especially in IoT environments where image processing and other tasks require efficient processing without incurring significant delays or increased costs.

Innovation Solution

A software deployment method that analyzes application source code, identifies off-loadable processes, performs code conversion, and optimizes resource allocation and deployment locations based on performance and cost metrics, using techniques such as genetic algorithms to select the most efficient off-load patterns and resource configurations for GPUs and FPGAs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If code conversion and manual configuration for GPU/FPGA offloading is performed, then processing performance is improved, but system complexity and difficulty of operation increase

Engineering Contradiction:
Improveprocessing performanceVSAvoiddifficulty of operation
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system automatically analyzes application source code, identifies offloadable processes, performs code conversion, and selects optimal deployment configurations without requiring manual user intervention. The off-load server autonomously completes tasks that previously required skilled programming knowledge of CUDA/OpenCL and manual hardware configuration.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The off-load server acts as an intermediary between the application developer and the accelerator hardware (GPU/FPGA). It provides automated code conversion and optimization services, shielding users from the complexity of direct hardware programming while delivering performance benefits through intelligent code transformation and configuration selection.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If more accelerator resources (GPU/FPGA) are allocated, then processing speed is improved, but deployment complexity and resource allocation difficulty increase

Engineering Contradiction:
Improveprocessing speedVSAvoiddeployment complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system automatically adjusts deployment parameters including code conversion strategies, resource allocation configurations, and optimization settings based on the specific application requirements. It evaluates multiple parameter combinations and selects the optimal configuration for each application, eliminating the need for manual parameter tuning by users.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If manual code conversion and optimization is performed, then processing efficiency is improved, but development time and cost increase

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddevelopment time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs code analysis, offloadable process identification, and optimization strategy selection in advance before actual deployment. By preparing optimized code and configuration upfront through automated analysis, it eliminates the need for time-consuming manual optimization processes while maintaining high processing efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11614927B2Off-load servers software optimal placement method and program
Publication Date: 2023.03.28 NIPPON TELEGRAPH & TELEPHONE CORP
  • US11614927B2 patent drawing
  • US11614927B2 patent drawing
  • US11614927B2 patent drawing

AI summary

A software deployment method includes: analyzing a source code of an application; designating off-loadable processes of the application; performing a code conversion of the application according to a deployment destination environment; measuring the performance of the converted application on a verification device; making a setting for resource amounts according to the deployment destination environment; selecting a deployment place by calculating a deployment destination on the basis of a performance and a cost when the converted application is deployed while ensuring the resource amounts; performing, after deployment to an actual environment, a performance measurement test process to measure an actual performance of application; and performing, after performing the performance measurement test process, one or more of performing the code conversion, making the setting for resource amounts, selecting the deployment place, measuring the performance of the application on the verification device, and performing the performance measurement test process.