Thanks for the interest.
This topic gets into OpenCL extensions, both vendor specific and extensions defined in the spec up on khronos.org.
OpenCL offers optional extensions with respect to a given implementation's features. These extensions are dependent on the vendor actually offering implementation support and perhaps registering on Khronos.org. These extensions may or may not only apply on a per OpenCL standard revision basis or per vendor or per vendor device family.
In this kind of case, if we look at the OpenCL-C 1.2 reference for atomic add, we'll see a 64bit version of atomic add referenced in the OpenCL-C manual pages. It's accessible through use of the extension cl_khr_int64_base_atomics:
For use of extensions, it is required that the developer interrogate the devices capabilities to make sure kernels executed on that device are compatible with that device. See clGetDeviceInfo(...) and the CL_DEVICE_EXTENSIONS parameter:
Sidebar: It's theoretical OpenCL standard updates may make past optional extensions core... or vice versa... It's governed by a standard body that wants to reasonably adapt to the needs of developers.
I hope this addresses these issues and informs some forum viewers.