Best practice of cuDNN implementation

Hi, all. I’m new to AI&cuDNN domain and trying to learn how to implement various operators.

When reading the sample codes from the official repo (thanks to help from @yanxu), it seems like the core function (run_conv_bias_add_activation) takes dimensions of three tensors (X,W,Y) after padding and test program passes those dimensions after manual computation.
https://github.com/NVIDIA/cudnn-frontend/blob/main/samples/conv_sample.cpp#L483

Since I’m new to this domain, I’m not quite sure if we are supposed to compute those domains manually.
Is there any API or the best practice for computing those dimensions?
I want to support any combination of paddings, strides and dilation all together, so I’m not sure if manual implementation is the right way to go.

Thank you in advance!

Hi @sunggg,

Please refer to below samples and best practice link for your reference.
https://github.com/Hardware-Alchemy/cuDNN-sample
https://docs.nvidia.com/deeplearning/cudnn/best-practices/index.html

Thanks