SIMD Everywhere Optimization from ARM NEON to RISC-V Vector Extensions
Ju-Hung Li, Jhih-Kuan Lin, Yung-Cheng Su, Chi-Wei Chu, Lai-Tak Kuok,, Hung-Ming Lai, Chao-Lin Lee, Jenq-Kuen Lee

TL;DR
This paper presents an enhanced version of the open source tool SIMDe to automate the migration of ARM NEON SIMD code to RISC-V Vector Extensions, significantly improving performance in real-world libraries.
Contribution
The authors extend SIMDe to support ARM NEON to RISC-V Vector Extensions conversion, enabling automated, efficient migration of SIMD code with customized function conversions.
Findings
Achieved speedup of 1.51x to 5.13x in XNNPACK library using enhanced SIMDe.
Developed strategies for type conversion considering vector length agnostic architectures.
Customized function conversions lead to significant performance improvements.
Abstract
Many libraries, such as OpenCV, FFmpeg, XNNPACK, and Eigen, utilize Arm or x86 SIMD Intrinsics to optimize programs for performance. With the emergence of RISC-V Vector Extensions (RVV), there is a need to migrate these performance legacy codes for RVV. Currently, the migration of NEON code to RVV code requires manual rewriting, which is a time-consuming and error-prone process. In this work, we use the open source tool, "SIMD Everywhere" (SIMDe), to automate the migration. Our primary task is to enhance SIMDe to enable the conversion of ARM NEON Intrinsics types and functions to their corresponding RVV Intrinsics types and functions. For type conversion, we devise strategies to convert Neon Intrinsics types to RVV Intrinsics by considering the vector length agnostic (vla) architectures. With function conversions, we analyze commonly used conversion methods in SIMDe and develop…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Software Testing and Debugging Techniques · Security and Verification in Computing
