Skip to Main content Skip to Navigation

Custom floating-point arithmetic for integer processors : algorithms, implementation, and selection

Jingyan Jourdan 1, 2
2 ARIC - Arithmetic and Computing
Inria Grenoble - Rhône-Alpes, LIP - Laboratoire de l'Informatique du Parallélisme
Abstract : Media processing applications typically involve numerical blocks that exhibit regular floating-point computation patterns. For processors whose architecture supports only integer arithmetic, these patterns can be profitably turned into custom operators, coming in addition to the five basic ones (+, -, X, / and √), but achieving better performance by treating more operations. This thesis addresses the design of such custom operators as well as the techniques developed in the compiler to select them in application codes. We have designed optimized implementations for a set of custom operators which includes squaring, scaling, adding two nonnegative terms, fused multiply-add, fused square-add (x*x+z, with z>=0), two-dimensional dot products (DP2), sums of two squares, as well as simultaneous addition/subtraction and sine/cosine. With novel algorithms targeting high instruction-level parallelism and detailed here for squaring, scaling, DP2, and sin/cos, we achieve speedups of up to 4.2x for individual custom operators even when subnormal numbers are fully supported. Furthermore, we introduce the optimizations developed in the ST231 C/C++ compiler for selecting such operators. Most of the selections are achieved at high level, using syntactic criteria. However, for fused square-add, we also enhance the framework of integer range analysis to support floating-point variables in order to prove the required positivity condition z>= 0. Finally, we provide quantitative evidence of the benefits to support this selection of custom operations: on DSP kernels and benchmarks, our approach allows us to be up to 1.59x faster compared to the sole usage of basic ones.
Document type :
Complete list of metadata

Cited literature [78 references]  Display  Hide  Download
Contributor : Abes Star :  Contact
Submitted on : Tuesday, January 22, 2013 - 3:33:42 PM
Last modification on : Wednesday, November 20, 2019 - 3:15:10 AM


Version validated by the jury (STAR)


  • HAL Id : tel-00779764, version 1



Jingyan Jourdan. Custom floating-point arithmetic for integer processors : algorithms, implementation, and selection. Other [cs.OH]. Ecole normale supérieure de lyon - ENS LYON, 2012. English. ⟨NNT : 2012ENSL0762⟩. ⟨tel-00779764⟩



Record views


Files downloads