Design of a custom vector operation API exploiting SIMD intrinsics within Java
Design of a custom vector operation API exploiting SIMD intrinsics within Java
复制标题
利用 Java 中的 SIMD 内在函数设计自定义向量运算 API
DOI:
10.1109/ccece.2010.5575190
复制
发表时间:
2010
期刊:
影响因子:
--
通讯作者:
V. Groza
中科院分区:
文献类型:
--
作者:
J. Parri;J. Desmarais;Daniel Shapiro;M. Bolic;V. Groza
The use of Single Instruction Multiple Data (SIMD) operations can be instrumental in meeting the needs of high performance computations. Most languages, including C/C++, give a user the power to directly exploit this hardware and inherent parallelism. We have created a retargetable native SIMD library which Java programmers are now able to use to directly access SIMD intrinsics including MMX, SSE1, SSE2 and SSE3 through prescribed Java methods in an API. This API gives users direct control over their high-performance computations instead of solely relying on the SIMD optimizations of the Java Virtual Machine (JVM), or relying on a GPU which must send and receive the data from the CPU. Through the use of this Java API and the included backing library, substantial performance gains can be achieved on large and complex vector operations. We show an example for which the API obtains a 2x to 3x speedup for both small and large data sets as compared to solely relying on the SIMD optimizations in the JVM.