NUMA Emulation Yields "Significant Performance Uplift" To Raspberry Pi 5
([Arm] 5 Hours Ago
ARM64 NUMA Emulation)
- Reference: 0001473253
- News link: https://www.phoronix.com/news/ARM64-NUMA-Emulation-RPi5
- Source link:
Engineers at consulting firm Igalia are exploring NUMA emulation for ARM64 (AArch64) due to the potential of "significant" performance uplift as observed on the popular Raspberry Pi 5 single board computer.
Patches were posted today for NUMA emulation on 64-bit ARM with the Linux kernel. Igalia found significant performance benefits with around 18% better multi-core performance in Geekbench and around 6% better performance for single-core performance. That's it for the benchmark numbers shared in the initial patches posted for this ARM64 NUMA emulation.
Igalia's Tvrtko Ursulin wrote:
"This series adds a very simple NUMA emulation implementation and enables selecting it on arm64 platforms.
Obvious question is why? Short answer - it can bring a significant performance uplift on Raspberry Pi 5.
Longer answer is that splitting the physical RAM into chunks, and utilising an allocation policy such as interleaving, can enable the BCM2721 memory controller to better utilise parallelism in physical memory chip organisation.
In more concrete numbers, testing with Geekbench 6 shows that splitting into four emulated NUMA nodes can uplift the single core score of the benchmark by around 6%, and the multi-core by around 18%.
Code is quite simple and new functionality can be enabled using the new NUMA_EMULATION Kconfig option and then at runtime using the existing (shared with other platforms) numa=fake= kernel boot argument."
[1]The patch series is just around one hundred lines of new code for getting NUMA emulation working on ARM64.
The code is now out for review and given the enticing performance benefits for the Raspberry Pi and other ARM64 systems, hopefully it will be merged sooner rather than later.
[1] https://lore.kernel.org/lkml/20240625125803.38038-1-tursulin@igalia.com/
Patches were posted today for NUMA emulation on 64-bit ARM with the Linux kernel. Igalia found significant performance benefits with around 18% better multi-core performance in Geekbench and around 6% better performance for single-core performance. That's it for the benchmark numbers shared in the initial patches posted for this ARM64 NUMA emulation.
Igalia's Tvrtko Ursulin wrote:
"This series adds a very simple NUMA emulation implementation and enables selecting it on arm64 platforms.
Obvious question is why? Short answer - it can bring a significant performance uplift on Raspberry Pi 5.
Longer answer is that splitting the physical RAM into chunks, and utilising an allocation policy such as interleaving, can enable the BCM2721 memory controller to better utilise parallelism in physical memory chip organisation.
In more concrete numbers, testing with Geekbench 6 shows that splitting into four emulated NUMA nodes can uplift the single core score of the benchmark by around 6%, and the multi-core by around 18%.
Code is quite simple and new functionality can be enabled using the new NUMA_EMULATION Kconfig option and then at runtime using the existing (shared with other platforms) numa=fake= kernel boot argument."
[1]The patch series is just around one hundred lines of new code for getting NUMA emulation working on ARM64.
The code is now out for review and given the enticing performance benefits for the Raspberry Pi and other ARM64 systems, hopefully it will be merged sooner rather than later.
[1] https://lore.kernel.org/lkml/20240625125803.38038-1-tursulin@igalia.com/
panikal