KGO changes for 32bit only #657
Replies: 2 comments 1 reply
-
|
It wasn't too difficult to write a demo that showed summing 3 numbers in different orders could produce different results with real32, but the same result with real64, particularly when adding small and large numbers. You may need to prove to your science reviewer that this is the cause, though. E.g. by outputting values before and after, that show differences following a straightforward piece of arithmetic. You would also need to worry about whether the difference means you are losing the effect of an important perturbation. |
Beta Was this translation helpful? Give feedback.
-
|
I put together a test to show that the KGO change does originate from the differences in the way the additions take place between main and my branch. I will check with Mohit what further testing if any is required. Thanks for your help. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I have developed a significant refactor of the radaer kernel to allow future user flexibility and remove technical debt.
The refactor was meant to preserve KGO of all tests that involve RADAER (a lot of tests).
Every 64bit test preserved KGO and a good number of 32bit tests also preserve KGO, but there are a lot that do not.
There are no current user options for RADAER, so I would assume that every test should either preserve KGO (if the refactor is correct) or break KGO (if I made an error).
There are even some tests where there is both a 64bit and 32bit equivalent test, where only 64bit preserves KGO.
I suspect that there is some bit level shenanigans going on here. In parts of the refactored code I am adding together some variables with vastly different orders of magnitude, and I suspect that the lower 32 precision in those calculations has very slightly changed answers.
Please get in touch if you have also seen this happen before, as its difficult to move forward with this work if there is a chance i have introduced a bug.
Beta Was this translation helpful? Give feedback.
All reactions