Flint: Exploiting floating point enabled integer arithmetic for efficient random forest inference

Abstract

In many machine learning applications, e.g., tree-based ensembles, floating point numbers are extensively utilized due to their expressiveness. Even if floating point hardware is present in general computing systems, using integer operations instead of floating point operations promises to reduce operation overheads and improve the performance. In this paper, we provide FLInt, a full precision floating point comparison for random forests, by only using integer and logic operations. The usage of FLInt basically boils down to a one-by-one replacement of conditions: For instance, a comparison statement in C: if(pX [3]<=(float)10.074347) becomes if (((((int) (pX)) +3)) <= ((int) (0×41213087))). Experimental evaluation on X86 and ARMv8 desktop and server class systems shows that the execution time can be reduced by up to ≈ 30% with our novel approach.

Publication
Design, Automation & Test in Europe Conference & Exhibition