Compiler Optimizer for Predictable Recurring Memory Reads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing compiler technologies face challenges in optimizing loops with predictable recurring memory reads (PRMRs), as prior methods often result in inefficient vectorization and increased execution costs due to limitations in handling recurring patterns that do not match power-of-two vectorization factors and the need for expensive vector gather operations.

Innovation Solution

The proposed solution involves a compiler optimizer that detects PRMRs, determines optimization parameters through cost modeling, and applies a sequence of loop transformations, including loop collapsing, vectorization, unrolling, gather-to-shuffle optimization, and loop invariant code motion, to convert PRMRs into loop-invariant vector memory loads and shuffle instructions, optimizing the loop structure to reduce execution costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional loop optimization methods are used, then vectorization can be applied, but execution cost increases due to expensive vector gather operations when patterns don't match power-of-two factors

Engineering Contradiction:
Improveexecution speedVSAvoidcomputational resource cost
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The loop is divided into multiple segments corresponding to different recurring patterns. Each segment is processed separately with its own optimized code, allowing the compiler to apply specific optimizations tailored to each pattern's characteristics rather than forcing a single vectorization approach on the entire loop.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The optimizer dynamically determines optimization parameters such as vectorization factors and unrolling factors based on the detected recurring patterns. These parameters are adjusted to match the pattern lengths, transforming the access patterns into forms that can be efficiently handled by standard vector operations without requiring expensive gather instructions.

Inventive Principle:
Principle #35Parameter changes

2Loss of time

If loop transformations are applied to optimize PRMRs, then execution time is reduced, but the complexity of the optimization process increases

Engineering Contradiction:
Improveexecution timeVSAvoidoptimization process complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The compiler performs preliminary detection and analysis of recurring patterns in memory access during the compilation phase. By identifying PRMRs beforehand and determining their characteristics, the optimizer can plan and apply the appropriate sequence of transformations (collapsing, vectorization, unrolling) without requiring complex runtime decisions or multiple optimization passes.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If vector gather operations are used to handle non-power-of-two patterns, then all patterns can be processed, but the operation cost increases significantly

Engineering Contradiction:
Improvepattern handling capabilityVSAvoidoperation cost
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

Instead of using vector gather operations to directly access non-contiguous memory elements, the optimizer inverts the approach by transforming the loop and data access patterns so that standard contiguous vector loads can be used. This is achieved through loop collapsing and reordering that converts irregular access patterns into regular, contiguous memory accesses.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS11442713B2Methods and apparatus to improve optimizing loops with predictable recurring memory reads
Publication Date: 2022.09.13 INTEL CORP
  • US11442713B2 patent drawing
  • US11442713B2 patent drawing
  • US11442713B2 patent drawing

AI summary

Methods, apparatus, systems, and articles of manufacture are disclosed to improve loop optimization with predictable recurring memory reads (PRMRs). An example apparatus includes memory, and first processor circuitry to execute first instructions to at least identify one or more optimizations to convert a first loop into a second loop based on converting PRMRs of the first loop into loop-invariant PRMRs, the converting of the PRMRs in response to a quantity of the PRMRs satisfying a threshold, the second loop to execute in a single iteration corresponding to a quantity of iterations of the first loop, determine one or more optimization parameters based on the one or more optimizations, and compile second instructions based on the first processor circuitry processing the first loop based on the one or more optimization parameters associated with the one or more optimizations, the second instructions to be executed by the first or second processor circuitry.