Code Conversion for VLIW Memory Locality Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current techniques for optimizing code execution on computation engines with VLIW processors only exploit temporal and spatial locality in limited ways, primarily focusing on register spilling and layout optimization, failing to fully leverage access and layout locality for improved performance and energy efficiency.

Innovation Solution

A method and apparatus for converting application code into optimized execution code by scheduling data transfer operations to bring frequently accessed data closer together in time and improving data layout locality, allowing partial freedom in scheduling and placement decisions based on a cost function, using a polyhedral model for data dependencies and reuse analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If current state of the art techniques are used for optimizing code execution on VLIW processors, then register spilling and layout optimization are performed, but access and layout locality are not fully leveraged for improved performance

Engineering Contradiction:
Improvecode execution performanceVSAvoidoptimization technique complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the optimization process into distinct phases: access locality optimization (scheduling data transfers to bring frequently accessed data closer together in time) and layout locality optimization (organizing data in memory to bring frequently accessed data closer together in space). This segmentation allows each phase to focus on specific aspects of locality, improving overall performance while maintaining manageable complexity through systematic approach.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by performing access locality optimization before layout optimization. The scheduler first determines the temporal access pattern and schedules data transfers accordingly, then the layout optimizer uses this scheduling information to organize data in memory. This sequential preliminary actions ensure that both temporal and spatial locality are optimized effectively, resolving the contradiction between performance improvement and optimization complexity.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If data transfer operations are scheduled to bring frequently accessed data closer together in time, then access locality is improved, but scheduling complexity increases

Engineering Contradiction:
Improvedata access efficiencyVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms where the scheduler analyzes data access patterns and reuse information to dynamically adjust scheduling decisions. The layout optimizer receives feedback from the scheduler about temporal access patterns and uses this information to optimize spatial layout. This feedback loop enables the system to learn from access patterns and make increasingly efficient scheduling decisions, improving data access efficiency while managing scheduling complexity through adaptive optimization.

Inventive Principle:
Principle #23Feedback

3Productivity

If data layout is optimized to bring frequently accessed data closer together in space, then layout locality is improved, but memory organization complexity increases

Engineering Contradiction:
Improvedata access efficiencyVSAvoidmemory organization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by transforming the data layout parameters based on the scheduling information. The layout optimizer modifies memory organization parameters (such as data placement, padding, and alignment) to match the temporal access patterns identified by the scheduler. This parameter transformation approach allows the system to optimize layout locality by adjusting memory organization parameters, improving data access efficiency while managing complexity through systematic parameter transformation rather than arbitrary reorganization.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8261252B2Method and system for automated code conversion
Publication Date: 2012.09.04 INTERUNIVERSITAIR MICRO ELECTRONICS CENT (IMEC VZW)
  • US8261252B2 patent drawing
  • US8261252B2 patent drawing
  • US8261252B2 patent drawing

AI summary

A method and system for converting application code into optimized application code or into execution code suitable for execution on a computation engine with an architecture comprising at least a first and a second level of data memory units are disclosed. In one aspect, the method comprises obtaining application code, the application code comprising data transfer operations between the levels of memory units. The method further comprises converting at least a part of the application code. The converting of application code comprises scheduling of data transfer operations from a first level of memory units to a second level of memory units such that accesses of data accessed multiple times are brought closer together in time than in the original code. The converting of application code further comprises, after the scheduling of the data transfer operations, deciding on layout of the data in the second level of memory units to improve the data layout locality such that data which is accessed closer together in time is also brought closer together in the layout than in the original code.