How can I compute the difference among one channel of a tensor and all other channels within that tensor.

In other words, what is the best way to do this::

B,C,W,H = 2,3,20,20

A = torch.rand(B,C,W,H)

I want to have tensor D which is defined as following:

```
D[0,0,:,:] = torch.max(A[0:1,0:1,:,:]-A[0:1,:,:,:],dim=1)[0]
D[0,1,:,:] = torch.max(A[0:1,1:2,:,:]-A[0:1,:,:,:],dim=1)[0]
D[0,2,:,:] = torch.max(A[0:1,2:3,:,:]-A[0:1,:,:,:],dim=1)[0]
D[1,0,:,:] = ...
D[1,1,:,:] = ...
D[1,2,:,:] =...
```

Now imagine in real case C and B are so large.

What is the fastest way to compute D?