Litcius/Paper detail

A Holistic Approach to Automatic Mixed-Precision Code Generation and Tuning for Affine Programs

Jinchen Xu, Guanghui Song, Bei Zhou, Li Fei, Jiangwei Hao, Jie Zhao

202414 citationsDOI

Abstract

Reducing floating-point (FP) precision is used to trade the quality degradation of a numerical program's output for performance, but this optimization coincides with type casting, whose overhead is undisclosed until a mixed-precision code version is generated. This uncertainty enforces the decoupled implementation of mixed-precision code generation and autotuning in prior work. In this paper, we present a holistic approach called PrecTuner that consolidates the mixed-precision code generator and the autotuner by defining one parameter. This parameter is first initialized by some automatically sampled values and used to generate several code variants, with various loop transformations also taken into account. The generated code variants are next profiled to solve a performance model formulated using the aforementioned parameter, possibly under a pre-defined quality degradation budget. The best-performing value of the defined parameter is finally predicted without evaluating all code variants. Experimental results of the PolyBench benchmarks on CPU demonstrate that PrecTuner outperforms LuIs by 3.28× while achieving smaller errors, and we also validate its effectiveness in optimizing a real-life large-scale application. In addition, PrecTuner also obtains a mean speedup of 1.81× and 1.52×-1.73× over Pluto on single- and multi-core CPU, respectively, and 1.71× over PPCG on GPU.

Topics & Concepts

Computer scienceCode (set theory)Double-precision floating-point formatSingle-precision floating-point formatCode generationSpeedupOverhead (engineering)Affine transformationAlgorithmParallel computingGenerator (circuit theory)Computer engineeringFloating pointSet (abstract data type)MathematicsProgramming languageKey (lock)Power (physics)PhysicsQuantum mechanicsComputer securityPure mathematicsNumerical Methods and AlgorithmsParallel Computing and Optimization TechniquesLogic, programming, and type systems