From 99d8c5ba77beebf95104c5377890e5cb669bf039 Mon Sep 17 00:00:00 2001 From: Graham Neubig Date: Mon, 26 Jun 2017 12:22:21 -0400 Subject: [PATCH] Fixed compile error on older versions of cudnn Former-commit-id: 404538662827290c190cdbae22bee291d66d7b4a --- dynet/cudnn-ops.cu | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/dynet/cudnn-ops.cu b/dynet/cudnn-ops.cu index 0618e5bee..7002bdb88 100644 --- a/dynet/cudnn-ops.cu +++ b/dynet/cudnn-ops.cu @@ -201,9 +201,15 @@ void CudnnConvOp::backward_impl(const Device_GPU & dev, CUDNN_CHECK(cudnnSetTensor4dDescriptor(y_desc_, CUDNN_TENSOR_NCHW, DataTypeToCudnnType::value, YN, YC, YW, YH)); - CUDNN_CHECK(cudnnSetFilter4dDescriptor(filter_desc_, +#if CUDNN_VERSION_MIN(5, 0, 0) + CUDNN_CHECK(cudnnSetFilter4dDescriptor(filter_desc_, + DataTypeToCudnnType::value, CUDNN_TENSOR_NCHW, + FYC, FXC, FW, FH)); +#else + CUDNN_CHECK(cudnnSetFilter4dDescriptor_v4(filter_desc_, DataTypeToCudnnType::value, CUDNN_TENSOR_NCHW, FYC, FXC, FW, FH)); +#endif CUDNN_CHECK(cudnnSetConvolution2dDescriptor(conv_desc_, pad_w/2, pad_h/2, stride_[1], stride_[0], 1, 1, CUDNN_CROSS_CORRELATION)); @@ -362,9 +368,15 @@ void CudnnMaxPooling2DOp::backward_impl(const Device_GPU & dev, CUDNN_CHECK(cudnnSetTensor4dDescriptor(y_desc_, CUDNN_TENSOR_NCHW, DataTypeToCudnnType::value, YN, YC, YW, YH)); - CUDNN_CHECK(cudnnSetPooling2dDescriptor(pooling_desc_, - CUDNN_POOLING_MAX, CUDNN_NOT_PROPAGATE_NAN, - ksize_[1], ksize_[0], pad_w, pad_h, stride_[1], stride_[0])); + #if CUDNN_VERSION_MIN(5, 0, 0) + CUDNN_CHECK(cudnnSetPooling2dDescriptor(pooling_desc_, + CUDNN_POOLING_MAX, CUDNN_NOT_PROPAGATE_NAN, + ksize_[1], ksize_[0], pad_w, pad_h, stride_[1], stride_[0])); + #else + CUDNN_CHECK(cudnnSetPooling2dDescriptor_v4(pooling_desc_, + CUDNN_POOLING_MAX, CUDNN_NOT_PROPAGATE_NAN, + ksize_[1], ksize_[0], pad_w, pad_h, stride_[1], stride_[0])); + #endif // here we could reuse the descriptor we created for forward, because // they share the same size