Multiple-Cache Parallel Computing for GPU Block Matching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current parallel processing methods using GPUs face inefficiencies in handling complex tasks like block matching due to data access overlaps, increased latency, and complexity in handling large images, which require mixed host and device code for recursive processing.
Innovation Solution
A method for multiple-cache parallel computing that executes threads across multiple caches, allowing for thread folding and parallel execution of remaining threads, reducing execution time and optimizing workload distribution across multiple caches.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple threads access the same memory address in parallel for block matching, then processing can be parallelized, but data access overlaps occur which increase latency
Solution Approach 1:
The patent divides the image processing task into multiple independent blocks that can be processed in parallel without memory access conflicts. Each thread block processes a distinct region of the image, eliminating data access overlaps while maintaining parallel processing capability. This segmentation allows full utilization of GPU parallelism without the latency penalties of synchronized memory access.
2Area of stationary object
If the image size increases to cover large areas, then more data can be processed, but the program requires mixed host and device code for recursive processing which increases complexity
Solution Approach 1:
The patent handles large images by introducing a block-level parallelism dimension in addition to the pixel-level parallelism. Instead of recursively processing large images through mixed host-device code, the solution processes multiple image blocks simultaneously on the GPU device, each block containing multiple pixels. This dimensional approach allows the entire large image to be processed in a single kernel launch without recursive complexity.
3Ease of manufacture
If a simple grid approach is used where each thread processes a single data element, then implementation is simple, but it cannot efficiently handle complex problems involving neighboring pixels and reduction
Solution Approach 1:
The patent merges the simplicity of the grid approach with the capability to handle complex operations by combining pixel-level parallelism within blocks and block-level parallelism across the image. Each thread within a block can efficiently access neighboring pixels through shared memory, and reduction operations are performed within each block before writing results. This merged approach maintains implementation simplicity while achieving the versatility needed for complex image processing tasks.
Data Source
AI summary
In accordance with an aspect of the present invention, a method and system for parallel computing is provided, that reduces the time necessary for the execution of program function. In order to reduce the time needed to execute aspects of a program, multiple program threads are executed simultaneously, while thread 0 of the program is also executed. These threads are executed simultaneously with the aid of at least one cache of the computing device on which the program is being run. Such a framework reduces wasted computing power and the time necessary to execute aspects of a program.


