GPU Image Splitting for Parallel Execution Channel Utilization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics Processing Units (GPUs) often leave execution channels idle when performing single-channel operations, as they are typically configured to handle multi-channel data, leading to inefficient resource utilization.

Innovation Solution

Divide single-channel input images into multiple sub-inputs, which are then processed in parallel across the GPU's execution channels, generating a multi-channel input that includes overlapping borders to fully utilize the GPU's resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If single-channel operations are performed on a GPU configured for multi-channel processing, then the GPU can handle operations with its parallel structure, but the remaining execution channels are left idle resulting in inefficient resource utilization

Engineering Contradiction:
Improveresource utilizationVSAvoidoperation configuration
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The input image is divided into multiple sub-inputs (e.g., quadrants) that are distributed across different execution channels. Each execution channel processes a specific portion of the image independently, transforming a single-channel operation into multiple parallel single-channel operations that fully utilize all execution channels.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a spatial dimension by dividing the input image into multiple regions and assigning each region to a different execution channel. This dimensional transformation allows the GPU to process data across multiple channels simultaneously, converting a single-channel operation into a multi-dimensional parallel processing task.

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

2Productivity

If only one execution channel is used for single-channel operations, then the operation can be performed correctly, but the other execution channels remain idle reducing processing efficiency

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata division and coordination
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The input data is segmented into multiple sub-inputs that can be independently processed by different execution channels. This segmentation enables all execution channels to be utilized simultaneously for single-channel operations, improving processing efficiency without requiring complex multi-channel coordination.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs copying by creating duplicate data structures for each execution channel. Each execution channel receives a copy of the operation instructions and processes its assigned sub-input independently, allowing parallel execution without complex synchronization mechanisms.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7768516B1Image splitting to use multiple execution channels of a graphics processor to perform an operation on single-channel input
Publication Date: 2010.08.03 ADOBE INC
  • US7768516B1 patent drawing
  • US7768516B1 patent drawing
  • US7768516B1 patent drawing

AI summary

A method, system, and computer-readable storage medium are disclosed for performing an operation on single-channel input using a plurality of execution channels of a graphics processing unit (GPU). A single-channel input may be divided into a plurality of sub-inputs, wherein each of the plurality of sub-inputs comprises a portion of the single-channel input. Borders between the sub-inputs may overlap. Program instructions may be executed on the GPU to perform the operation. At least a subset of the program instructions may be executed on each of the plurality of execution channels in parallel for a corresponding one of the plurality of sub-inputs. In one embodiment, the single-channel input may comprise a single-channel input image for an image-processing operation. In one embodiment, the GPU may comprise four execution channels.