CPU-GPU VM Processing for Easier GPGPU Parallel Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
General-purpose GPUs (GPGPUs) require complex APIs that are difficult for non-experts to use, limiting their accessibility and applicability beyond image processing tasks.
Innovation Solution
A processing system that includes a CPU and GPU, where the CPU determines parallel processing capabilities and divides data for the GPU to execute, hiding the complexity of conventional APIs, allowing easier utilization of GPGPUs for various tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If GPGPU is used for general-purpose processing, then processing capability and productivity are improved, but device complexity and difficulty of operation increase due to complex APIs
Solution Approach 1:
The patent introduces a translation layer that acts as an intermediary between the high-level programming language and the low-level GPGPU APIs. This translation layer automatically converts high-level parallel processing instructions into the complex API calls required by GPGPU, shielding users from API complexity while enabling GPGPU's powerful processing capabilities.
Solution Approach 2:
The patent creates a universal high-level programming language interface that can handle multiple types of parallel processing operations (data-parallel, task-parallel, etc.) through a single unified syntax. This universal interface works across different GPGPU architectures and programming models, simplifying the user experience while maintaining access to diverse processing capabilities.
2Manufacturing precision
If specialized technical expertise is required to use GPGPU, then processing precision and control are improved, but adaptability and ease of manufacture deteriorate due to restricted adoption
Solution Approach 1:
The patent employs automatic translation and code generation techniques that create temporary, purpose-specific code bridges between high-level instructions and GPGPU APIs. These translation layers are automatically generated for each processing task and discarded afterward, eliminating the need for users to invest in long-term specialized knowledge while maintaining precise processing control.
Solution Approach 2:
The translation layer automatically performs the complex task of converting high-level parallel processing instructions into optimized GPGPU code without requiring user intervention or expertise. The system self-adapts to different processing requirements, automatically selecting appropriate parallelization strategies and generating the necessary API calls, thereby making GPGPU accessible to users without specialized training.
Data Source
AI summary
Provided is a processing unit including a parallel processing determination unit configured to determine whether parallel processing is to be performed on at least some of processing target data, a VM execution control unit configured to cause each of a plurality of cores included in a parallel processing execution unit to execute a VM when the parallel processing determination unit determines that the parallel processing is to be performed, a storage control unit configured to divide at least some of the processing target data into partial data that can be processed in parallel and to cause a memory of the parallel processing execution unit to store the partial data, and a processing result obtaining unit configured to obtain a plurality of processing results of the partial data processed by VMs of the plurality of cores from the parallel processing execution unit.


