-
Notifications
You must be signed in to change notification settings - Fork 175
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
Set VarZeroVec metadata byte to 4 #2278
Conversation
Bench results (no change except 0.7% in the parsing function):
```
Benchmarking vzv_precompute/get/precomputed: Collecting 100 samples in estimated 5.000 vzv_precompute/get/precomputed
time: [1.7117 ns 1.7154 ns 1.7204 ns]
change: [-0.1460% +0.0893% +0.3296%] (p = 0.47 > 0.05)
No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) low mild
3 (3.00%) high mild
1 (1.00%) high severe
Benchmarking vzv_precompute/get/slice: Collecting 100 samples in estimated 5.0000 s (2 vzv_precompute/get/slice
WARNING: HTML report generation will become a non-default optional feature in Criterion.rs 0.4.0.
sum_slice sum_zerovec binarysearch_slice binarysearch_zerovec varzeroslice_parse_get varzeroslice_get varzeroslice_get_unchecked
|
Won't we lose the equality invariant with such a change in the future? |
As discussed:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you document the caveat on the equality invariant?
We don't maintain binary stability between unstable zerovec versions anyway, however this would be a care of it seeming like binary stability is maintained but that not actually happening; it's worth having a warning about that on ZeroVec and VarZeroVec now so there are no surprises.
I wrote some additional docs on both The process of writing the docs made me think that another way to handle this would be for the DataRequest to request a VarZeroVec serialization version, in the DataRequestMetadata. The current version could be the "fast" version, and we could introduce a "small" version later that is a bit slower. The |
test failures |
This is superseded by #2306. However, there are a few bits and pieces of this PR (like documentation) that I'd like to restore, so I will keep the PR open as draft until I have time to do that. |
Re-opening because I said above that I wanted to restore some docs. |
New PR: #2979 |
Archived in a branch named archive/vzv-fzv-july |
This fixes #1410 for the purposes of 1.0 data stability, by setting the metadata byte to 4. This enables us in post-1.0 to make the "flex" version of VarZeroVec a configurable feature for both library and datagen (i.e., a non-default feature
zerovec/flex_vzv
). Services can always provide metadata byte 4, but data packs for size-constrained devices will be able to use smaller widths.