You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Create this issue based on the discussion on denorm of vstore_half in our weekly meeting. The current OpenCL spec allows FP16/FP32 denorm support to be specified via the clGetDeviceInfo call using CL_DEVICE_HALF_FP_CONFIG/CL_DEVICE_SINGLE_FP_CONFIG. A bit field for CL_FP_DENORM is used to tell whether denorms are supported for FP32/FP16. We need to specify what "support" really means: denorm can be from arithmetic or conversion. One discrepancy is the function like vstore_half: its conversion from float to half requires denorm to be preserved, regardless of the device's denorm handling capability.
We can add words in spec to say conversion is supported regardless the device's denorm capability.
We can also differentiate conversion vs arithmetic denorm capability, which will require new tests and sounds too much
Copy the reply from Ben:
We should be a little careful here, since I think there are multiple types of "conversions":
There are the vstore_half and vload_half functions, which involve float <-> half conversions, and are currently specified to NOT allow flushing denorms to zero.
There are conversion rules for images. These are allowed to flush denorms to zero, at least for float -> half and float <-> float, though I'm not sure about half -> float.
Moved this topic from Gitlab to Github:
Original post on this topic at Gitlab:
Copy the reply from Ben:
We should be a little careful here, since I think there are multiple types of "conversions":
Reference: https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_C.html#explicit-conversions
Related? https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_C.html#edge-case-behavior-in-flush-to-zero-mode
The text was updated successfully, but these errors were encountered: