Is RISC-V Ready for Machine Learning? Portable Gaussian Processes Using Asynchronous Tasks
Alexander Strack, Patrick Diehl, Dirk Pfl\"uger

TL;DR
This paper extends the GPRat library for Gaussian processes to be portable across various hardware architectures, evaluating its performance on x86-64, ARM, and RISC-V chips, revealing scalability and performance differences.
Contribution
The work introduces a portable implementation of Gaussian process inference using GPRat with HPX, enabling cross-architecture performance evaluation and highlighting hardware-specific scalability insights.
Findings
x86-64 outperforms ARM in single-core performance by 58%
ARM's superior parallel scaling surpasses Zen 2 at full node utilization
RISC-V shows significantly lower performance and scalability, lagging behind by up to 14 times in single-core performance
Abstract
Gaussian processes are widely used in machine learning domains but remain computationally demanding, limiting their efficient scalability across diverse hardware platforms. The GPRat library targets these challenges with the help of the asynchronous many-task runtime system HPX. In this work, we extend GPRat to enable portability across multiple hardware architectures and evaluate its performance on representative x86-64, ARM, and RISC-V chips. We conduct node-level strong-scaling and problem-size-scaling benchmarks for Gaussian Process prediction and hyperparameter optimization to assess single-core performance, parallel scalability, and architectural efficiency. Our results show that while the x86-64 Zen 2 chip achieves a 58% single-core performance advantage over the ARM-based Fujitsu A64FX, superior parallel scaling allows the 48-core ARM chip to outperform the 64-core Zen 2 by 9%…
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.
