Bug 131418

Summary: Optimize NaN sanitization
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: 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
Reported 2014-04-08 20:16:07 PDT
...
Attachments
Filip Pizlo
Comment 1 2014-04-08 20:44:46 PDT
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
Comment 2 2014-04-08 21:24:23 PDT
We will also get ~50% on cray. But I think that benchmark is not currently working. I'll submit a patch for it shortly.
Note You need to log in before you can comment on or make changes to this bug.