У меня cuda 10.1 , cudnn 7.5.0 , gpu равно nvidia 940mx .
CHECK_CUDNN_ERROR(cudnnCreateConvolutionDescriptor(&convolutionDescriptor_));
CHECK_CUDNN_ERROR(cudnnSetConvolution2dDescriptor(convolutionDescriptor_,
benchmarkInput.pad_h,
benchmarkInput.pad_w,
benchmarkInput.stride_h,
benchmarkInput.stride_w,
1,
1,
CUDNN_CONVOLUTION,
dataType));
cudnnSetConvolution2dDescriptor не работает с форматами данных int8, uint8, int32, int8x4, int8x32, uint8x4 и выбрасывает CUDNN_STATUS_BAD_PARAM .Но с float , half float , double работает правильно.
Я посмотрел документацию и там говорится о недопустимых значениях заполнения, шага, расширение и режим.Но это не источник проблемы.
Может быть, cudnn 7.5.0 не поддерживает форматы int8 и т.д.?
Полный код здесь
Входные значения сверток:
//W H C N K S(filter_W) R(filter_H) pad_w pad_h stride_w stride_h out_w out_h input_stride_w input_stride_h filter_stride_w filter_stride_h
56 56 256 16 64 1 1 0 0 1 1 56 56 1 1 1 1
56 56 256 32 64 1 1 0 0 1 1 56 56 1 1 1 1
56 56 256 64 64 1 1 0 0 1 1 56 56 1 1 1 1
56 56 256 16 128 1 1 0 0 1 1 56 56 1 1 1 1
56 56 256 32 128 1 1 0 0 1 1 56 56 1 1 1 1
56 56 256 64 128 1 1 0 0 1 1 56 56 1 1 1 1