SIMD Stencil Code Vector Register Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for performing matrix calculations using Single Instruction Multiple Data (SIMD) operations are inefficient in utilizing vector registers for stencil codes, leading to suboptimal processing of stencil operations in scientific applications such as seismic imaging and finite difference schemes.

Innovation Solution

The method involves loading stencil coefficients and data values into vector registers, using SIMD instructions to perform matrix-vector multiplication efficiently by accumulating products in result registers and reusing them for subsequent calculations, optimizing the use of vector registers to process stencil operations in a computing environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional methods are used for performing matrix calculations with SIMD operations, then the implementation is simpler, but the processing efficiency of stencil operations is suboptimal

Engineering Contradiction:
Improveprocessing efficiency of stencil operationsVSAvoidcomplexity of vector register utilization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the stencil operation into distinct phases: loading stencil coefficients into vector registers, loading data values into vector registers, performing SIMD multiplications, and accumulating results. This segmentation allows each phase to be optimized independently, improving overall processing efficiency while managing complexity through structured organization of the computation pipeline.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-loading stencil coefficients and data values into vector registers before the actual computation. This preliminary loading and organization of data in vector registers enables subsequent SIMD operations to execute efficiently without memory access bottlenecks, thereby improving productivity during the critical computation phase.

Inventive Principle:
Principle #10Preliminary action

2Speed

If vector registers are not optimized for stencil codes, then the implementation is easier, but the speed of stencil code operations is reduced

Engineering Contradiction:
Improvespeed of stencil code operationsVSAvoidcomplexity of vector register management
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent makes vector registers serve multiple functions: storing stencil coefficients, storing data values, and accumulating computation results. By configuring vector registers to handle these different roles within the stencil operation pipeline, the system achieves higher speeds through efficient data reuse and reduced memory accesses, while the multi-functionality is managed through careful register allocation and management.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent ensures continuity of useful action by maintaining data in vector registers throughout the computation process. Instead of repeatedly accessing memory, the stencil coefficients and data values remain in vector registers, allowing continuous SIMD operations to execute without interruption. This continuous computation in vector registers significantly improves the speed of stencil code operations.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If SIMD instructions are not effectively utilized, then the implementation is simpler, but the efficiency of matrix calculations is suboptimal

Engineering Contradiction:
Improveefficiency of matrix calculationsVSAvoidcomplexity of SIMD instruction implementation
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple scalar operations into single SIMD vector operations. By combining the multiplication of stencil coefficients with data values and the accumulation of results into unified SIMD instructions operating on vector registers, the system achieves higher efficiency through parallel processing of multiple data elements simultaneously, while managing the complexity through systematic instruction sequencing.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9910826B2SIMD implementation of stencil codes
Publication Date: 2018.03.06 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9910826B2 patent drawing
  • US9910826B2 patent drawing
  • US9910826B2 patent drawing

AI summary

Implementing a 1D stencil code via SIMD instructions on a computer with vector registers having N processing elements (PEs), among them a set of coefficient vector registers, a set of at most N data vector registers, and a set of result vector registers. The M stencil coefficients are loaded in a particular pattern into M+N−1 coefficient vector registers. Successive sets of N consecutive data values are received, and each data value of a set is loaded into all PEs of a data vector register of the set of data vector registers. The result vector registers accumulate sums of products of consecutive coefficient vector registers with corresponding data vector registers. The contents of any result vector register containing a sum of all coefficient vector register-data vector register products is output, and the result vector register is reused for accumulating.