cuFFT: callbacks and half-precision?

Are callbacks supported with half-precision (CUDA_C_16F) type in cuFFT?

There’s at least one reason why it would not work (as far as I can see). The plans for cuFFTs with callbacks require specifying precision. Half precision is not among them:

typedef enum cufftXtCallbackType_t {
CUFFT_CB_LD_COMPLEX = 0x0,
CUFFT_CB_LD_COMPLEX_DOUBLE = 0x1,
CUFFT_CB_LD_REAL = 0x2,
CUFFT_CB_LD_REAL_DOUBLE = 0x3,
CUFFT_CB_ST_COMPLEX = 0x4,
CUFFT_CB_ST_COMPLEX_DOUBLE = 0x5,
CUFFT_CB_ST_REAL = 0x6,
CUFFT_CB_ST_REAL_DOUBLE = 0x7,
CUFFT_CB_UNDEFINED = 0x8
} cufftXtCallbackType;

So for example if you write a load callback, there is no valid return type to specify for the callback function (there’s no FP16 return type, there’s just cufftComplex, cufftDoubleComplex, cufftReal, cufftDoubleReal).

I’m not aware of any workarounds for this but maybe an NVIDIA person would be of more help