I am confused about which batch_norm_backward code is triggered when cudnn_batch_norm_backward is called. Is the code at https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/cudnn/BatchNorm.cpp#L217 26 triggered or is it batchnorm_double_backward (https://github.com/pytorch/pytorch/blob/51d969e86ac0fad226f4e70889df0d3c6114ae4e/tools/autograd/templates/Functions.cpp#L2289 11) which is triggered, as defined in autograd derivatives.yaml (https://github.com/pytorch/pytorch/blob/d66c320b10a012575a842f1fd0b60912c1f2e7a2/tools/autograd/derivatives.yaml#L1481 11)
What is the use of having multiple such definitions?