-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance regression: SIV-rfc5297.md #375
Comments
The
The issue is that the enumeration This issue is essentially another incarnation of issue GaloisInc/saw-script#11. A short-term fix is to use the infinite enumeration A proper long-term fix is to be more intelligent about the representation of bit sequences. Very long bitvectors, like this one, should probably be treated as "effectively infinite" and use the same representations that are used for infinite streams. |
Fixed by 771d07f This patch, and nearby related ones, changes the representation of unpacked bitvectors to be similar to the one used for sequences at other types, and forces a change to the unpacked representation when the size of a bitvector crosses a size threshold (2^16 bits, currently... I'm not sure what is a principled way to decide on this value). This fixes the original problem and does not seem to introduce significant performance degradations elsewhere. |
Trying to compute the test vectors in this example using the new evaluator consumes an absurd amount of memory before dying. This is a regression from the evaluator in Cryptol 2.4.0, where performance is acceptable.
The problem appears to be related to the
ctr64
function. Hypothesis: the definition ofstream
forces the computation down to a stream of individual bits, which are not being handled intelligently, for some reason.The text was updated successfully, but these errors were encountered: