FPVM: Towards a Floating Point Virtual Machine
Peter A. Dinda, Nick Wanninger, Jiacheng Ma, Alex Bernat, Charles Bernat, Souradip Ghosh, Christopher Kraemer, Yehya Elmasry
Abstract
Alternatives to IEEE floating point arithmetic have become all the rage. Some extract more representational power out of the available bits. Others offer the potential for lower or higher precision than is available in IEEE-compatible hardware. Even an "interface to the real numbers" has recently been proposed. Using such alternative arithmetic systems within an existing scientific or other significant codebase is a major challenge, however. We explore how to address this challenge through virtualizing the IEEE floating point hardware, specifically on x64. The goal of the floating point virtual machine (FPVM) is to allow an existing application binary to be seamlessly extended to support the desired alternative arithmetic system with overheads determined by that system and not the virtualization mechanisms. We describe the prospects, issues, and tradeoffs for four different approaches for building FPVM: trap-and-emulate, trap-and-patch, binary transformation, and IR transformation. We then describe the design and implementation of our current design, which combines static binary analysis/translation and trap-and-emulate execution. We evaluate our FPVM implementation on several benchmarks, virtualizing them to use posits and MPFR. Finally, we comment on kernel- and hardware-level innovations that could further reduce overheads for floating point virtualization.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext f4434e18-c52c-478d-898f-493cc3fcf325Cited by top-tier papers2
- RAPTOR: Practical Numerical Profiling of Scientific ApplicationsFaveo Hoerold, Ivan R. Ivanov, Akash Dhruv, William S. Moses et al.SC 2025 · 4 citations
- Virtualization So Light, it Floats! Accelerating Floating Point VirtualizationNick Wanninger, Nadharm Dhiantravan, Peter A. DindaHPDC 2025 · 2 citations
Builds on4
- Binary rewriting without control flow recoveryGregory J. Duck, Xiang Gao, Abhik RoychoudhuryPLDI 2020 · 77 citations
- Spying on the Floating Point Behavior of Existing, Unmodified Scientific ApplicationsPeter A. Dinda, Alex Bernat, Conor HetlandHPDC 2020 · 20 citations
- Towards an API for the real numbersHans-Juergen BoehmPLDI 2020 · 12 citations
- Compiler-based timing for extremely fine-grain preemptive parallelismSouradip Ghosh, Michael Cuevas, Simone Campanoni, Peter A. DindaSC 2020 · 7 citations
Related papers
- Enabling Floating Point Virtualization With Tiny NumbersKevin Hayes, Peter A. DindaHPDC 2026
- An approach to generate correctly rounded math libraries for new floating point variantsJay P. Lim, Mridul Aanjaneya, John L. Gustafson, Santosh NagarakattePOPL 2021 · 21 citations
- Debugging and detecting numerical errors in computation with positsSangeeta Chowdhary, Jay P. Lim, Santosh NagarakattePLDI 2020 · 26 citations
- Towards Verified, Constant-time Floating Point OperationsMarc Andrysco, Andres Nötzli, Fraser Brown, Ranjit Jhala et al.CCS 2018 · 33 citations
- Fast Instruction Selection for Fast Digital Signal ProcessingAlexander J. Root, Maaz Bin Safeer Ahmad, Dillon Sharlet, Andrew Adams et al.ASPLOS 2023 · 7 citations
