After poking around for resources on efficiently implementing asymmetric padding for conv layers, I came across this passage in [1410.0759] cuDNN: Efficient Primitives for Deep Learning :
We are also using cuDNN in other domains besides image processing, such as speech and language.
cuDNN’s ability to convolve non-square inputs with asymmetric padding is particularly useful for
these other domains
(from Section 5, “Baidu integration”. Emphasis mine)
This stood out because my understanding was that cuDNN does not at present support this. At the very least, most every deep learning framework I’ve peeked into the internals of appears to do their own manual pre-padding. Given that, my question is: was this (support for asymmetric padding) removed at some point?
cudnnSetConvolutionNdDescriptor doesn’t appear to support it, and yet the canonical cuDNN paper includes an explicit mention. I’d be interested to know more about the history and if/why asymmetric padding didn’t persist until the current iteration of cuDNN.