KhronosGroup / KhronosGroup/OpenCL-Docs

Behavior of executing non-completing kernels

Open
#1,604 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
420
Forks
131
Avg merge
5d 13h
Merged PRs (30d)
11

Description

What is the behavior of executing non-completing kernels (from the kernel compiler point of view specifically)? Will they run forever? Must users ensure they will complete? I know the existence of watchdogs but not all implementations have them, have them enabled by default or they can be disabled. The scope of this question assumes watchdogs are disabled or absent.

Are OpenCL implementers allowed to assume that kernels will eventually complete? For example, can the execution of proven infinite loops, which possibly execute operations with visible effects outside the kernel, be considered to trigger undefined behavior and can compilers delete such loops?

We (PoCL) have encountered cases where we could optimize kernels on the condition that non-completing kernels aren’t supported.

Contributor guide

Open the contributing guide

Research direction

No file, test, or entry point is named. Start by reviewing the OpenCL documentation and the existing discussion around non-completing kernels, including watchdog assumptions and compiler optimization questions. Done means reaching and recording a clear specification position on whether such kernels must complete and what optimizations are permitted.

Written by the indexing model from the issue text.

Assessment

Domain
compilers, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.