KhronosGroup / KhronosGroup/OpenCL-Docs

cl_ext_float_atomics: required minimum capabilities

Open
#884 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.