Speeding up copy_memory stub

Vladimir Kempik vladimir.kempik at gmail.com
Sun Nov 13 21:14:18 UTC 2022


Hello
Thank you for hint.
The test passes with the changes,
I have rerun whole bench.vm subset of micro benchmarks and also found improvements in o.o.b.v.compiler.ArrayClear.testArrayClear ,  which uses System.arraycopy as well. 
I was also comparing risc-v versus aarch64, (on rbpi4, which has no sve, and neon was disabled), thead c910 seems to be somewhat comparable( overall, not on jdk-only) to cortex-a72, after normalizing per mhz.
And here are results:
1.0 - relative result of A72, first column - before the patch, second - after the patch, the last one - the increment in percents 
o.o.b.v.compiler.ArrayCopyObject.conjoint_micro.31     0,720 0,855 18,7
o.o.b.v.compiler.ArrayCopyObject.conjoint_micro.63     0,660 0,889 34,8
o.o.b.v.compiler.ArrayCopyObject.conjoint_micro.127   0,675 0,993 47,3
o.o.b.v.compiler.ArrayCopyObject.conjoint_micro.2047 0,545 1,021 87,3
o.o.b.v.compiler.ArrayCopyObject.conjoint_micro.4095 0,541 1,030 90,2
o.o.b.v.compiler.ArrayCopyObject.conjoint_micro.8191 0,580 0,904 55,9
o.o.b.v.compiler.ArrayCopyObject.disjoint_micro.31      0,731 0,860 17,7
o.o.b.v.compiler.ArrayCopyObject.disjoint_micro.63      0,734 0,958 30,5
o.o.b.v.compiler.ArrayCopyObject.disjoint_micro.127    0,663 0,962 45,1
o.o.b.v.compiler.ArrayCopyObject.disjoint_micro.2047  0,520 1,023 96,6
o.o.b.v.compiler.ArrayCopyObject.disjoint_micro.4095  0,525 1,052 100,5
o.o.b.v.compiler.ArrayCopyObject.disjoint_micro.8191  0,621 1,200 93,4
o.o.b.v.compiler.ArrayClear.testArrayClear                    0,819 1,409 71,9

I have published the PR: https://github.com/openjdk/jdk/pull/11058

Regards, Vladimir.
> 8 нояб. 2022 г., в 19:27, Aleksey Shipilev <shade at redhat.com> написал(а):
> 
> On 11/8/22 17:10, Vladimir Kempik wrote:
>>> Any help on catching these bugs is highly appreciated.
> 
> Try to pass this:
> 
> $ make test TEST=hotspot_compiler_arraycopy
> 
> I added those to extensively cover the arraycopy improvements work for x86_64.
> 
> If RISC-V arraycopy code has any option flags, feel free to add them to test matrix here:
> https://github.com/openjdk/jdk/blob/dd5d4df5b68a40923987841a206fac5032d72f71/test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java#L152
> 
> -- 
> Thanks,
> -Aleksey
> 



More information about the riscv-port-dev mailing list