Search papers, labs, and topics across Lattice.
This paper enhances the polyhedral compiler Pluto by integrating a coordinate-wise hill-climbing tuner that fine-tunes numeric transformation parameters, such as tile sizes and thread-block dimensions, after the initial kernel structure is selected. The approach employs expanded neighborhood exploration and a shortest-hop refinement phase to ensure rapid convergence and avoid local minima. The results show that the tuned kernels achieve a geometric mean speedup of 1.06-1.28x over Pluto's default and outperform static optimizers, while also providing notable improvements in GPU configurations on NVIDIA A100 hardware.
Tuning polyhedral optimizations with hill climbing can yield up to 28% faster execution compared to static optimizers, bridging the gap between fixed-cost compilation and full autotuning.
This paper describes our experience extending the polyhedral compiler Pluto with a lightweight, coordinate-wise hill-climbing tuner that adjusts numeric transformation parameters, such as tile sizes and thread-block dimensions, after Pluto selects the kernel's loop structure. To ensure fast convergence and escape local minima, hill climbing is augmented with two techniques: expanded neighborhood exploration and a shortest-hop refinement phase. On x86 and ARM CPUs, tuned kernels outperform Pluto's default configuration (1.06-1.28x geometric mean speedup across 11 benchmarks) and static optimizers (Clang -O3, Polly, IOOpt), reaching performance competitive with the AutoTVM autotuner at substantially lower search cost. Applying the same technique to GPU thread-block allocation on an NVIDIA A100 yields 5.5-8.5% improvement over default configurations. These results position post-optimization parameter tuning as a practical middle ground between fixed-cost-model polyhedral compilation and full autotuning.