KhronosGroup / KhronosGroup/OpenCL-Docs
cl_ext_float_atomics: required minimum capabilities
- Dominant language
- Python
- Stars
- 420
- Forks
- 131
- Avg merge
- 5d 13h
- Merged PRs (30d)
- 11
Description
Currently, the cl_ext_float_atomics explicitly states that there are no mandated minimum capabilities:
https://registry.khronos.org/OpenCL/extensions/ext/cl_ext_float_atomics.html#_modifications_to_the_opencl_api_specification
This means that an implementation could theoretically advertise support for the extension but then return zero for all three capability queries (for fp16, fp32, and fp64 atomics).
This is slightly inconsistent with other parts of the spec, though. Specifically:
- This extension requires OpenCL 2.0 or newer…
- In OpenCL C 2.0 or newer, at the very least the atomic_float versions of atomic_load_explicit and atomic_store_explicit with named address spaces and a memory_scope operand must be supported…
- Additionally, in OpenCL C 2.0 or newer, atomic_double versions must be supported similarly when cl_khr_int64_base_atomics and cl_khr_int64_extended atomics are supported…
- Therefore there is a minimum requirement to support at least global loads and stores for atomic_float, and atomic_double in some cases.
Is this logic correct? If so, should we update the spec to document these required mimum capabilities (and ideally add a CTS test for it)? Or is there some other reason why we may want to have no mandated minimum capabilities for this extension?
Contributor guide
Research direction
Start with the linked cl_ext_float_atomics specification section and compare its capability-query rules with the OpenCL C 2.0 atomic_load_explicit and atomic_store_explicit requirements described here. Determine whether the stated minimum capabilities are required, then identify the corresponding spec change and CTS coverage needed to document and verify the decision.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100