Bug 131418
Summary: | Optimize NaN sanitization | ||
---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> |
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> |
Status: | NEW | ||
Severity: | Normal | CC: | atrick, barraclough, ggaren, juergen, mark.lam, mhahnenberg, msaboff, oliver, sam |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | 131419 | ||
Bug Blocks: |
Filip Pizlo
...
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Filip Pizlo
If we eliminated all sanitization we would have a big speed-up:
Benchmark report for AsmBench on dethklok (MacBookPro9,1).
VMs tested:
"Baseline" at /Volumes/Data/pizlo/quartary/OpenSource/Baseline/WebKitBuild/Release/jsc
"NoNaNChecks" at /Volumes/Data/pizlo/quartary/OpenSource/WebKitBuild/Release/jsc (r166994)
Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc()
between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the
jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times
with 95% confidence intervals in milliseconds.
Baseline NoNaNChecks
bigfib.cpp 596.5540+-5.2567 ? 598.2952+-18.0237 ?
cray.c 36.8505+-0.6301 36.5445+-0.3884
dry.c 518.7787+-40.2963 ? 519.3938+-38.6616 ?
FloatMM.c 1120.4211+-26.0505 ^ 913.3167+-5.7435 ^ definitely 1.2268x faster
gcc-loops.cpp 1414.9705+-24.0548 ^ 1293.9392+-7.2879 ^ definitely 1.0935x faster
n-body.c 1562.3240+-9.1747 ^ 1009.1730+-42.3639 ^ definitely 1.5481x faster
Quicksort.c 55.3555+-2.1002 ? 56.1843+-3.2402 ? might be 1.0150x slower
stepanov_container.cpp 3866.9738+-34.0559 ^ 3594.8812+-36.0217 ^ definitely 1.0757x faster
Towers.c 45.6852+-3.5218 44.9310+-2.8141 might be 1.0168x faster
<arithmetic> 1024.2126+-7.6832 ^ 896.2954+-7.0141 ^ definitely 1.1427x faster
<geometric> * 402.2503+-6.1556 ^ 367.6326+-5.9729 ^ definitely 1.0942x faster
<harmonic> 122.8986+-3.0728 121.3267+-3.6854 might be 1.0130x faster
Andrew Trick
We will also get ~50% on cray. But I think that benchmark is not currently working. I'll submit a patch for it shortly.