Surface Instructions for Multi-Dimensional Graphics Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Compute application programs are unable to access data stored in multi-dimensional formatted graphics surface memory due to the lack of configuration in GPU computing features to convert graphics surface memory coordinates into computing memory byte addresses and between graphics and computing data formats.

Innovation Solution

The implementation of new memory access instructions, such as surface memory load, store, reduce, and atomic instructions, allows compute application programs to access multi-dimensional formatted graphics surface memory by computing addresses based on specified coordinates and attributes, enabling access to samples stored in these surfaces.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Power

If GPU computing features are used to execute parallel compute application programs, then processing capability is improved, but the ability to access multi-dimensional formatted graphics surface memory is lost

Engineering Contradiction:
Improveprocessing capabilityVSAvoidaccess to graphics surface memory
Core Design Contradiction:
PowerVSAdaptability or versatility

Solution Approach 1:

The patent introduces surface instructions that enable the GPU computing features to perform both traditional graphics processing and compute applications. These instructions provide universal access to multi-dimensional formatted graphics surface memory, allowing compute application programs to read and write surface data directly using the same hardware architecture, thus achieving multi-functionality without requiring separate memory access paths

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

Solution Approach 2:

The patent introduces surface instructions as an intermediary mechanism between compute application programs and graphics surface memory. These instructions act as a bridge that translates compute program memory access requests into appropriate graphics surface memory accesses, enabling compute applications to interact with graphics memory without requiring direct configuration of the graphics processing pipeline

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If compute application programs directly access graphics surface memory, then processing efficiency is improved, but complexity of address conversion and format transformation is increased

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidaddress conversion and format transformation
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service by embedding the address conversion and format transformation logic within the GPU hardware itself. The surface instructions automatically handle the conversion from compute program memory addresses to graphics surface memory addresses and transform data formats as needed, eliminating the need for complex software-based address translation and format conversion mechanisms

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent utilizes parameter changes by allowing the surface instructions to dynamically adjust memory access parameters based on the graphics surface configuration. The hardware automatically modifies address calculations and data formatting parameters according to the surface's dimensions, format, and layout, simplifying the compute program while the hardware handles the parameter transformations

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9519947B2Architecture and instructions for accessing multi-dimensional formatted surface memory
Publication Date: 2016.12.13 NVIDIA CORP
  • US9519947B2 patent drawing
  • US9519947B2 patent drawing
  • US9519947B2 patent drawing

AI summary

One embodiment of the present invention sets forth a technique for a program to access multi-dimensional formatted graphics surface memory. Multi-dimensional memory objects called “surfaces” stored in a user-specified data or pixel format and arranged in a graphics optimized layout are accessed by programs using surface instructions. A set of memory access instructions e.g., load, store, reduce, and atomic, referred to as surface instructions, may be used to access the surfaces. Coordinate bounds checking is performed with configurable clamping. Caching behavior may also be specified by the surface instructions. Data format conversion and packing to a specified storage format is supported for store, reduction, and atomic surface instructions. Data format conversion and unpacking from a specified storage format is supported for loads and atomic surface instructions.