RFR: JDK-8155618 aarch32: implement CRC32 intrinsics
Alex Kashchenko
akashche at redhat.com
Thu Apr 28 22:34:05 UTC 2016
Hi Andrey,
On 04/28/2016 11:49 AM, Andrey Petushkov wrote:
> Dear Ed, All,
>
> Please consider the below patch to implement intrinsics for CRC32 functionality
> All 3 possible implementations are provided: generic cpu, neon and crc32 ARM v8 instruction based.
> The evaluated performance gain of the calculation itself is the following:
> cortex a7 a8 a53
> c 123.487 132.013 309.565
> asm 131.755 7% 141.297 7% 307.401 -1%
> neon 118.91 -4% 159.718 21% 479.442 55%
> crc32 1361.446 343%
> As you can see there is no benefit in using neon on Cortex A7 (and presumably A5). So neon is turned on by default only on Cortex A8 and above
>
> The above numbers are for CRC calculation itself, so elimination of JNI overhead provides additional benefit. E.g. on Cortex A7 the generic asm implementation gives the below benefit:
>
> buffer size + ops/s
> Xint 128 20.56%
>
> 512 18.06%
>
> 1024 14.66%
>
> 1048576 5.52%
>
>
>
> Xcomp Xbatch 128 77.85%
>
> 512 32.63%
>
> 1024 20.53%
>
> 1048576 6.59%
>
> The patch is here:
> http://cr.openjdk.java.net/~snazarki/8155618/ <http://cr.openjdk.java.net/~snazarki/8155618/>
I am getting the following error in bootcycle build with this patch on
Raspberry Pi 3:
- crash log:
http://cr.openjdk.java.net/~akasko/aarch32/jdk8u/8155618/hs_err_pid13951.log
- build log:
http://cr.openjdk.java.net/~akasko/aarch32/jdk8u/8155618/201604280_rpi3_rpm.log.xz
I don't have any more details now, builds on all other devices are still
in progress. This is the first time I see any problems with the build
after prec1 change, so it may well be an incorrect patching or a
hardware glitch.
--
-Alex
More information about the aarch32-port-dev
mailing list