[webkit-dev] NEON_INTRINSICS

Osztrogonác Csaba oszi at inf.u-szeged.hu
Mon Mar 9 12:54:41 PDT 2015


Hi,

unfortunately GCC doesn't set the necessary __ARM_NEON__ define even if
the CPU supports NEON instructions, we have to pass -mfpu=neon[-*] to
make sure __ARM_NEON__ is set properly. It was explicitly set on our ARM
bots for long time, but accidentally lost after a GCC toolchain update.
I added the switch back immediately after the mentioned buildfix landed,
so the EFL ARM bots now build with enabled NEON_INTRINSICS.

I think we could add a cmake configure script to check if
NEON is available and enable it depending on the result.

Of course all of these omtimizations were validated and performance
was measured before they were landed. I collected some of these bugs
and performance progressions are pretty good:

https://bugs.webkit.org/show_bug.cgi?id=103614
https://bugs.webkit.org/show_bug.cgi?id=102060
https://bugs.webkit.org/show_bug.cgi?id=101473
https://bugs.webkit.org/show_bug.cgi?id=100737
https://bugs.webkit.org/show_bug.cgi?id=98131
https://bugs.webkit.org/show_bug.cgi?id=90949
https://bugs.webkit.org/show_bug.cgi?id=86468
https://bugs.webkit.org/show_bug.cgi?id=59447
https://bugs.webkit.org/show_bug.cgi?id=54456

https://bugs.webkit.org/show_bug.cgi?id=94886
(It isn't intrinsic, but NEON optimization.)


The idea of having an ARM performance bot is good, but I'm not sure
if it can be done easily. One test on the x86_64 performance bots
take 2.5 hours. How long would it run on an ARM device?

br,
Ossy

Maciej Stachowiak írta:
> Requiring a perf bot to be set up before removing unmaintained code seems like a really high bar. What would it take to do a one-shot test of whether NEON_INTRINSICS is a perf benefit? Would it show up on PLT or on JS perf benchmarks if you compiled with it? If it's not a speedup in its existing form, then it's probably not worth keeping around. If it is, then that might be incentive for someone to get it production-ready and on by default for relevant platforms.
> 
> Regards,
> Maciej
> 
>> On Mar 8, 2015, at 6:56 PM, Benjamin Poulain <benjamin at webkit.org> wrote:
>>
>> That code looks straightforward, the maintenance cost is likely low. We
>> just really need a test bot to run that code.
>>
>> I suggest we wait until we have a ARMv7 perf bot and re-evaluate
>> NEON_INTRINSICS.
>>
>> On 05/03/2015 22:27, Carlos Garcia Campos wrote:
>>> Yesterday a patch was submitted to fix the build with NEON_INTRINSICS,
>>> and Ossy pointed out that the build has been broken since r170433, and
>>> nobody has noticed it until now. So that makes me wonder if anybody is
>>> actually using that and if it even works, because otherwise we should
>>> probably remove the NEON_INTRINSICS code. 
>>>
>>> So, is there anybody actually using that (I guess patched downstream)?


More information about the webkit-dev mailing list