[Quantization] Problem with implementing quantized_depthwise_conv


#1

Hi guys:
I am new to MXNet and trying to add support for quantized_depthwise_convolution by calling cuDNN. According to cuDNN documentation, I should be able to do so by setting GroupCount > 1 using cudnnSetConvolutionGroupCount().

Here’s what I have done:

And I got CUDNN_STATUS_NOT_SUPPORTED error:

python test_quantized_depthwise_conv.py
[12:07:04] src/operator/nn/./cudnn/./cudnn_algoreg-inl.h:107: Running performance tests to find the best convolution algorithm, this can take a while... (setting env variable MXNET_CUDNN_AUTOTUNE_DEFAULT to 0 to disable)
Traceback (most recent call last):
  File "test_quantized_depthwise_conv.py", line 75, in <module>
    pad=(0, 0), stride=(1, 1), layout='NCHW', repeats=20, num_group=64)
  File "test_quantized_depthwise_conv.py", line 61, in benchmark_convolution
    grad_req='null', typ='forward') * 1000
  File "/root/workspace/incubator-mxnet/python/mxnet/test_utils.py", line 1193, in check_speed
    output.wait_to_read()
  File "/root/workspace/incubator-mxnet/python/mxnet/ndarray/ndarray.py", line 1720, in wait_to_read
    check_call(_LIB.MXNDArrayWaitToRead(self.handle))
  File "/root/workspace/incubator-mxnet/python/mxnet/base.py", line 210, in check_call
    raise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: [12:07:04] src/operator/quantization/quantized_conv.cu:251: Check failed: e == CUDNN_STATUS_SUCCESS (9 vs. 0) cuDNN: CUDNN_STATUS_NOT_SUPPORTED

Here’s my environment:

OS: ubuntu 16.04
GPU: TitanXp
CUDA: 9.0
cuDNN: 7.1.3

It’s my first time using cuDNN and I have no idea what I’m doing wrong…
Any comment would be appreciated!