GPU Data Path for Packed Pixel Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current GPU architectures waste processing cycles and register space when handling 16-bit or 8-bit video and pixel data, as these operations are inefficiently processed on 32-bit integer data paths, leading to suboptimal performance due to the need for extraction and alignment operations.

Innovation Solution

A method is introduced where video data processing within a GPU involves receiving instructions, extracting source operands according to a specified pattern, configuring arithmetic logic units based on operand sizes, and performing operations to generate intermediate results, thereby directly utilizing downstream processing capabilities without the need for conversion to 32-bit operands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If 16-bit or 8-bit video and pixel data is processed on 32-bit integer data paths, then the GPU can perform integer operations, but processing cycles are wasted and register space is wasted due to extraction operations

Engineering Contradiction:
Improvevideo data processing efficiencyVSAvoidprocessing cycles
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the data path into specialized video processing units that handle 16-bit and 8-bit video and pixel data separately from the general-purpose 32-bit integer data path. This segmentation allows video data to be processed in its native format without extraction, eliminating wasted processing cycles while maintaining the existing integer operation capabilities for other workloads.

Inventive Principle:
Principle #1Segmentation

2Productivity

If 16-bit or 8-bit video and pixel data is processed on 32-bit integer data paths, then integer operations can be performed, but register space is wasted due to extraction operations

Engineering Contradiction:
Improvevideo data processing efficiencyVSAvoidregister space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent creates dedicated video processing data paths with their own register files optimized for 16-bit and 8-bit data formats. This segmentation prevents the waste of 32-bit register space on smaller data types, as video data can be stored and processed in appropriately-sized registers, freeing up 32-bit registers for other purposes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension to the data path architecture by introducing parallel video processing paths alongside the existing integer data path. This dimensional addition allows video data to be processed in its native format without forcing conversion to 32-bit, thereby preserving register space while maintaining processing capability.

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

3Adaptability or versatility

If video and pixel data is not aligned for SIMD-style processing, then data can be stored flexibly, but the 32-bit integer data paths are not used efficiently

Engineering Contradiction:
Improvedata storage flexibilityVSAvoiddata path utilization efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the processing architecture into video-specific units that handle unaligned data natively, while the 32-bit integer data paths remain optimized for aligned SIMD operations. This segmentation allows video data with flexible alignment to be processed efficiently without compromising the performance of the integer data paths, as each path is optimized for its intended data type and alignment requirements.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9665969B1Data path and instruction set for packed pixel operations for video processing
Publication Date: 2017.05.30 NVIDIA CORP
  • US9665969B1 patent drawing
  • US9665969B1 patent drawing
  • US9665969B1 patent drawing

AI summary

One embodiment of the present invention discloses a method for processing video data within a video data processing path of a processing unit. The video data processing path includes three stages. In the first stage, source operands are extracted from a local register file and are ordered to map efficiently onto the downstream data path. In the second stage, arithmetic operations are performed on the source operands based on video processing instructions to generate intermediate results. In the third stage, additional operations are performed on the intermediate results based on the video processing instructions. In some embodiment, the intermediate results are combined with additional operands retrieved from the local register file.