hg: hsx/hotspot-comp/hotspot: 7184394: add intrinsics to use AES instructions
Aleksey Shipilev
aleksey.shipilev at oracle.com
Thu Oct 25 07:10:07 PDT 2012
Ugh! Interesting stuff, I did a few point runs with this changeset on my
2nd gen i5, doing AES/CBC/PKCS5Padding on encrypting 10K byte[]-s:
(1 thread):
-XX:-UseAES -XX:-UseAESIntrinsics: 6476.250 +- 27.245 ops/sec
-XX:+UseAES -XX:-UseAESIntrinsics: 6430.232 +- 47.573 ops/sec
-XX:+UseAES -XX:+UseAESIntrinsics: 34071.202 +- 128.339 ops/sec
This sums up to ~350 Mb/sec throughput with intrinsics in single thread.
(4 threads):
-XX:-UseAES -XX:-UseAESIntrinsics: 9327.480 +- 691.092 ops/sec
-XX:+UseAES -XX:-UseAESIntrinsics: 9455.669 +- 1155.928 ops/sec
-XX:+UseAES -XX:+UseAESIntrinsics: 117949.368 +- 1213.273 ops/sec
This adds up to whooping ~1.2 Gb/sec encryption throughput! It's
puzzling however to see the lower scalability boost with baseline cases.
The intrinsified version is ~4x faster, even though half of my hardware
threads are hyperthreads.
-Aleksey.
On 10/25/2012 04:51 AM, vladimir.kozlov at oracle.com wrote:
> Changeset: a3ecd773a7b9
> Author: kvn
> Date: 2012-10-24 14:33 -0700
> URL: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/a3ecd773a7b9
>
> 7184394: add intrinsics to use AES instructions
> Summary: Use new x86 AES instructions for AESCrypt.
> Reviewed-by: twisti, kvn, roland
> Contributed-by: tom.deneau at amd.com
>
> ! src/cpu/x86/vm/assembler_x86.cpp
> ! src/cpu/x86/vm/assembler_x86.hpp
> ! src/cpu/x86/vm/stubGenerator_x86_32.cpp
> ! src/cpu/x86/vm/stubGenerator_x86_64.cpp
> ! src/cpu/x86/vm/stubRoutines_x86_32.cpp
> ! src/cpu/x86/vm/stubRoutines_x86_32.hpp
> ! src/cpu/x86/vm/stubRoutines_x86_64.cpp
> ! src/cpu/x86/vm/stubRoutines_x86_64.hpp
> ! src/cpu/x86/vm/vm_version_x86.cpp
> ! src/cpu/x86/vm/vm_version_x86.hpp
> ! src/share/vm/classfile/vmSymbols.hpp
> ! src/share/vm/oops/method.cpp
> ! src/share/vm/opto/callGenerator.cpp
> ! src/share/vm/opto/callGenerator.hpp
> ! src/share/vm/opto/doCall.cpp
> ! src/share/vm/opto/escape.cpp
> ! src/share/vm/opto/library_call.cpp
> ! src/share/vm/opto/runtime.cpp
> ! src/share/vm/opto/runtime.hpp
> ! src/share/vm/runtime/globals.hpp
> ! src/share/vm/runtime/stubRoutines.cpp
> ! src/share/vm/runtime/stubRoutines.hpp
> + test/compiler/7184394/TestAESBase.java
> + test/compiler/7184394/TestAESDecode.java
> + test/compiler/7184394/TestAESEncode.java
> + test/compiler/7184394/TestAESMain.java
>
More information about the hotspot-compiler-dev
mailing list