question about cudnnSetConvolution2dDescriptor

I’m using Caffe on windows7 and with VS2015 and CUDA 8. It wasn’t too bad getting it to build but there where issues. One weird issue I had was with this line (in cudnn.hpp). :
CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv, pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION));

When I compiled I got an error indicating that the function takes 9 parameters but it’s only being called with 8. After some experimentation I added:

cudnnDataType_t::CUDNN_DATA_FLOAT

as the last parameter in the call and it seems to work. I assume this must be a new parameter which indicates the data type for the convolution layer? (I’m completely guessing here).

After this change Caffe compiled and ran fine and the Caffe example programs seem to work correctly. I’m just wondering if anyone knows for sure what is going on here? I assume it’s some incompatibility issue between the versions of CUDA,CUBLAS, CUDNN and Caffe but Nvidia’s documentation is not at all clear (I couldn’t find any in fact)

It’s true. The new header adds one more parameter and breaks the compiling.