GPU Program Control via Memory-Aware Execution Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for executing multiple programs on a GPU often result in memory shortages, leading to errors and inefficiencies, as they do not effectively manage memory usage when programs are run simultaneously.

Innovation Solution

A program control device and method that convert programs into intermediate representations with memory information, determining an execution order to keep memory usage below a threshold, ensuring simultaneous execution without memory overflow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple programs are executed simultaneously on a GPU, then program execution efficiency and productivity are improved, but memory usage exceeds the GPU memory threshold causing execution errors

Engineering Contradiction:
Improveprogram execution efficiencyVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system performs preliminary actions by converting programs into intermediate representations before execution, analyzing their memory requirements in advance, and determining an execution order that prevents memory overflow. This allows multiple programs to be scheduled for simultaneous execution while ensuring GPU memory thresholds are not exceeded.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically determines the execution order of intermediate representations based on real-time memory usage monitoring. When GPU memory approaches the threshold, the system adjusts the execution sequence by selecting different intermediate representations, enabling flexible memory management during concurrent program execution.

Inventive Principle:
Principle #15Dynamics

2Power

If GPU memory is allocated for multiple programs, then computing capability is enhanced, but the risk of memory overflow increases causing program termination

Engineering Contradiction:
Improvecomputing capabilityVSAvoidexecution stability
Core Design Contradiction:
PowerVSReliability

Solution Approach 1:

The system implements feedback mechanisms by monitoring GPU memory usage during program execution and adjusting the execution order of intermediate representations accordingly. When memory usage approaches the threshold, the system receives feedback and reorders execution to maintain stable operation without program termination.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Before execution begins, the system converts programs into intermediate representations and analyzes their memory footprints in advance. This preliminary analysis allows the system to predict potential memory conflicts and determine a safe execution order that ensures reliable operation throughout execution.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If time-shared GPU execution is used, then hardware resource utilization is improved, but execution speed decreases due to sequential processing

Engineering Contradiction:
Improvehardware resource utilizationVSAvoidexecution speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The system performs preliminary conversion of programs into intermediate representations and determines an optimized execution order before actual execution begins. This allows the GPU to execute multiple programs in parallel simultaneously rather than sequentially, maintaining high execution speed while achieving effective hardware resource utilization through proper scheduling.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240184647A1Program control device, program control method, and program control program
Publication Date: 2024.06.06 NEC CORP
  • US20240184647A1 patent drawing
  • US20240184647A1 patent drawing
  • US20240184647A1 patent drawing

AI summary

A program control device includes a conversion unit which converts multiple programs to be simultaneously executed by an accelerator into intermediate representations indicating computation operations to be executed by programs and memory information indicating an amount of memory required by data used in the computation operations, respectively, and a determination unit which determines an execution order of multiple intermediate representations so that an amount of memory usage used by the accelerator when the accelerator executes the multiple programs simultaneously is below a threshold value of the memory based on the converted multiple intermediate representations and multiple memory information.