Macros disabling half-precision functionality - how to use them?

The CUDA headers have three (at least) macros for disabling half-precision definitions:

  • CUDA_NO_HALF
  • __CUDA_NO_HALF_OPERATORS__
  • __CUDA_NO_HALF_CONVERSIONS__

Is there some documentation or guidelines on the rationale for these, which of them one should use and when, etc? The official documentation doesn’t seem to mention these. And - they don’t seem to remove all half-precision related definitions, just some of them.

  • I’m not aware of any documentation for them.
  • They appear to be associated with helping people to resolve clashes with other toolchains/stacks.
  • I don’t expect they are intended (or needed) for general usage.
  • You can always file a bug to request changes to CUDA documentation.