Is there a way to do torch.roll inplace?

Also, what is going on in memory when torch.roll is called? Does it simply take an element off one end and concatenate it at the other or does it require linear time to restructure the whole array?