>>> x = torch.rand(2, 2, device=0)
>>> y = torch.rand(2, 2, device=0)
>>> x
tensor([[0.2171, 0.7797],
[0.7265, 0.6759]], device='cuda:0')
>>> y
tensor([[0.6766, 0.1862],
[0.2438, 0.0076]], device='cuda:0')
# elementwise addition
>>> x + y
tensor([[0.8937, 0.9659],
[0.9703, 0.6834]], device='cuda:0')
# elementwise substruction
>>> x - y
tensor([[-0.4594, 0.5935],
[ 0.4827, 0.6683]], device='cuda:0')
# elementwise multiplication
>>> x * y
tensor([[0.1469, 0.1452],
[0.1771, 0.0051]], device='cuda:0')
# elementwise division
>>> x / y
tensor([[ 0.3209, 4.1880],
[ 2.9796, 89.4011]], device='cuda:0')
# matric multiplication
>>> x @ y
tensor([[0.3370, 0.0463],
[0.6563, 0.1404]], device='cuda:0')
# inplace addition
>>> y.add_(x)
tensor([[0.8937, 0.9659],
[0.9703, 0.6834]], device='cuda:0')
# inplace substruction
>>> y.sub_(x)
tensor([[0.6766, 0.1862],
[0.2438, 0.0076]], device='cuda:0')
# inplace multiplication
>>> y.mul_(x)
tensor([[0.1469, 0.1452],
[0.1771, 0.0051]], device='cuda:0')
# inplace division
>>> y.div_(x)
tensor([[0.6766, 0.1862],
[0.2438, 0.0076]], device='cuda:0')