SIMD Everywhere Optimization from ARM NEON to RISC-V Vector Extensions
summary
Enhanced SIMDe converts ARM NEON intrinsics to RISC‑V V-extension intrinsics and C‑level vectors, implements customized per-function translations, and adds a fixed-size RVV attribute so RVV types can live in global unions. Conversion reaches about 57% conversion coverage of NEON instructions and uses RVV intrinsics where available; tested on XNNPACK and OpenCV and yields 1.51–5.13× speedup over unmodified SIMDe. Remaining issues include redundant vset emissions and missed cross‑lane aggregation for long RVV lengths; SIMDe is the tool used.
AI-written summary · about
chapters (12)
- 0:00Introduction to SIMD
- 1:00SIMD Everywhere overview
- 2:20Project contributions
- 3:11Technical design challenges
- 5:56Function conversion strategy
- 6:41Intrinsic mapping examples
- 9:40Implementation example
- 10:18Experimental results
- 11:40Performance issues
- 12:58Ongoing optimization work
- 14:06Conclusion and Q&A
- 15:03Industry application
related talks
19mAggregation Optimization for SIMD Everywhere from ARM Neon to RISC-V Vector and Crypto Extensions
15mPushing the Packed SIMD Extension Over the Line: An Update on the Progress of Key RISC...
17mRecent Developments in Optimizing Compilers for RISC-V
19mGetting the Most out of the LLVM Auto Vectorizer for RISC-V Vectors (RVV)
10mAn Introduction to RISC-V Vector Programming with C Intrinsics
16mImprovements to RISC-V Vector code generation in LLVM
28mLLVM for RISCV
23mCode Size of RISC V versus ARM using the Embench™ 0 5 Benchmark Suite
