RFR: JDK-8155618 aarch32: implement CRC32 intrinsics
Andrey Petushkov
andrey.petushkov at gmail.com
Fri Apr 29 14:59:16 UTC 2016
Hi Alex,
In the meanwhile I’ve found one bug in the cc32-based implementation, which is exactly the one chosen on rpi3 by default. Could you please reapply the patch from the same location. Please let me know if the problem persists
Great thanks,
Andrey
> On 29 Apr 2016, at 01:34, Alex Kashchenko <akashche at redhat.com> wrote:
>
> 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/> <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 <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 <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