vix.ing · top · new · best · stats · spec

Pushing the Limits of Online Auto-tuning: Machine Code Optimization in\n Short-Running Kernels

2017/07/14 by Fernando A. Endo, Endo, Fernando, Damien Couroussé +3
Computer Science · #Advanced Data Storage Technologies #Advanced Neural Network Applications #FOS: Computer and information sciences #Parallel Computing and Optimization Techniques #Performance (cs.PF)

paper · pdf · doi:10.48550/arxiv.1707.04566

openalex publication_date 2017/07/14 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28

Abstract

We propose an online auto-tuning approach for computing kernels. Differently\nfrom existing online auto-tuners, which regenerate code with long compilation\nchains from the source to the binary code, our approach consists on deploying\nauto-tuning directly at the level of machine code generation. This allows\nauto-tuning to pay off in very short-running applications. As a proof of\nconcept, our approach is demonstrated in two benchmarks, which execute during\nhundreds of milliseconds to a few seconds only. In a CPU-bound kernel, the\naverage speedups achieved are 1.10 to 1.58 depending on the target\nmicro-architecture, up to 2.53 in the most favourable conditions (all run-time\noverheads included). In a memory-bound kernel, less favourable to our runtime\nauto-tuning optimizations, the average speedups are 1.04 to 1.10, up to 1.30 in\nthe best configuration. Despite the short execution times of our benchmarks,\nthe overhead of our runtime auto-tuning is between 0.2 and 4.2% only of the\ntotal application execution times. By simulating the CPU-bound application in\n11 different CPUs, we showed that, despite the clear hardware disadvantage of\nIn-Order (io) cores vs. Out-of-Order (ooo) equivalent cores, online auto-tuning\nin io CPUs obtained an average speedup of 1.03 and an energy efficiency\nimprovement of 39~ % over the SIMD reference in ooo CPUs.\n

Related