Static Analysis Speed-Up Estimation for Parallel Architectures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Porting programs from CPU to GPU requires substantial restructuring and optimization, making it difficult to predict the performance advantage before substantial effort is expended, as dynamic measurements are time-consuming and interfere with program execution.

Innovation Solution

A method using static measurements to estimate speed-up when porting programs between architectures, combined with minimal dynamic analysis, allowing for efficient allocation of resources to portions of the program that will yield the most benefit, by applying static properties to a machine learning model trained on empirically measured changes in execution speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If dynamic measurements are used to estimate program speed-up, then measurement precision is improved, but loss of time increases and device complexity increases

Engineering Contradiction:
Improvespeed-up estimation accuracyVSAvoidtime for dynamic measurement and instrumentation
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing static analysis on program code before execution to extract characteristics that predict speed-up potential. Instead of waiting for dynamic measurements during runtime, the system analyzes source code or binary code in advance to identify loop structures, memory access patterns, and computational intensity, enabling early estimation of porting benefits without interfering with program execution

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses an intermediary approach by introducing a machine learning model trained on static program characteristics as a mediator between code analysis and speed-up prediction. The model learns from training data containing static features (loop counts, instruction types, memory patterns) and maps them to estimated speed-up values, avoiding the need for direct dynamic measurement while maintaining reasonable accuracy

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If dynamic instrumentation is implemented to make measurements, then measurement precision is improved, but ease of operation deteriorates

Engineering Contradiction:
Improveexecution speed measurement accuracyVSAvoidprogrammer effort and execution interference
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent applies the extraction principle by removing the need for dynamic instrumentation entirely. Instead of inserting measurement code into the running program, the system extracts relevant information through static analysis of the program code itself, such as parsing loop structures, identifying computational kernels, and analyzing memory access patterns without modifying or interfering with program execution

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system applies self-service by enabling automatic estimation of speed-up potential through machine learning models that process static program characteristics. The analysis is performed automatically on the program code without requiring programmer intervention, manual annotation, or modification of the program, making the process as easy as submitting the original code

Inventive Principle:
Principle #25Self-service

3Loss of time

If static analysis is used to estimate speed-up, then loss of time is reduced, but measurement precision deteriorates

Engineering Contradiction:
Improveassessment timeVSAvoidspeed-up prediction accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The patent applies parameter changes by transforming static program characteristics into meaningful features for prediction. The system converts code structure information (loop nesting depth, iteration counts, instruction mix ratios, memory access patterns) into numerical parameters that feed into the machine learning model, enabling accurate estimation from static data alone

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system applies feedback by training the machine learning model on labeled training data where actual speed-up measurements are known. The model learns from historical examples the relationship between static characteristics and actual performance gains, continuously improving its prediction accuracy through the feedback loop of training on empirical data

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10754744B2Method of estimating program speed-up in highly parallel architectures using static analysis
Publication Date: 2020.08.25 WISCONSIN ALUMNI RES FOUND
  • US10754744B2 patent drawing
  • US10754744B2 patent drawing
  • US10754744B2 patent drawing

AI summary

The amount of speed-up that can be obtained by optimizing the program to run on a different architecture is determined by static measurements of the program. Multiple such static measurements are processed by a machine learning system after being discretized to alter their accuracy vs precision. Static analysis requires less analysis overhead and permits analysis of program portions to optimize allocation of porting resources on a large program.