Multiphased Profile Guided Optimization for Compiler Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional profile-guided compiler optimization methods are inefficient as they collect and store extensive profiling data across all program phases, leading to memory usage issues and slow training times, and fail to optimize specific phases like startup, which may not benefit from overall program optimizations.

Innovation Solution

Multiphased profile-guided optimization collects and separates profiling data for distinct program phases, allowing for phase-specific optimizations based on priority, optimizing code execution by prioritizing frequently executed functions and features within their respective phases, thereby improving performance without increasing overall executable size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional profile-guided optimization collects and stores extensive profiling data across all program phases, then overall program optimization can be achieved, but memory usage increases and training times become slow

Engineering Contradiction:
Improveoverall program optimizationVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments profiling data collection by dividing the program execution into distinct phases (startup, steady state, shutdown) and collecting profiling data separately for each phase. This segmentation allows the system to optimize memory usage by processing and discarding phase-specific data rather than storing all profiling data in memory simultaneously, thereby resolving the contradiction between achieving comprehensive optimization and managing memory resources.

Inventive Principle:
Principle #1Segmentation

2Productivity

If traditional profile-guided optimization collects and stores extensive profiling data across all program phases, then overall program optimization can be achieved, but training times become slow

Engineering Contradiction:
Improveoverall program optimizationVSAvoidtraining time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the profiling and optimization process into distinct phases, allowing each phase to be processed independently and in sequence. This segmentation enables the system to complete profiling for one phase, process the data, and move to the next phase without waiting to collect all profiling data first, thereby reducing overall training time while still achieving comprehensive program optimization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary profiling and analysis for each phase separately before proceeding to optimization. By completing the profiling phase entirely for each program phase beforehand and processing that data immediately, the system avoids the overhead of managing and processing all profiling data simultaneously, thus reducing training time.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If traditional profile-guided optimization applies overall program optimizations, then general performance improves, but specific phases like startup do not benefit adequately

Engineering Contradiction:
Improvegeneral performanceVSAvoidphase-specific optimization effectiveness
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent applies local quality by tailoring optimization strategies to each specific program phase based on its unique characteristics and profiling data. For example, startup phase optimization focuses on initialization routines and early execution paths, while steady state optimization addresses the main execution loop. This phase-specific approach ensures that each phase receives optimized treatment suited to its requirements, improving both general performance and phase-specific effectiveness.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10175965B2Multiphased profile guided optimization
Publication Date: 2019.01.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10175965B2 patent drawing
  • US10175965B2 patent drawing
  • US10175965B2 patent drawing

AI summary

Multiphased profile guided optimization optimizes executable code based on data collected during multiple training runs of a training executable. In multiphased profile guided optimization, multiple sets of profiling data are collected where each set of profiling data is associated with a program phase and a particular training run. Program phases include but are not limited to different program features, startup, steady state and shutdown. The program features can run concurrently. Priority of the phases can be specified.