Remote GPU Call Optimization via Local Configuration Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The high cost of using local GPU resources and the inefficiency caused by excessive Remote Procedure Calls (RPCs) when utilizing remote GPU resources for applications like machine learning and deep learning, leading to low execution efficiency.

Innovation Solution

Implementing a method to optimize remote calls by determining whether commands satisfy optimization conditions, such as reusing existing configurations through Copy-On-Write (COW), thereby reducing the number of remote call commands transmitted to the server, specifically by using a client-server architecture with a GPUaaS engine and optimizing neural network layer configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If remote GPU resources are used to lower costs, then resource utilization rate is improved, but execution efficiency deteriorates due to excessive RPCs

Engineering Contradiction:
Improveresource utilization rateVSAvoidexecution efficiency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by caching configuration information locally before it is needed. When a neural network layer requires configuration, the client first checks the local cache for existing configurations. This preliminary caching action avoids the need to repeatedly transmit identical configuration commands to the server, thereby reducing RPC overhead and improving execution efficiency while maintaining high resource utilization.

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If configuration information is cached locally, then network transmission is reduced, but memory usage increases

Engineering Contradiction:
Improvenetwork transmissionVSAvoidmemory usage
Core Design Contradiction:
Loss of energyVSQuantity of substance

Solution Approach 1:

The system applies local quality by implementing a localized cache specifically for configuration information at the client side. This cache stores configuration data with specific attributes (layer type, parameters, etc.) in a structured manner, allowing efficient local retrieval without requiring network transmission. The cache is designed to store only necessary configuration data locally, balancing memory usage with network transmission reduction.

Inventive Principle:
Principle #3Local quality

3Productivity

If all commands are transmitted to remote GPU, then resource utilization is maximized, but system complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments commands into different types: configuration commands and execution commands. Configuration commands are optimized by checking local cache first and only transmitting when necessary, while execution commands are always transmitted to the remote GPU. This segmentation allows the system to maintain high resource utilization by ensuring execution commands reach the remote GPU, while reducing system complexity by avoiding unnecessary configuration command transmissions.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11556401B2Method, device and computer program product for optimizing remote call
Publication Date: 2023.01.17 EMC IP HLDG CO LLC
  • US11556401B2 patent drawing
  • US11556401B2 patent drawing
  • US11556401B2 patent drawing

AI summary

Techniques for optimizing a remote call are provided. For example, a method includes obtaining a command for calling a remote dedicated processing resource and determining whether the command satisfies an optimization condition based on a type of the command. The method further comprises in response to determining that the command satisfies the optimization condition, ceasing to transmit the command to the remote dedicated processing resource. Accordingly, in the case that the remote dedicated processing resource needs to be called, the number of remote call commands transmitted to the remote dedicated processing resource can be reduced by optimizing the remote call commands, thereby improving the execution efficiency effectively.