GPU Data Sharing and Prefetching for Multi-Tile Geometry Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies in data access and sharing, particularly in multi-tile architectures where geometry data is distributed across tiles, leading to performance bottlenecks.

Innovation Solution

The implementation of page sharing across GPU sockets, page faulting avoidance, and software-assisted hardware prefetching to enhance data access and sharing efficiency in graphics processing units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If geometry data is distributed across tiles in multi-tile architecture, then processing parallelism is improved, but data access latency increases due to inefficient data sharing between tiles

Engineering Contradiction:
Improveprocessing parallelismVSAvoiddata access latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges data storage across tiles by implementing a unified page sharing mechanism. Multiple tiles can access the same data pages through a shared address space, eliminating the need for each tile to maintain separate copies of geometry data. This combining approach maintains processing parallelism while reducing data access latency through efficient shared access.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a page sharing mechanism as an intermediary between tiles and memory. This mediator layer manages data pages that can be shared across multiple tiles, providing efficient data access without requiring direct tile-to-tile communication or repeated memory accesses. The page sharing infrastructure acts as a buffer that reduces access latency while maintaining distributed processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If conventional data access methods are used in multi-tile graphics processors, then device complexity is reduced, but rendering performance deteriorates due to bottlenecks in data access and sharing

Engineering Contradiction:
Improverendering performanceVSAvoiddata access mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a universal page sharing mechanism that serves multiple functions: data storage, data sharing, address translation, and memory management. This multi-functional approach improves rendering performance by providing efficient data access while avoiding the need for separate specialized mechanisms for each function, thereby controlling device complexity through consolidation rather than proliferation of components.

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

3Productivity

If page sharing across GPU sockets is implemented, then data sharing efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvedata sharing efficiencyVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the memory management system into manageable components: page tables, page directories, and translation lookaside buffers (TLBs). This segmentation allows complex page sharing across GPU sockets to be implemented through modular, independent structures that can be managed separately. Each segment handles a specific aspect of address translation, reducing overall system complexity while maintaining efficient data sharing through coordinated operation of these segmented components.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250173308A1Graphics processor data access and sharing
Publication Date: 2025.05.29 INTEL CORP
  • US20250173308A1 patent drawing
  • US20250173308A1 patent drawing
  • US20250173308A1 patent drawing

AI summary

Embodiments are generally directed to graphics processor data access and sharing. An embodiment of an apparatus includes a circuit element to produce a result in processing of an application; a load-store unit to receive the result and generate pre-fetch information for a cache utilizing the result; and a prefetch generator to produce prefetch addresses based at least in part on the pre-fetch information; wherein the load-store unit is to receive software assistance for prefetching, and wherein generation of the pre-fetch information is based at least in part on the software assistance.