Skip to content
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

Align Poplar1 and Idpf with draft-irtf-cfrg-vdaf-08 #859

Merged
merged 1 commit into from
Nov 30, 2023

Conversation

cjpatton
Copy link
Collaborator

Partially addresses #839.

  • Modify Idpf::extend() by stealing control bits from the seeds
  • Bind the nonce to the shard randomness in Poplar1::shard()

* Modify `Idpf::extend()` by stealing control bits from the seeds

* Bind the nonce to the shard randomness in `Poplar1::shard()`
@cjpatton cjpatton requested a review from a team as a code owner November 30, 2023 17:49
@cjpatton
Copy link
Collaborator Author

This has lead to a 15% speed-up on my laptop :)
fyi/ @schoppmp 👏

[cjpatton/839-poplar1][~/github.com/divviup/libprio-rs/src]$ cargo bench --all-features -- poplar1
   Compiling prio v0.15.3 (/Users/christopherpatton/github.com/divviup/libprio-rs)
    Finished bench [optimized] target(s) in 5.30s
     Running benches/cycle_counts.rs (/Users/christopherpatton/github.com/divviup/libprio-rs/target/release/deps/cycle_counts-6cc2a04ac9675b6e)
Unexpected error while launching valgrind. Error: No such file or directory (os error 2)
     Running benches/speed_tests.rs (/Users/christopherpatton/github.com/divviup/libprio-rs/target/release/deps/speed_tests-47137adb65076f54)
Gnuplot not found, using plotters backend
poplar1_shard/16        time:   [61.659 µs 61.723 µs 61.798 µs]
                        thrpt:  [31.605 KiB/s 31.643 KiB/s 31.676 KiB/s]
                 change:
                        time:   [-12.578% -12.390% -12.180%] (p = 0.00 < 0.05)
                        thrpt:  [+13.869% +14.142% +14.387%]
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  6 (6.00%) high mild
  3 (3.00%) high severe
poplar1_shard/128       time:   [395.07 µs 395.74 µs 396.52 µs]
                        thrpt:  [39.405 KiB/s 39.483 KiB/s 39.550 KiB/s]
                 change:
                        time:   [-14.631% -14.373% -14.095%] (p = 0.00 < 0.05)
                        thrpt:  [+16.407% +16.785% +17.138%]
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  2 (2.00%) high mild
  2 (2.00%) high severe
poplar1_shard/256       time:   [775.50 µs 776.96 µs 779.08 µs]
                        thrpt:  [40.111 KiB/s 40.221 KiB/s 40.297 KiB/s]
                 change:
                        time:   [-16.012% -15.713% -15.424%] (p = 0.00 < 0.05)
                        thrpt:  [+18.237% +18.642% +19.065%]
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  5 (5.00%) high mild
  4 (4.00%) high severe

poplar1_prepare_init/16 time:   [547.42 µs 549.23 µs 551.11 µs]
                        change: [-10.864% -10.534% -10.220%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
poplar1_prepare_init/128
                        time:   [3.8224 ms 3.8301 ms 3.8382 ms]
                        change: [-14.531% -14.322% -14.075%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe
poplar1_prepare_init/256
                        time:   [7.4107 ms 7.4299 ms 7.4496 ms]
                        change: [-15.341% -15.039% -14.736%] (p = 0.00 < 0.05)
                        Performance has improved.

@cjpatton cjpatton merged commit 6f4ca01 into main Nov 30, 2023
6 checks passed
@cjpatton cjpatton deleted the cjpatton/839-poplar1 branch November 30, 2023 22:08
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.

None yet

2 participants