PPC64 VMX/VSX array copy stubs
Miki M Enoki
ENOMIKI at jp.ibm.com
Sun Apr 17 18:28:01 UTC 2016
Dear all,
Could you please review the following change?
I created two patches for generate_disjoint_long_copy with VMX(Vector
Multimedia Extension) and VSX(Vector-Scalar Extension).
Let me share our performance results.
I changed array copy size with aligned (= src and dst alignments match)
and unaligned.
It means that I measured performance with the following four patterns at a
time. Long array is 8 byte alignment, so these patterns will cover align
and unaligned case.
System.arraycopy(src, 0, dst, 0, size);
System.arraycopy(src, 0, dst, 1, size);
System.arraycopy(src, 1, dst, 0, size);
System.arraycopy(src, 1, dst, 1, size);
VMX(max), VSX(max) are aligned score, while VMX(min),VSX(min) are
unaligned score. Scalar is original OpenJDK.
VSX got better performance when array size is less than about 2048 byte,
but VSX(min) got worse than VMX in large array size.
It would be overhead of the alignment in VSX.
Server: 8247-22L (POWER8 (3.3GHz 12 cores) x2, 512GB memory), Ubuntu
Linux 15.04 ppc64LE (kernel: 3.19.0-18-generic),
OpenJDK (build based on 1.9), JVMARGS: “-Xmx40g ?Xms40g -Xmn20g"
Here are benchmark code and patch files.
In the VMX, it is implemented for ppc LE only now. (generated with "hg
diff -g" under the latest hotspot directory.)
Related links:
"8154156: PPC64: improve array copy stubs by using vector instructions"
https://bugs.openjdk.java.net/browse/JDK-8154156
"PPC64 VSX load/store instructions in stubs"
http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/2016-April/002419.html
Regards,
Miki
+ + + + + + +
Miki ENOKI, Ph.D.
IBM Research - Tokyo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160417/fb12037e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 47807 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160417/fb12037e/attachment-0001.jpe>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ppc64le_vmx.diff
Type: application/octet-stream
Size: 7923 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160417/fb12037e/ppc64le_vmx-0001.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ppc64le_vsx.diff
Type: application/octet-stream
Size: 7001 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160417/fb12037e/ppc64le_vsx-0001.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ArrayCopyTest1.java
Type: application/octet-stream
Size: 3177 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160417/fb12037e/ArrayCopyTest1-0001.java>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: result.jpg
Type: image/jpeg
Size: 62057 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160417/fb12037e/result-0001.jpg>
More information about the hotspot-compiler-dev
mailing list