Each of these Tensors are quite big.
When you do torch.mul(), it allocates a new Tensor to store the result, but that goes above the memory limit of your GPU. I guess trying to create a Tensor of the size equal to the result will fail: res = torch.empty(16, 16, 1024, 32768).