Vector Atomic Memory Operations for Unsupported Data Lengths

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current vector computers are limited in handling data lengths other than 32 and 64 bits, requiring scalar mode for operations on 8 or 16 bit data, which restricts the efficiency of vector processing due to issues like false conflicts when smaller data words are packed into larger vector hardware supported data words.

Innovation Solution

The introduction of vector atomic memory operations (VAMO) instructions that allow for atomic operations on multiple memory locations simultaneously, enabling vectorization of scalar loops and handling of unsupported data lengths by using strided and indexed vectors, and additional decode logic to manage these operations efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If scalar mode is used for operations on 8 or 16 bit data, then data length compatibility is achieved, but processing efficiency deteriorates

Engineering Contradiction:
Improvedata length compatibilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments a 64-bit vector register into multiple smaller data elements (e.g., eight 8-bit elements or four 16-bit elements). This allows the vector hardware to process multiple small data elements simultaneously in parallel, achieving both data length compatibility and high processing efficiency that would otherwise require scalar mode

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of data organization by packing multiple small data elements into a single vector register element and using bitwise operations to manipulate individual elements within the packed structure. This dimensional transformation enables small data element processing through vector hardware without requiring scalar mode

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If smaller data words are packed into larger vector hardware supported data words, then vector processing capability is utilized, but false conflicts occur

Engineering Contradiction:
Improvevector processing capabilityVSAvoidfalse conflicts
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies local quality by using separate mask registers for different data elements within the same vector register. Each mask register controls access to specific elements independently, allowing precise control over which packed elements are read or written, thereby preventing false conflicts between simultaneous operations on different elements

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent introduces mask registers as intermediary control structures between the vector operations and the packed data elements. These masks act as mediators that selectively enable or disable access to specific elements, preventing false conflicts by ensuring that only authorized elements are accessed during simultaneous operations

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If vector hardware supports only 32 and 64 bit data, then hardware complexity is reduced, but adaptability to different data lengths deteriorates

Engineering Contradiction:
Improvehardware complexityVSAvoidsupport for different data lengths
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent makes the existing 32/64-bit vector hardware universal by implementing software-based packing and unpacking mechanisms that allow the same hardware to process multiple data lengths (8-bit, 16-bit, 32-bit, 64-bit). The vector register can universally hold any data type by appropriate packing, eliminating the need for separate hardware paths for each data length

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

Data Source

PatentUS8826252B2Using vector atomic memory operation to handle data of different lengths
Publication Date: 2014.09.02 CRAY INC
  • US8826252B2 patent drawing
  • US8826252B2 patent drawing
  • US8826252B2 patent drawing

AI summary

A system and method of compiling program code, wherein the program code includes an operation on an array of data elements stored in memory of a computer system. The program code is scanned for an equation which operates on data of lengths other than the limited number of vector supported data lengths. The equation is then replaced with vectorized machine executable code, wherein the machine executable code comprises a nested loop and wherein the nested loop comprises an exterior loop and a virtual interior loop. The exterior loop decomposes the equation into a plurality of loops of length N, wherein N is an integer greater than one. The virtual interior loop executes vector operations corresponding to the N length loop to form a result vector of length N, wherein the virtual interior loop includes one or more vector atomic memory operation (AMO) instructions, used to resolve false conflicts.