cuDNN How to correctly use CUDNN_DATA_INT8x4

Hi all, I am trying to use CUDNN_DATA_INT8x4/CUDNN_TENSOR_NCHW_VECT_C to perform a cudnn convolution on RGB 8bit per channel images. There are several things I am confused about.

The per channel data type is INT8 which is signed ±127, but image samples are unsigned 0 - 255??
Is the unsigned data type ignored? Or are we supposed to scale the values 0 - 127?
These both seem unreasonable.

The next problem is with the convolution INT8x4_CONFIG and INT8x4_EXT_CONFIG.
The input data xDesc is of type CUDNN_DATA_INT8x4 (fine), however the filter weights wDesc must also be CUDNN_DATA_INT8x4.

How are we supposed to initialize the filter weights when they are INT8?
Are they supposed to be signed or unsigned to match the pixel channels?

For example for Xavier initialization the weights buffer is filled with uniformly random numbers scaled into a signed ±range defined by the variance norm. This is a small range easily represented by a floating point type, what is expected with an INT8 weight type?
Do we scale the value to fit the INT8 range?

I haven’t been able to find any clear examples of how these features are intended to be used.

If someone can please clarify all this, it would be great.

Thanks, Ed

Hello,

Are you able to get the working code for INT8 convolutions ?

Thanks

Hello,

Are you able to get the working code for INT8 convolutions ?

Thanks

Still following up !!!