Hello,
I just figured out that some part of the code does not seem to be deterministic.
From my experience, pytorch seems to be quite deterministic if the random seed is set and if the input is identical.
I used the following function if the tensors have exactly the same hash value:
Hello, I just figured out that some part of the code does not seem to be deterministic. From my experience, pytorch seems to be quite deterministic if the random seed is set and if the input is identical.
I used the following function if the tensors have exactly the same hash value:
The hash values seem to be identical for all tensors until the first call of the deformable aggregation function https://github.com/HorizonRobotics/Sparse4D/blob/main/projects/mmdet3d_plugin/ops/deformable_aggregation.py
Unfortunately I do not have experience in cuda programming. So far I do not have found the rootcause of the problem. Based on some questions on stackoverflow it might be related to the usage of AtomicAdd. https://github.com/HorizonRobotics/Sparse4D/blob/main/projects/mmdet3d_plugin/ops/src/deformable_aggregation.cpp
Do you have an idea what might be the reason for the non-deterministic effect in the deformable aggregation module?