Deep learning for compilers
dc.contributor.advisor
Leather, Hugh
en
dc.contributor.advisor
Petoumenos, Pavlos
en
dc.contributor.advisor
Mayr, Richard
en
dc.contributor.author
Cummins, Christopher Edward
en
dc.contributor.sponsor
Engineering and Physical Sciences Research Council (EPSRC)
en
dc.date.accessioned
2020-03-12T12:08:35Z
dc.date.available
2020-03-12T12:08:35Z
dc.date.issued
2020-06-25
dc.description.abstract
Constructing compilers is hard. Optimising compilers are multi-million dollar projects
spanning years of development, yet remain unable to fully exploit the available performance,
and are prone to bugs. The rapid transition to heterogeneous parallelism and
diverse architectures has raised demand for aggressively-optimising compilers to an
all time high, leaving compiler developers struggling to keep up. What is needed are
better tools to simplify compiler construction.
This thesis presents new techniques that dramatically lower the cost of compiler
construction, while improving robustness and performance. The enabling insight for
this research is the leveraging of deep learning to model the correlations between
source code and program behaviour, enabling tasks which previously required significant
engineering effort to be automated. This is demonstrated in three domains:
First, a generative model for compiler benchmarks is developed. The model requires
no prior knowledge of programming languages, yet produces output of such
quality that professional software developers cannot distinguish generated from hand-written
programs. The efficacy of the generator is demonstrated by supplementing the
training data of predictive models for compiler optimisations. The generator yields an
automatic improvement in heuristic performance, and exposes weaknesses in state-of-the-
art approaches which, when corrected, yield further performance improvements.
Second, a compiler fuzzer is developed which is far simpler than prior techniques.
By learning a generative model rather than engineering a generator from scratch, it is
implemented in 100 fewer lines of code than the state-of-the-art, yet is capable of
exposing bugs which prior techniques cannot. An extensive testing campaign reveals
67 new bugs in OpenCL compilers, many of which have now been fixed.
Finally, this thesis addresses the challenge of feature design. A methodology for
learning compiler heuristics is presented that, in contrast to prior approaches, learns
directly over the raw textual representation of programs. The approach outperforms
state-of-the-art models with hand-engineered features in two challenging optimisation
domains, without requiring any expert guidance. Additionally, the methodology enables
models trained in one task to be adapted to perform another, permitting the novel
transfer of information between optimisation problem domains.
The techniques developed in these three contrasting domains demonstrate the exciting
potential of deep learning to simplify and improve compiler construction. The
outcomes of this thesis enable new lines of research to equip compiler developers to
keep up with the rapidly evolving landscape of heterogeneous architectures.
en
dc.identifier.uri
https://hdl.handle.net/1842/36866
dc.identifier.uri
http://dx.doi.org/10.7488/era/168
dc.language.iso
en
dc.publisher
The University of Edinburgh
en
dc.relation.hasversion
Chris Cummins, Pavlos Petoumenos, Zheng Wang, and Hugh Leather “Synthesizing Benchmarks for Predictive Modeling”. In Proceedings of the International Symposium on Code Generation and Optimization (CGO), 2017.
en
dc.relation.hasversion
Chris Cummins, Pavlos Petoumenos, Alastair Murray, and Hugh Leather “Compiler Fuzzing through Deep Learning”. In Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA), 2018.
en
dc.relation.hasversion
Chris Cummins, Pavlos Petoumenos, Zheng Wang, and Hugh Leather “End-to-end Deep Learning of Optimization Heuristics”. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT), 2017.
en
dc.relation.hasversion
C. Cummins, P. Petoumenos, M. Steuwer, and H. Leather. “Autotuning OpenCL Workgroup Size for Stencil Patterns”. In: International Workshop on Adaptive Self-tuning Computing Systems (ADAPT). 2016.
en
dc.relation.hasversion
C. Cummins, P. Petoumenos, M. Steuwer, and H. Leather. “Towards Collaborative Performance Tuning of Algorithmic Skeletons”. In: High- Level Programming for Heterogeneous and Hierarchical Parallel Systems (HLPGPU). 2016.
en
dc.relation.hasversion
C. Cummins, P. Petoumenos, A. Murray, and H. Leather. “DeepSmith: Compiler Fuzzing through Deep Learning”. In: ACACES. 2018.
en
dc.subject
optimising compilers
en
dc.subject
compiler construction
en
dc.subject
deep learning
en
dc.subject
generative model
en
dc.subject
compiler fuzzer
en
dc.subject
compiler heuristics
en
dc.title
Deep learning for compilers
en
dc.type
Thesis or Dissertation
en
dc.type.qualificationlevel
Doctoral
en
dc.type.qualificationname
PhD Doctor of Philosophy
en
Files
Original bundle
1 - 1 of 1
- Name:
- Cummins2020.pdf
- Size:
- 5.67 MB
- Format:
- Adobe Portable Document Format
- Description:
This item appears in the following Collection(s)

