Enhance the Performance of QEMU RVV Load/Store Implementation
summary
QEMU’s RVV loads/stores are a hotspot, so implementation uses per-page probing to pre-translate and validate pages once and then reuse translation and permission results for elements in the same page, falling back to the original element-by-element API on faults. Patches also batch moves (eight bytes at a time) and leverage host memcpy use for large contiguous ranges. Results show memcpy workloads up to 9x faster in user mode and 15x in system mode, SPEC CPU2017 integer ~22% faster, and Android boot time roughly halved; some patches are merged, others under review.
AI-written summary · about
chapters (10)
- 0:00Introduction to talk
- 1:49Choosing benchmarks for testing
- 3:11Profiling memory copy performance
- 5:41Overhead from TCG API calls
- 8:17Applying optimizations to RVV
- 11:06Performance results overview
- 13:34Community collaboration efforts
- 16:20Challenges in performance measurement
- 17:46Future directions for QEMU RVV
- 19:55Q&A session
related talks
48mUpstreaming SVE in QEMU
42mThe Big-endian RISC-V Linux Adventure
22mQEMU/KVM Upgrade Test (Stable Guest ABI and in Place Upgrade)
19mHow NOT To Program an Out-of-order Vector Processor
11mRunning Quake on RISC V with Virtual Platforms
43mSponsored Session: Why Don't You Love Me Back, Open-source Software?
21mDriving Innovation: Evolving the Role of Software in the RISC-V Ecosystem Beyond...
16mVerifying Out-Of-Order RISC-V Vector Extension With Open Source Tools
