A DESCRIPTION OF THE REQUEST :
Java should provide access to SIMD execution of floating point instructions, either through intrinsic functions, automatic detection by HotSpot or extremely low overhead calls to native instructions.
JUSTIFICATION :
In order to maintain performance parity with C/C++. C/C++ can easily use SIMD instructions, allowing significant performance improvements on critical floating-point kernels.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Java matching performance with C/C++ on SIMD-ed kernels.
ACTUAL -
Java not matching performance with C/C++ on SIMD-ed kernels.
CUSTOMER SUBMITTED WORKAROUND :
Sometimes it is possible to move the kernel to C/C++, use SIMD there and call via JNI. However, the cost of the JNI call can be significant as are the difficulties of ensuring memory is properly aligned for SIMD execution.
Java should provide access to SIMD execution of floating point instructions, either through intrinsic functions, automatic detection by HotSpot or extremely low overhead calls to native instructions.
JUSTIFICATION :
In order to maintain performance parity with C/C++. C/C++ can easily use SIMD instructions, allowing significant performance improvements on critical floating-point kernels.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Java matching performance with C/C++ on SIMD-ed kernels.
ACTUAL -
Java not matching performance with C/C++ on SIMD-ed kernels.
CUSTOMER SUBMITTED WORKAROUND :
Sometimes it is possible to move the kernel to C/C++, use SIMD there and call via JNI. However, the cost of the JNI call can be significant as are the difficulties of ensuring memory is properly aligned for SIMD execution.
- duplicates
-
JDK-6340864 Implement vectorization optimizations in hotspot-server
-
- Resolved
-