paper-with-me

홈 › Papers

Learning to Superoptimize Real-world Programs

2021-09-28 · Alex Shypula, Pengcheng Yin, Jeremy Lacomis, Claire Le Goues, Edward Schwartz, Graham Neubig

Program optimization is the process of modifying software to execute more efficiently. Superoptimizers attempt to find the optimal program by employing significantly more expensive search and constraint solving techniques. Generally, these methods do not scale well to programs in real development scenarios, and as a result, superoptimization has largely been confined to small-scale, domain-specific, and/or synthetic program benchmarks. In this paper, we propose a framework to learn to superoptimize real-world programs by using neural sequence-to-sequence models. We created a dataset consisting of over 25K real-world x86-64 assembly functions mined from open-source projects and propose an approach, Self Imitation Learning for Optimization (SILO) that is easy to implement and outperforms a standard policy gradient learning approach on our dataset. Our method, SILO, superoptimizes 5.9% of our test set when compared with the gcc version 10.3 compiler's aggressive optimization level -O3. We also report that SILO's rate of superoptimization on our test set is over five times that of a standard policy gradient approach and a model pre-trained on compiler optimization demonstration.

📄 PDF Abstract BibTeX arXiv:2109.13498

Code (0)

등록된 구현이 없습니다.

Tasks

Compiler OptimizationImitation Learning

Methods 이 논문이 사용한 방법론

Test 설명 없음

Similar Papers 제목 키워드 기반

Axon: A Synthesizing Superoptimizer for Tensor Programs

2026-06-24 · Akash Kothari, Shaowei Zhu, Daniel Kroening, Chungha Sung arxiv

Writing high performance kernels for AI accelerators requires deep expertise in tiling, instruction selection, data layout, and operator fusion placing a significant burden on programmers. In this paper, we focus on tile…

Program Synthesis

Mirage: A Multi-Level Superoptimizer for Tensor Programs

2024-05-09 · Mengdi Wu, Xinhao Cheng, Shengyu Liu, Chunan Shi 외

We introduce Mirage, the first multi-level superoptimizer for tensor programs. A key idea in Mirage is $\mu$Graphs, a uniform representation of tensor programs at the kernel, thread block, and thread levels of the GPU co…

GPUNavigate

Prism: Symbolic Superoptimization of Tensor Programs

2026-04-16 · Mengdi Wu, Xiaoyu Jiang, Oded Padon, Zhihao Jia arxiv

This paper presents Prism, the first symbolic superoptimizer for tensor programs. The key idea is sGraph, a symbolic, hierarchical representation that compactly encodes large classes of tensor programs by symbolically re…

Graph Generation

Learning to superoptimize programs - Workshop Version

2016-12-04 · Rudy Bunel, Alban Desmaison, M. Pawan Kumar, Philip H. S. Torr 외

Superoptimization requires the estimation of the best program for a given computational task. In order to deal with large programs, superoptimization techniques perform a stochastic search. This involves proposing a modi…

reinforcement-learningReinforcement LearningReinforcement Learning (RL)

A Learned Performance Model for Tensor Processing Units

2020-08-03 · Samuel J. Kaufman, Phitchaya Mangpo Phothilimthana, Yanqi Zhou, Charith Mendis 외

Accurate hardware performance models are critical to efficient code generation. They can be used by compilers to make heuristic decisions, by superoptimizers as a minimization objective, or by autotuners to find an optim…

Code Generationmodel