OpenCL Arithmetic Control Pipelining Private Memory Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprocessing performanceVSAvoidcode portability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvedevice adaptabilityVSAvoidcode legibility
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

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

Inventive Principle:
Principle #1Segmentation

3Productivity

If manual optimization of data transfer is implemented, then processing efficiency is improved, but device complexity and development burden increase

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcode complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9495213B2Arithmetic control apparatus, arithmetic control method, non-transitory computer readable medium storing program, and open CL device
Publication Date: 2016.11.15 RENESAS ELECTRONICS CORP
  • US9495213B2 patent drawing
  • US9495213B2 patent drawing
  • US9495213B2 patent drawing

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.