KhronosGroup / KhronosGroup/OpenCL-Docs
Behavior of executing non-completing kernels
- 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
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