OpenCL Arithmetic Control Pipelining Private Memory Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The challenge in OpenCL devices is the difficulty in achieving high performance and portability of user code due to variations in memory capacity, access speed, and cache control among different devices, leading to complex code development and reduced legibility.
Innovation Solution
An arithmetic control method that acquires and stores attribute groups for read and write blocks, determining transfer methods based on these attributes and device configuration, and performs pipelining control to optimize data transfer and processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If user code is developed to achieve high performance on specific OpenCL devices, then processing performance is improved, but code portability deteriorates due to device variations in memory capacity, access speed, and cache control
Solution Approach 1:
The patent introduces an intermediary layer between the user code and the actual device hardware. This intermediary manages the variations in memory capacity, access speed, and cache control by providing a standardized interface that abstracts away device-specific details, thereby enabling portable code while maintaining high performance
Solution Approach 2:
The patent dynamically adjusts memory access parameters such as transfer methods and cache control strategies based on actual device characteristics. By changing these parameters at runtime rather than hardcoding them, the system achieves both portability and optimization for specific devices
2Adaptability or versatility
If complex code development is undertaken to handle device variations, then adaptability is improved, but code legibility and ease of development deteriorate
Solution Approach 1:
The patent segments the complex device adaptation logic into separate, manageable components. By dividing the codebase into modular sections that handle different aspects of device variation (memory capacity, access speed, cache control), the system maintains high adaptability while improving code legibility and ease of development
3Productivity
If manual optimization of data transfer is implemented, then processing efficiency is improved, but device complexity and development burden increase
Solution Approach 1:
The patent implements self-service mechanisms where the system automatically optimizes data transfer based on device characteristics and workload patterns. Rather than requiring manual optimization, the system monitors performance and adjusts transfer methods, cache control, and memory access strategies autonomously, thereby improving efficiency while reducing code complexity
Data Source
AI summary
When executing a first kernel and a second kernel related to each other by the arithmetic unit, if an allocation attribute of a continuous write block of the first kernel and an allocation attribute of a continuous read block corresponding to the continuous write block of the second kernel are the same, a scenario determination unit executes the first kernel and the second kernel in a pipeline by using the continuous write block for execution of the second kernel through the private memory or the local memory without transferring it to the global memory. At this time, the scenario determination unit logically adds a margin attribute and a dependence attribute of the continuous read block of the second kernel respectively to a margin attribute and a dependence attribute set for the read block for each of the read block of the first kernel.


