Surface Interleaving for GPU Memory Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing unit (GPU) memory allocation techniques are inefficient, particularly for sparse textures, due to limited local memory and high latency when accessing system memory, leading to memory waste and reduced throughput in rendering complex graphics scenes.

Innovation Solution

A method for allocating memory that involves receiving surface data, computing a 'bloat' based on surface state data, and mapping surfaces to a virtual address space to optimize physical memory allocation across multiple surfaces with varying allocation patterns, sizes, and shapes, allowing for flexible and efficient use of memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of substance

If the page size is reduced to allocate physical memory, then memory efficiency for sparse textures is improved, but the likelihood of TLB misses increases and overall memory efficiency decreases

Engineering Contradiction:
Improvememory wasteVSAvoidmemory efficiency
Core Design Contradiction:
Loss of substanceVSReliability

Solution Approach 1:

The patent divides the texture data into multiple surfaces, where each surface represents a portion of the texture data. This segmentation allows the system to manage and allocate memory for each surface independently, enabling more efficient use of physical memory by only allocating space for actual data rather than entire fixed-size pages.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of surface interleaving, where multiple surfaces are interleaved in the virtual address space. This allows the system to map multiple surfaces to the same physical memory region, reducing the total amount of physical memory required while maintaining virtual memory addressing efficiency and minimizing TLB misses.

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

2Loss of substance

If multiple surfaces are mapped to the same physical memory region, then memory efficiency is improved, but address conflicts may occur

Engineering Contradiction:
Improvememory wasteVSAvoidaddress mapping complexity
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The patent applies local quality by assigning different interleaving factors to different surfaces. Each surface can have its own interleaving factor that determines how it is mapped to physical memory. This allows the system to optimize the mapping for each surface individually while maintaining overall memory efficiency and avoiding address conflicts.

Inventive Principle:
Principle #3Local quality

3Productivity

If surfaces are interleaved in virtual address space, then physical memory allocation is optimized, but the complexity of address translation increases

Engineering Contradiction:
Improverendering throughputVSAvoidaddress translation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary actions by pre-calculating and storing the interleaved virtual addresses for each surface in the virtual address space. This pre-computation of addresses allows the system to efficiently translate virtual addresses to physical addresses during rendering operations, reducing the complexity of real-time address translation while maintaining optimized memory allocation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9355430B2Techniques for interleaving surfaces
Publication Date: 2016.05.31 NVIDIA CORP
  • US9355430B2 patent drawing
  • US9355430B2 patent drawing
  • US9355430B2 patent drawing

AI summary

One embodiment sets forth a method for allocating memory to surfaces. A software application specifies surface data, including interleaving state data. Based on the interleaving state data, a surface access unit bloats addressees derived from discrete coordinates associated with the surface, creating a bloated virtual address space with a predictable pattern of addresses that do not correspond to data. Advantageously, by creating predictable regions of addresses that do not correspond to data, the software application program may configure the surface to share physical memory space with one or more other surfaces. In particular, the software application may map the virtual address space together with one or more virtual address spaces corresponding to complementary data patterns to the same physical base address. And, by overlapping the virtual address spaces onto the same pages in physical address space, the physical memory may be more densely packed than by using prior-art allocation techniques.