Work-Item Coalescing Loops for OpenCL Context Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for executing OpenCL kernel code on devices with a limited number of processing elements incur significant overhead due to context switching and inefficient use of processing resources, as they require serial execution of multiple work-items on a single processing element.

Innovation Solution

The method involves identifying code regions in OpenCL kernel code that contain synchronization barriers and enclosing them with work-item coalescing loops (WCLs), which allows for serial execution of work-items on fewer processing elements, reducing context switching overhead and optimizing resource utilization by expanding private variables and managing memory allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If work-items are executed serially on a single processing element, then context switching overhead is reduced, but processing resource utilization becomes inefficient

Engineering Contradiction:
Improvecontext switching overheadVSAvoidprocessing resource utilization
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent segments the execution of work-items by introducing work-item coalescing loops that group multiple work-items into serial execution sequences. This segmentation allows the system to execute work-items in organized groups rather than individually, reducing context switching overhead while maintaining efficient resource utilization through structured processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple work-items into coalesced execution sequences by enclosing code regions with work-item coalescing loops. This combining approach allows multiple work-items to be processed together in a coordinated manner, reducing the frequency of context switching while maintaining parallel processing benefits.

Inventive Principle:
Principle #5Merging (Combining)

2Speed

If work-items are executed in parallel on multiple processing elements, then processing speed is improved, but context switching overhead increases

Engineering Contradiction:
Improveprocessing speedVSAvoidcontext switching overhead
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent introduces dynamic work-item coalescing loops that can adaptively group work-items based on execution requirements. These loops dynamically adjust the execution strategy by coalescing work-items into serial sequences when necessary, thereby reducing context switching overhead while maintaining parallel processing speed when beneficial.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the execution parameters by introducing work-item coalescing loops that modify how work-items are scheduled and executed. This parameter change allows the system to switch between parallel and serial execution modes based on the specific requirements of the code regions, optimizing the balance between processing speed and context switching overhead.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If private variables are expanded to include work-item dimensions, then variable scope and accessibility are improved, but memory allocation requirements increase

Engineering Contradiction:
Improvevariable scope and accessibilityVSAvoidmemory allocation
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent expands private variables by adding work-item dimension indices to their scope. This dimensional expansion allows variables to be accessed and modified across multiple work-items in a structured manner, improving adaptability and versatility while enabling systematic memory management through the additional dimension of work-item identification.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9015683B2Method and apparatus for transforming program code
Publication Date: 2015.04.21 SAMSUNG ELECTRONICS CO LTD
  • US9015683B2 patent drawing
  • US9015683B2 patent drawing
  • US9015683B2 patent drawing

AI summary

Provided is a method of transforming program code written such that a plurality of work-items are allocated respectively to and concurrently executed on a plurality of processing elements included in a computing unit. A program code translator may identify, in the program code, two or more code regions, which are to be enclosed by work-item coalescing loops (WCLs), based on a synchronization barrier function contained in the program code, such that the work-items are serially executable on a smaller number of processing elements than a number of the processing elements, and may enclose the identified code regions with the WCLs, respectively.