Skip to content

Conversation

@TheBlueMatt
Copy link
Collaborator

In adb0afc we started raising bucket weights to the power four in the historical model. This improved our model's accuracy greatly, but resulted in a much larger total_valid_points_tracked. In the same commit we converted total_valid_points_tracked to a float, but retained the 64-bit integer math to build it out of integer bucket values.

Sadly, 64 bits are not enough to sum 1024 bucket pairs of 16-bit integers multiplied together and then squared (we need 16*4 + 10 = 74 bits to avoid overflow). Thus, here we replace the summation with 128-bit integers.

In adb0afc we started raising
bucket weights to the power four in the historical model. This
improved our model's accuracy greatly, but resulted in a much
larger `total_valid_points_tracked`. In the same commit we
converted `total_valid_points_tracked` to a float, but retained the
64-bit integer math to build it out of integer bucket values.

Sadly, 64 bits are not enough to sum 1024 bucket pairs of 16-bit
integers multiplied together and then squared (we need 16*4 + 10 =
74 bits to avoid overflow). Thus, here we replace the summation
with 128-bit integers.
@TheBlueMatt
Copy link
Collaborator Author

Landing as trivial

@TheBlueMatt TheBlueMatt merged commit c9fd3a5 into lightningdevkit:main Feb 24, 2025
25 of 26 checks passed
@TheBlueMatt
Copy link
Collaborator Author

Backported in #3616

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants