Hi,
All function that works when you feed them with Variables support autograd.
torch.dot actually support autograd:
a = Variable(torch.rand(10))
out = torch.dot(a, a)
assert(isinstance(out, Variable)) # works

The output is actually a Variable with a Tensor containing one element.