SIMD support to improve eclipse OpenJ9 performance on the AArch64 platform
- 17 May 2022
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM) in Proceedings of the 19th ACM International Conference on Computing Frontiers
Abstract
Just-in-time (JIT) compilers achieve application portability and improved management of large code-bases by abstracting the architecture specific details from programmers. Eclipse OMR and Eclipse OpenJ9 invest extensively in JIT technology to efficiently execute architecture-neutral Java bytecode. OMR is a robust language runtime builder, and OpenJ9 is a managed language runtime that consumes OMR. The targeted domains of OMR and OpenJ9 include AArch64, a 64-bit version of the ARM architecture. AArch64 is a popular member of the embedded computing market, where computing infrastructure resources (e.g., CPU, memory) are constrained. The concept of SIMD (Single Instruction, Multiple Data) instructions primarily evolved to accelerate the performance of multimedia applications such as motion video, real-time physics and graphics where repetitive operations were involved on large arrays of numbers. This paper discusses the steps taken to add SIMD support to OMR for AArch64. The implementation of advanced SIMD and floating-point instructions are also discussed, which cover vectorized mathematical operations, including addition, subtraction, multiplication, and division for supported data-types. We validate our implementation through relevant OMR tril tests, present two microbenchmarks VectorizationMicrobenchmark and Sepia Tone Filter and a set of standard benchmarks, which leverage the OpenJ9 autovectorization process in AArch64. The AArch64 vectorized operations are evaluated against non-vectorized, but similar operations using Eclipse OpenJ9. We demonstrate an improvement of up to four times in execution speed of certain vector arithmetic operations.Keywords
Funding Information
- Atlantic Innovation Fund (AIF) (209763)
This publication has 15 references indexed in Scilit:
- Reduced Instruction Set Computers Then and NowComputer, 2017
- Characterizing and optimizing Java-based HPC applications on Intel many-core architectureScience China Information Sciences, 2017
- Vectorization for JavaLecture Notes in Computer Science, 2010
- A Review of SIMD Multimedia Extensions and their Usage in Scientific and Engineering ApplicationsThe Computer Journal, 2008
- The DaCapo benchmarksPublished by Association for Computing Machinery (ACM) ,2006
- Parallelism and the ARM instruction set architectureComputer, 2005
- Energy aware compilation for DSPs with SIMD instructionsACM SIGPLAN Notices, 2002
- Implementing database operations using SIMD instructionsPublished by Association for Computing Machinery (ACM) ,2002
- A SIMD vectorizing compiler for digital signal processing algorithmsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Implicit Lower-Upper/Approximate-Factorization Schemes for Incompressible FlowsJournal of Computational Physics, 1996