-
Notifications
You must be signed in to change notification settings - Fork 4
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
Move argon2 to first, average, worst scoring. #24
base: main
Are you sure you want to change the base?
Conversation
Since the non-simd version of the test is relatively slow I reduced the iteration/worst counts to 15/2, repsectively. Also, I moved all the benchmark files to the argon2 directory to help organize the wasm directory a bit.
CC @danleh @camillobruni @eqrion @jandem for thoughts |
Regarding the Edit: I searched a bit, could this NPM package/repo be the upstream? https://github.com/antelle/argon2-browser |
Mhm, I think there is something wrong with the non-SIMD variant of this benchmark. In particular, the flamegraph/profile shows tons of samples attributed to capturing stack traces, caused by growing the memory inside If you modify
you get tons of errors, e.g., in d8 I will briefly try to rebuild this from source to diagnose further. @kmiller68 have you seen this before or is this just a problem on my end? Do you have more information on why/how the memory usage of the non-SIMD variant could be higher than the SIMD variant? Could this be an issue simply because of running multiple iterations after setup, such that later iteration continuously grow memory? Edit: While I could build the For the time being, I don't think the non-SIMD variant is measuring something sensible. |
"./wasm/argon2.js", | ||
"./wasm/argon2-benchmark.js" | ||
"./wasm/argon2/argon2-bundle.js", | ||
"./wasm/argon2/argon2.js", |
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.
Similar to the other Emscripten-built line items, could we move the generated files in a build/
subdirectory, to distinguish them from manually written code, such as benchmark.js
(just so we/someone in the future doesn't end up mixing/interjecting manually written with generated code again).
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.
Also, is it correct that both benchmark.js
and argon2.js
were written by you (or your colleagues)?
}, | ||
benchmarkClass: WasmLegacyBenchmark, | ||
benchmarkClass: WasmEMCCBenchmark, | ||
iterations: 15, |
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.
Even with only 15 iterations, the non-SIMD variant runs quite long (>1 minute), while the SIMD variant runs ~2-3s with the same number of iterations. I am bit surprised by that stark difference (30x or more), so I will spend a brief time trying to understand why we are that slow. We do expect the SIMD and non-SIMD variant to do essentially the same amount of work, right?
(lone comment, since the file wasn't changed in this PR): I believe the JetStream/wasm/argon2/build.sh Line 17 in ab7d6d0
|
Since the non-simd version of the test is relatively slow I reduced the iteration/worst counts to 15/2, repsectively.
Also, I moved all the benchmark files to the argon2 directory to help organize the wasm directory a bit.