Hi I am running some old code but it’s failing with a new error with 0.5.5:

`RuntimeError: Backward is not reentrant, i.e., running backward with same input and grad_output multiple times gives different values, although analytical gradient matches numerical gradient. The tolerance for nondeterminism was 0.0.`

in

` test = gradcheck(solver, middle_velocity, eps=1e-8, atol=1e-3)`

I have read this post and I have

`real = ti.float64 ti.init(arch=ti.cuda, default_fp=real, debug=False) `

at the beginning of the file

By commenting out every line I can find this kernel may cause the problem, not those IO lines

```
@ti.classkernel
def substep_kernel(self, t: ti.i32):
for i, j in ti.ndrange((1, self.grid_size + 1), (1, self.grid_size + 1)):
self.ti_pressure[t, i, j] = (self.ti_pressure[t - 1, i - 1, j] +
self.ti_pressure[t - 1, i, j - 1] +
self.ti_pressure[t - 1, i + 1, j] +
self.ti_pressure[t - 1, i, j + 1] -
self.ti_velocity_divergence[i-1, j-1] * self.dx**2
) / 4
```

Thank you!