suppose I have:

a = torch.tensor([3.0,], requires_grad=True)
b = a * 3
c = b * b * 3
loss = c.mean()
loss.backward()

when the backward is executed:
step1. calculate ∂loss/∂c
step2. calculate ∂loss/∂b
actually step2 has 2 possibility
case1:  ∂loss/∂b =  ∂loss/∂c *  ∂c/∂b
case2:  ∂loss/∂b =  ∂(loss/∂c*c)/∂b
sow which case is happened?