[webkit-dev] Bring back ARMv6 support to JSC
Caio Lima
ticaiolima at gmail.com
Tue Aug 1 16:52:44 PDT 2017
Hi all.
FYI, I keep the last weeks investigating the issue with ARMv6 IC and I
was able to find the source of the bug and apply a quick fix to run
benchmarks again to get results. I just ran V8Spider, Octane and
Kraken by now and I'm attaching the results in this email.
We found some test cases regressing, and my attention now is to
identify the reason of the regression and how to fix them. Also, the
improvements got with JIT in ARMv6 aren't as big as Filip commented in
[1] to supported architectures.
[1] - https://bugs.webkit.org/show_bug.cgi?id=172765#c9
2017-07-13 19:27 GMT-03:00 Caio Lima <ticaiolima at gmail.com>:
> Yes. It probably will take a while to process on device, but I'll run it.
>
> Em qui, 13 de jul de 2017 às 17:50, Saam barati <sbarati at apple.com>
> escreveu:
>>
>> And ARES6.
>>
>> - Saam
>>
>>
>> On Jul 13, 2017, at 1:50 PM, Saam barati <sbarati at apple.com> wrote:
>>
>> Can you please run Octane and Kraken too?
>>
>> - Saam
>>
>> On Jul 13, 2017, at 7:47 AM, Caio Lima <ticaiolima at gmail.com> wrote:
>>
>> Finally I got the results from the last benchmark run. The results
>> shows that the speed-ups are considerable comparing with CLoop
>> version, since we get faster results in a big number of tests and
>> regress in a minor number of scripts. I would like to get feedback
>> from you as well, but IMHO enabling JIT for ARMv6 looks a good
>> improvement step and the amount of code we are touching in current
>> trunk code to make it possible is small.
>>
>> The results are attached and I also uploaded them in
>> https://bugs.webkit.org/show_bug.cgi?id=172765.
>>
>> PS.: Some test cases (bigswitch-indirect-symbol-or-undefined,
>> bigswitch-indirect-symbol, bigswitch, etc) are failing now and I'm
>> already investigating the source of problem to fix them.
>>
>> Regards,
>> Caio.
>>
>> 2017-07-05 22:54 GMT-03:00 Filip Pizlo <fpizlo at apple.com>:
>>
>> To be clear, I’m concerned that the 32-bit JIT backends have such bad
>> tuning for these embedded platforms that it’s just pure badness. Until you
>> can prove that you can change this, I think that porting should focus on
>> making the cloop great. Then, we can rip out support for weird CPUs rather
>> than bringing it back.
>>
>> -Filip
>>
>> On Jul 5, 2017, at 6:14 PM, Caio Lima <ticaiolima at gmail.com> wrote:
>>
>> 2017-07-05 18:25 GMT-03:00 Filip Pizlo <fpizlo at apple.com>:
>>
>> You need to establish that the JIT is a performance progression over the
>> LLInt on ARMv6. I am opposed to more ARMv6 patches landing until there is
>> some evidence provided that you’re actually getting speed-ups.
>>
>>
>> It makes sense. I can get these numbers related to JIT.
>>
>> BTW, there is a Patch that isn't JIT related
>> (https://bugs.webkit.org/show_bug.cgi?id=172766).
>>
>> Regards,
>> Caio.
>>
>> -Filip
>>
>> On Jun 13, 2017, at 6:48 PM, Caio Lima <ticaiolima at gmail.com> wrote:
>>
>> Hi All.
>>
>> Some of you guys might know me through the work I have been doing in
>> JSC. The experience working with WebKit has been great so far, thank
>> you for the reviews!
>>
>> Since 1st May, we at Igalia have been working on bring back the ARMv6
>> support into JSC. We already have commits into our downstream branch
>> port[2] that fixes some compile/runtime errors when building JSC to
>> ARMv6 and also fixes some bugs. However, this branch is not synced
>> with WebKit upstream tree and I would like to pursue the upstreaming
>> of this ARMv6/JSC support to WebKit.
>>
>> As a long shot, we are planning to maintain the ARMv6 support and make
>> tests run as green as possible. Also, it's our goal make ARMv6 support
>> not interfere with other ARM versions support code negatively and we
>> will be in charge of implement platform-specific fixes/features for
>> JSC/ARM6, this way no imposing burden to the rest of the community.
>>
>> To keep track of work to be done, I've create a meta-bug in
>> bugzilla[3] and it's going to be used firstly to organize the commits
>> from our downstream branch, but pretty soon I'm going to create issues
>> related with javascriptcore-test failures and send patches to fix
>> them. We have already submitted 3 patches (they are marked as
>> dependence of [3]) that fixes ARMv6 into LLInt and JIT layers and got
>> a round of review into them.
>>
>> Best Regards,
>> Caio.
>>
>> [1] - https://www.igalia.com/about-us/coding-experience
>> [2] - https://github.com/WebPlatformForEmbedded/WPEWebKit
>> [3] - https://bugs.webkit.org/show_bug.cgi?id=172765
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
>>
>>
>> <baseline_changes_SunSpiderLongSpiderV8SpiderMicrobenchmarksSixSpeed_buildroot_20170712_1029_report.txt>_______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
>>
>>
>>
>
-------------- next part --------------
Benchmark report for Octane and Kraken on buildroot.
VMs tested:
"baseline" at /home/igalia/clima/webkit/WebKitBaselineBuild/Release/bin/jsc
"changes" at /home/igalia/clima/webkit/WebKitBuild/Release/bin/jsc
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 changes
Octane:
encrypt 147.59817+-1.00374 ^ 51.41483+-1.57008 ^ definitely 2.8707x faster
decrypt 2581.86602+-24.49791 ^ 526.20319+-37.20137 ^ definitely 4.9066x faster
deltablue x2 513.00824+-36.11471 ! 663.19470+-38.64730 ! definitely 1.2928x slower
earley 576.73714+-4.20953 ^ 211.75420+-4.92585 ^ definitely 2.7236x faster
boyer 8276.47130+-330.63773 ^ 3990.71533+-255.97142 ^ definitely 2.0739x faster
navier-stokes x2 2883.12166+-170.09429 ^ 352.35257+-3.50131 ^ definitely 8.1825x faster
raytrace x2 3749.42543+-47.53537 ! 4464.38906+-213.67318 ! definitely 1.1907x slower
richards x2 210.26519+-9.82052 ^ 171.13220+-13.97025 ^ definitely 1.2287x faster
splay x2 316.67844+-11.29587 ^ 258.52298+-22.92918 ^ definitely 1.2250x faster
regexp x2 15320.92904+-113.01778 ^ 4095.85981+-120.79860 ^ definitely 3.7406x faster
pdfjs x2 19794.22220+-979.38027 ^ 9858.43362+-356.72465 ^ definitely 2.0078x faster
mandreel x2 225837.77087+-31990.41781 ^ 9213.73752+-155.41456 ^ definitely 24.5110x faster
gbemu x2 56440.08307+-2317.41885 ! 82446.39224+-1029.19589 ! definitely 1.4608x slower
closure 50.97770+-1.53253 ^ 46.84781+-1.22921 ^ definitely 1.0882x faster
jquery 613.38853+-16.83057 596.01325+-19.39399 might be 1.0292x faster
box2d x2 9725.65928+-243.62970 ! 11144.27302+-424.13252 ! definitely 1.1459x slower
zlib x2 1068543.62950+-62343.31958 ^ 28623.13951+-252.59075 ^ definitely 37.3315x faster
typescript x2 216164.12427+-3746.86411 !251418.44061+-6334.97357 ! definitely 1.1631x slower
<geometric> 6195.38993+-104.53664 ^ 2693.91861+-28.44779 ^ definitely 2.2998x faster
baseline changes
Kraken:
ai-astar 172378.203+-34732.377 ^ 25364.455+-74.430 ^ definitely 6.7961x faster
audio-beat-detection 33635.660+-625.755 ^ 4431.822+-24.904 ^ definitely 7.5896x faster
audio-dft 36122.981+-595.871 ^ 10285.083+-1151.841 ^ definitely 3.5122x faster
audio-fft 30105.435+-397.465 ^ 3631.396+-58.235 ^ definitely 8.2903x faster
audio-oscillator 64678.929+-2908.624 ^ 11599.036+-1268.395 ^ definitely 5.5762x faster
imaging-darkroom 66521.377+-7337.693 ^ 6095.504+-118.265 ^ definitely 10.9132x faster
imaging-desaturate 70783.959+-2174.413 ^ 8788.541+-14.113 ^ definitely 8.0541x faster
imaging-gaussian-blur 474827.059+-36084.235 ^ 75341.816+-935.092 ^ definitely 6.3023x faster
json-parse-financial 4339.827+-145.355 ^ 4099.218+-84.253 ^ definitely 1.0587x faster
json-stringify-tinderbox 2419.250+-245.699 2232.950+-38.697 might be 1.0834x faster
stanford-crypto-aes 27208.933+-2241.381 ^ 8456.116+-151.175 ^ definitely 3.2177x faster
stanford-crypto-ccm 16108.282+-316.266 ^ 7899.645+-191.944 ^ definitely 2.0391x faster
stanford-crypto-pbkdf2 63888.354+-7148.358 ^ 12163.269+-228.669 ^ definitely 5.2526x faster
stanford-crypto-sha256-iterative 22718.236+-3154.413 ^ 6299.667+-611.147 ^ definitely 3.6063x faster
<arithmetic> 77552.606+-2886.282 ^ 13334.894+-204.034 ^ definitely 5.8158x faster
baseline changes
Geomean of preferred means:
<scaled-result> 21917.8818+-387.3275 ^ 5993.4652+-33.8916 ^ definitely 3.6570x faster
-------------- next part --------------
Benchmark report for V8Spider on buildroot.
VMs tested:
"baseline" at /home/igalia/clima/webkit/WebKitBaselineBuild/Release/bin/jsc
"changes" at /home/igalia/clima/webkit/WebKitBuild/Release/bin/jsc
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 changes
crypto 21663.2342+-271.9681 ^ 5777.2356+-334.2337 ^ definitely 3.7498x faster
deltablue 77796.5568+-3638.3526 ! 90582.6876+-8850.1138 ! definitely 1.1644x slower
earley-boyer 34764.6712+-1185.0708 ^ 18998.9683+-844.4303 ^ definitely 1.8298x faster
raytrace 22123.8074+-518.8294 ! 30489.4965+-606.8164 ! definitely 1.3781x slower
regexp 37990.0515+-525.0047 ^ 11956.3918+-250.0535 ^ definitely 3.1774x faster
richards 71017.3162+-2248.2744 63932.8547+-5983.8392 might be 1.1108x faster
splay 18401.1262+-1294.0554 ^ 14423.5305+-883.1819 ^ definitely 1.2758x faster
<geometric> 34994.5904+-514.3205 ^ 22926.5483+-381.8007 ^ definitely 1.5264x faster
More information about the webkit-dev
mailing list