)]}' { "commit": "ce1665b825f06ab0cd43f8250e3dca402f82a591", "tree": "986d198b880b4006900bdacdb39ba6a3849fb95c", "parents": [ "54a59c68b77f5a13fa7f582179b2bc3f4160eea6" ], "author": { "name": "David Benjamin", "email": "davidben@google.com", "time": "Wed Apr 29 15:55:32 2020 -0400" }, "committer": { "name": "CQ bot account: commit-bot@chromium.org", "email": "commit-bot@chromium.org", "time": "Thu May 07 16:45:06 2020 +0000" }, "message": "Batch inversions in Trust Tokens.\n\nThe DLEQ and DLEQOR proofs require converting many Jacobian points to\naffine, some multiple times. The inversions involved can be batched.\n\nThis buys us a +5-8% improvement in token issuance speed. issue and\nfinish_issue should each only perform two inversions per token now. We\ncould save an inversion per token by changing the dleq_generate and\ndleq_verify function signatures, but that would complicate the likely\nmore valuable batched DLEQ(OR) optimization, so I\u0027ve left those alone.\n\nBefore:\nDid 300 TrustToken-Exp0-Batch1 generate_key operations in 2031798us (147.7 ops/sec)\nDid 1449 TrustToken-Exp0-Batch1 begin_issuance operations in 2093639us (692.1 ops/sec)\nDid 96 TrustToken-Exp0-Batch1 issue operations in 2044310us (47.0 ops/sec)\nDid 84 TrustToken-Exp0-Batch1 finish_issuance operations in 2072137us (40.5 ops/sec)\nDid 12170000 TrustToken-Exp0-Batch1 begin_redemption operations in 2000098us (6084701.8 ops/sec)\nDid 315 TrustToken-Exp0-Batch1 redeem operations in 2091938us (150.6 ops/sec)\nDid 35000 TrustToken-Exp0-Batch1 finish_redemption operations in 2004900us (17457.2 ops/sec)\nDid 308 TrustToken-Exp0-Batch10 generate_key operations in 2067860us (148.9 ops/sec)\nDid 138 TrustToken-Exp0-Batch10 begin_issuance operations in 2005706us (68.8 ops/sec)\nDid 9 TrustToken-Exp0-Batch10 issue operations in 2107753us (4.3 ops/sec)\nDid 8 TrustToken-Exp0-Batch10 finish_issuance operations in 2193489us (3.6 ops/sec)\nDid 12046750 TrustToken-Exp0-Batch10 begin_redemption operations in 2000025us (6023299.7 ops/sec)\nDid 315 TrustToken-Exp0-Batch10 redeem operations in 2091940us (150.6 ops/sec)\nDid 35000 TrustToken-Exp0-Batch10 finish_redemption operations in 2008851us (17422.9 ops/sec)\n\nDid 756 TrustToken-Exp1-Batch1 generate_key operations in 2051005us (368.6 ops/sec)\nDid 3633 TrustToken-Exp1-Batch1 begin_issuance operations in 2072577us (1752.9 ops/sec)\nDid 242 TrustToken-Exp1-Batch1 issue operations in 2052091us (117.9 ops/sec)\nDid 210 TrustToken-Exp1-Batch1 finish_issuance operations in 2058740us (102.0 ops/sec)\nDid 12477000 TrustToken-Exp1-Batch1 begin_redemption operations in 2000004us (6238487.5 ops/sec)\nDid 777 TrustToken-Exp1-Batch1 redeem operations in 2084953us (372.7 ops/sec)\nDid 35000 TrustToken-Exp1-Batch1 finish_redemption operations in 2028286us (17255.9 ops/sec)\nDid 756 TrustToken-Exp1-Batch10 generate_key operations in 2051178us (368.6 ops/sec)\nDid 357 TrustToken-Exp1-Batch10 begin_issuance operations in 2041875us (174.8 ops/sec)\nDid 23 TrustToken-Exp1-Batch10 issue operations in 2026494us (11.3 ops/sec)\nDid 20 TrustToken-Exp1-Batch10 finish_issuance operations in 2048478us (9.8 ops/sec)\nDid 12492000 TrustToken-Exp1-Batch10 begin_redemption operations in 2000053us (6245834.5 ops/sec)\nDid 777 TrustToken-Exp1-Batch10 redeem operations in 2084956us (372.7 ops/sec)\nDid 36000 TrustToken-Exp1-Batch10 finish_redemption operations in 2021991us (17804.2 ops/sec)\n\nAfter:\nDid 315 TrustToken-Exp0-Batch1 generate_key operations in 2046638us (153.9 ops/sec) [+4.2%]\nDid 1449 TrustToken-Exp0-Batch1 begin_issuance operations in 2087930us (694.0 ops/sec) [+0.3%]\nDid 105 TrustToken-Exp0-Batch1 issue operations in 2071104us (50.7 ops/sec) [+8.0%]\nDid 88 TrustToken-Exp0-Batch1 finish_issuance operations in 2023502us (43.5 ops/sec) [+7.3%]\nDid 11847000 TrustToken-Exp0-Batch1 begin_redemption operations in 2000041us (5923378.6 ops/sec) [-2.7%]\nDid 315 TrustToken-Exp0-Batch1 redeem operations in 2084116us (151.1 ops/sec) [+0.4%]\nDid 35000 TrustToken-Exp0-Batch1 finish_redemption operations in 2003732us (17467.4 ops/sec) [+0.1%]\nDid 315 TrustToken-Exp0-Batch10 generate_key operations in 2046863us (153.9 ops/sec) [+3.3%]\nDid 138 TrustToken-Exp0-Batch10 begin_issuance operations in 2000108us (69.0 ops/sec) [+0.3%]\nDid 10 TrustToken-Exp0-Batch10 issue operations in 2149283us (4.7 ops/sec) [+9.0%]\nDid 8 TrustToken-Exp0-Batch10 finish_issuance operations in 2046416us (3.9 ops/sec) [+7.2%]\nDid 12112000 TrustToken-Exp0-Batch10 begin_redemption operations in 2000077us (6055766.9 ops/sec) [+0.5%]\nDid 315 TrustToken-Exp0-Batch10 redeem operations in 2084427us (151.1 ops/sec) [+0.4%]\nDid 35000 TrustToken-Exp0-Batch10 finish_redemption operations in 2015111us (17368.8 ops/sec) [-0.3%]\n\nDid 777 TrustToken-Exp1-Batch1 generate_key operations in 2029777us (382.8 ops/sec) [+3.9%]\nDid 3654 TrustToken-Exp1-Batch1 begin_issuance operations in 2093484us (1745.4 ops/sec) [-0.4%]\nDid 252 TrustToken-Exp1-Batch1 issue operations in 2024557us (124.5 ops/sec) [+5.5%]\nDid 220 TrustToken-Exp1-Batch1 finish_issuance operations in 2034633us (108.1 ops/sec) [+6.0%]\nDid 12659000 TrustToken-Exp1-Batch1 begin_redemption operations in 2000112us (6329145.6 ops/sec) [+1.5%]\nDid 777 TrustToken-Exp1-Batch1 redeem operations in 2073783us (374.7 ops/sec) [+0.5%]\nDid 35000 TrustToken-Exp1-Batch1 finish_redemption operations in 2050371us (17070.1 ops/sec) [-1.1%]\nDid 768 TrustToken-Exp1-Batch10 generate_key operations in 2025482us (379.2 ops/sec) [+2.9%]\nDid 357 TrustToken-Exp1-Batch10 begin_issuance operations in 2034429us (175.5 ops/sec) [+0.4%]\nDid 25 TrustToken-Exp1-Batch10 issue operations in 2049293us (12.2 ops/sec) [+7.5%]\nDid 21 TrustToken-Exp1-Batch10 finish_issuance operations in 2022256us (10.4 ops/sec) [+6.4%]\nDid 12702000 TrustToken-Exp1-Batch10 begin_redemption operations in 2000015us (6350952.4 ops/sec) [+1.7%]\nDid 777 TrustToken-Exp1-Batch10 redeem operations in 2072048us (375.0 ops/sec) [+0.6%]\nDid 35000 TrustToken-Exp1-Batch10 finish_redemption operations in 2024580us (17287.5 ops/sec) [-2.9%]\n\nChange-Id: Ia1b09cd14aa8ce0935d18033fb4bd75666a258e9\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/41086\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Steven Valdez \u003csvaldez@google.com\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "56a9e1d2b2a15ddb3c8ca508e0f36d11622de35e", "old_mode": 33188, "old_path": "crypto/fipsmodule/ec/ec.c", "new_id": "79dc416ccd0381182c50deabe077744176e03b75", "new_mode": 33188, "new_path": "crypto/fipsmodule/ec/ec.c" }, { "type": "modify", "old_id": "02bd66c72f2f076051c6873534a81734901429de", "old_mode": 33188, "old_path": "crypto/fipsmodule/ec/ec_montgomery.c", "new_id": "de515ab6bd7a3d04fd60d6b7a126387b359a4e2e", "new_mode": 33188, "new_path": "crypto/fipsmodule/ec/ec_montgomery.c" }, { "type": "modify", "old_id": "ef6014ca524dbc50c179514a7464f68945edb64f", "old_mode": 33188, "old_path": "crypto/fipsmodule/ec/internal.h", "new_id": "fed81a527607bbc9320e427a1bbe8598a5f0f3a4", "new_mode": 33188, "new_path": "crypto/fipsmodule/ec/internal.h" }, { "type": "modify", "old_id": "bd420b8b820643f89984b78af38252f85987ec2a", "old_mode": 33188, "old_path": "crypto/fipsmodule/ec/simple.c", "new_id": "b6d93125f90ae257b7dce5458d67823faae0e85b", "new_mode": 33188, "new_path": "crypto/fipsmodule/ec/simple.c" }, { "type": "modify", "old_id": "1c82d83c207a3bf1821f5255d28d2e1f2b5ebd9e", "old_mode": 33188, "old_path": "crypto/trust_token/internal.h", "new_id": "6c9904d7a7897b5d280afa63cc9489878d7848a7", "new_mode": 33188, "new_path": "crypto/trust_token/internal.h" }, { "type": "modify", "old_id": "5b1b883716dac64ff85979f89d3bf3cdee708160", "old_mode": 33188, "old_path": "crypto/trust_token/pmbtoken.c", "new_id": "f1dc39b32f4f41cd9d69187ec1cae14bb411d4ea", "new_mode": 33188, "new_path": "crypto/trust_token/pmbtoken.c" } ] }