FloatX: A C++ Library for Customized Floating-Point Arithmetic

[EN] We present FloatX (Float eXtended), a C++ framework to investigate the effect of leveraging customized floating-point formats in numerical applications. FloatX formats are based on binary IEEE 754 with smaller significand and exponent bit counts specified by the user. Among other properties, Fl...

Descripción completa

Detalles Bibliográficos
Autores: Flegar, Goran, Scheidegger, Florian, Novakovic, Vedran, Mariani, Giovani, Malossi, Cristiano, Tomás Domínguez, Andrés Enrique, Quintana-Ortí, Enrique S.|||0000-0002-5454-165X
Tipo de recurso: artículo
Fecha de publicación:2019
País:España
Institución:Universitat Politècnica de València (UPV)
Repositorio:RiuNet. Repositorio Institucional de la Universitat Politécnica de Valéncia
Idioma:inglés
OAI Identifier:oai:riunet.upv.es:10251/152256
Acceso en línea:https://riunet.upv.es/handle/10251/152256
Access Level:acceso abierto
Palabra clave:ACM proceedings
LATEX
Text tagging
LENGUAJES Y SISTEMAS INFORMATICOS
ARQUITECTURA Y TECNOLOGIA DE COMPUTADORES
Descripción
Sumario:[EN] We present FloatX (Float eXtended), a C++ framework to investigate the effect of leveraging customized floating-point formats in numerical applications. FloatX formats are based on binary IEEE 754 with smaller significand and exponent bit counts specified by the user. Among other properties, FloatX facilitates an incremental transformation of the code, relies on hardware-supported floating-point types as back-end to preserve efficiency, and incurs no storage overhead. The article discusses in detail the design principles, programming interface, and datatype casting rules behind FloatX. Furthermore, it demonstrates FloatX's usage and benefits via several case studies from well-known numerical dense linear algebra libraries, such as BLAS and LAPACK; the Ginkgo library for sparse linear systems; and two neural network applications related with image processing and text recognition.