You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The latest version of Mitsuba3 using the new version of DrJit failed when using prbvolpath for backward/forward mode on heterogeneous volumes with NEE.
It seems the issue is caused by performing backward/forward operations in a loop nested within another loop during tracing, which might be related to the latest version of DrJit. Here is the error message:
Traceback (most recent call last): File "C:\xxx\mitsuba\python\ad\integrators\prbvolpath.py", line 271, in _loop_body dr.backward(δL * contrib) RuntimeError: CustomOp::backward(): the reverse-mode derivative of a complex loop (with max_iterations != -1) is not yet implemented!
To reproduce the issue, you can run the code using python validation_heter.py. I have attached a file to help with this: validation_heter.zip.
The issue can be triggered by backpropagating a loss for sigma_t for any heterogeneous volume when using prbvolpath. I have also included a prbvolpath_m1 that supports forward_mode AD in the zip.
Thank you!
The text was updated successfully, but these errors were encountered:
We have a (temporary) fix for this in this commit which is part of #1287.
It's still unclear to me why it was necessary and so I'll be looking into that. In the meantime, you can use that patch - we've confirmed that it produces the correct result in reverse-mode AD:
The latest version of Mitsuba3 using the new version of DrJit failed when using
prbvolpath
for backward/forward mode on heterogeneous volumes with NEE.It seems the issue is caused by performing backward/forward operations in a loop nested within another loop during tracing, which might be related to the latest version of DrJit. Here is the error message:
Traceback (most recent call last): File "C:\xxx\mitsuba\python\ad\integrators\prbvolpath.py", line 271, in _loop_body dr.backward(δL * contrib) RuntimeError: CustomOp::backward(): the reverse-mode derivative of a complex loop (with max_iterations != -1) is not yet implemented!
To reproduce the issue, you can run the code using
python validation_heter.py
. I have attached a file to help with this: validation_heter.zip.The issue can be triggered by backpropagating a loss for sigma_t for any heterogeneous volume when using
prbvolpath
. I have also included aprbvolpath_m1
that supports forward_mode AD in the zip.Thank you!
The text was updated successfully, but these errors were encountered: