I think the log_prob is differentiable for Normal yes. You can check that by verifying that if mean or std has requires_grad=True, then dist.log_prob(y).requires_grad == True.

In general, the output requires grad, that means that the function is differentiable using the autograd.

Another question, tdn.cdf(y) will also differentiable right?
I was thinking if dist = tdn.Normal(mean,std) would mess computational graph.It will not write right?