CNN Shader Processing Using Texture Arrays on GPUs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Processing convolutional neural network operations is time-consuming, and existing parallelization methods are limited by the use of one-dimensional weights and buffers.
Innovation Solution
Formatting layers of a convolutional neural network as shaders and processing input information as an array of textures, allowing for efficient processing using graphics processing units, which enables faster computation by applying shaders to the textures and storing results in graphics processing unit memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional one-dimensional weights and buffers are used for parallelizing convolutional neural network operations, then some parallelization is achieved, but the processing speed is limited and time-consuming
Solution Approach 1:
The patent applies texture arrays instead of traditional one-dimensional buffers, utilizing multi-dimensional texture storage formats (2D, 3D, or 4D arrays) to organize weights and input data. This dimensional transformation enables GPUs to leverage their inherent parallel architecture more effectively, allowing simultaneous processing across multiple channels and spatial dimensions, thereby significantly improving processing speed and reducing computation time.
Solution Approach 2:
The patent replaces traditional CPU-based sequential processing with GPU-based parallel processing. By formatting convolutional layers as shaders and data as textures, the system leverages the GPU's massively parallel architecture, which can execute thousands of threads simultaneously, substituting the mechanical sequential execution model with a parallel computational model that dramatically accelerates convolution operations.
2Productivity
If parallelization is increased to improve processing speed, then computation time decreases, but system complexity increases
Solution Approach 1:
The patent uses a unified texture array format that can represent weights, biases, and input data across different convolutional layers and operations. This multi-functional approach allows the same GPU shader code and texture binding mechanism to handle various CNN operations (convolution, pooling, activation), reducing the need for separate processing paths and lowering overall system complexity despite high parallelization.
Solution Approach 2:
The patent changes the data representation parameters by using normalized floating-point values in texture arrays instead of integer formats, and by organizing data in channel-first or channel-last conventions. These parameter changes enable more efficient parallel computation on GPUs while maintaining compatibility with standard CNN architectures, balancing computational speed with implementation simplicity.
Data Source
AI summary
Convolutional neural network information may define a convolutional neural network including layers. The layers may define operations on an input to the convolutional neural network. The layers in the convolutional neural network information may be formatted as shaders. Input information defining the input to the convolutional neural network may be accessed. The input information may be formatted as an array of textures. The shaders may be applied to the textures to effectuate processing the input to the convolutional neural network through the layers of the convolutional neural network. One or more results may be obtained from applying the shaders to the array of textures.


