Actually, there is a difference.
The implementations in torch.xxx have the backward implemented using python calls 280, while the functional counterparts have their backward implemented entirely in C 38/Cuda 37, so the functional backward code is more efficient.