Pipeline Indirection for Compressed Graph List Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems face performance overheads when accessing compressed sparse matrices in CSR format due to the need for multiple memory accesses and round-trip latencies in graph applications, which hinders efficient processing of indirect loads and stores.

Innovation Solution

A pipeline indirection system that combines multiple operations into a single instruction, allowing for remote address computation and eliminating round-trip latencies by using op-engines to compute and access data locations efficiently within a compressed graphic list.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple memory accesses are performed to access compressed sparse matrices in CSR format, then data can be retrieved from memory, but performance overhead increases due to multiple read operations and round-trip latencies

Engineering Contradiction:
Improvedata retrieval accuracyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple separate memory access operations into a single unified indirect load instruction. Instead of performing separate reads for neighbor index lookup and value retrieval, the system executes one instruction that handles the entire indirection sequence, reducing memory access overhead and improving processing throughput for graph applications

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system pre-loads neighbor index data into register files before execution, and uses pipeline stages to prepare address computation in advance. By performing preliminary actions such as pre-fetching index data and pre-computing addresses in pipeline stages, the system reduces the critical path latency for indirect memory accesses

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If indirect load and store operations are supported with multiple memory accesses, then data can be accessed through neighbor indices, but latency per operation increases

Engineering Contradiction:
Improveindirect access capabilityVSAvoidoperation latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the indirect access operation into distinct pipeline stages: neighbor index read, address computation, and data load/store. By dividing the operation into manageable segments that can be processed in parallel pipeline stages, the system maintains versatile indirect access capability while reducing the time each segment takes to complete

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces intermediary register files and pipeline buffers between the neighbor index and final data access. These intermediaries hold pre-fetched index data and computed addresses, allowing the main execution pipeline to proceed without waiting for slow memory accesses, thereby reducing overall operation latency

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If separate instructions are used for each memory access operation, then each operation can be executed independently, but code efficiency decreases

Engineering Contradiction:
Improveoperation independenceVSAvoidcode efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent merges multiple independent memory access operations into a single compound indirect load/store instruction. This unified instruction handles the entire sequence of neighbor index lookup, address computation, and data access in one operation, improving code efficiency by reducing instruction count and execution overhead while maintaining operational independence through internal pipeline processing

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3796158B1Systems and methods for isa support for indirect loads and stores for efficiently accessing compressed lists in graph applications
Publication Date: 2022.11.16 INTEL CORP
  • EP3796158B1 patent drawingFigure 1
  • EP3796158B1 patent drawingFigure 2
  • EP3796158B1 patent drawingFigure 3

AI summary

Disclosed embodiments relate to systems and methods for performing instructions to access a compressed graphic list. In one example, a processor includes fetch and decode circuitry to fetch and decode the single instruction to access the compressed graphic list, and execution circuitry to execute the decoded single instruction to cause access to the compressed graphic list by: receiving, from a load store queue, at a first op-engine associated with a first data location, an indirection request, computing, via the first op-engine, a second data location associated with a second op-engine, computing, via the second op-engine, a third data location associated with a third op-engine responsive to the indirection request, and providing, via the third op-engine, a data response to the load store queue responsive to receiving data from the third data location.