Skip to content

SpringRi/phd

 
 

Repository files navigation

My PhD

A monolothic repository for (almost) everything I have done while at the University of Edinburgh. Living an #open life.

Publications

  1. Chris Cummins, Pavlos Petoumenos, Alastair Murray, Hugh Leather. "Compiler Fuzzing through Deep Learning". ISSTA '18. [source code]. [pdf]. Build command: $ bazel build //docs/2018_07_issta.
  2. Chris Cummins, Pavlos Petoumenos, Alastair Murray, Hugh Leather. "DeepSmith: Compiler Fuzzing through Deep Learning". ACACES '18. [source code]. [pdf]. Build command: $ bazel build //docs/2018_07_acaces.
  3. Chris Cummins, Pavlos Petoumenos, Zheng Wang, Hugh Leather. "End-to-end Deep Learning of Optimization Heuristics". PACT '17. [source code]. [pdf]. Build command: $ bazel build //docs/2017_09_pact.
  4. Chris Cummins, Pavlos Petoumenos, Zheng Wang, Hugh Leather. "Synthesizing Benchmarks for Predictive Modeling". CGO '17. [source code]. [pdf]. [acm]. Build command: $ bazel build //docs/2017_02_cgo.
  5. Chris Cummins, Pavlos Petoumenos, Michel Steuwer, Hugh Leather. "Autotuning OpenCL Workgroup Sizes". ACACES '16. [source code]. Build command: $ bazel build //docs/2016_07_acaces.
  6. Chris Cummins, Pavlos Petoumenos, Michel Steuwer, Hugh Leather. "Towards Collaborative Performance Tuning of Algorithmic Skeletons". HLPGPU '16, HiPEAC. [source code]. [pdf]. Build command: $ bazel build //docs/2016_01_hlpgpu.
  7. Chris Cummins, Pavlos Petoumenos, Michel Steuwer, Hugh Leather. "Autotuning OpenCL Workgroup Size for Stencil Patterns". ADAPT '16, HiPEAC. [source code]. [pdf]. [arxiv]. Build command: $ bazel build //docs/2016_01_adapt.
  8. Chris Cummins. "Autotuning Stencils Codes with Algorithmic Skeletons". MSc Thesis, 2015. The University of Edinburgh. [source code]. Build command: $ bazel build //docs/2015_08_msc_thesis.

Talks

  1. Chris Cummins. "Compiler Fuzzing through Deep Learning", 3rd August, 2018. Codeplay, Edinburgh, Scotland. [files]. [slides].
  2. Chris Cummins. "Machine Learning for Compilers", 20th July, 2018. Workshop on Introspective Systems for Automatically Generating Tests (ISAGT), Amsterdam, Netherlands. [files]. [pdf].
  3. Chris Cummins. "Compiler Fuzzing through Deep Learning", 16th July, 2018. ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA), Amsterdam, Netherlands. [files]. [slides].
  4. Chris Cummins. "End-to-end Deep Learning of Optimization Heuristics", 23rd March, 2018. Facebook, Menlo Park. [files]. [slides].
  5. Chris Cummins. "End-to-end Deep Learning of Optimization Heuristics", 2nd Feb, 2018. Google, Mountain View. [files]. [slides].
  6. Chris Cummins. "Second Year Progression Review", 18th Dec, 2017. The University of Edinburgh, Scotland. [files]. [pdf].
  7. Chris Cummins. "End-to-end Deep Learning of Optimization Heuristics", 4th Oct, 2017. The University of Edinburgh, Scotland. [files]. [slides].
  8. Chris Cummins. "End-to-end Deep Learning of Optimization Heuristics", 12th Sep, 2017. International Conference on Parallel Architectures and Compilation Techniques (PACT), Portland, Oregon, USA. [files]. [slides].
  9. Chris Cummins. "Deep Learning in Compilers", 14th Jun, 2017. The University of Edinburgh, Scotland. [files]. [pdf]. [transcript].
  10. Chris Cummins. "Using Deep Learning to Generate Human-like Code", 22nd April, 2017. Scottish Programming Languages Seminar, University of St. Andrews, Scotland. [files]. [pdf].
  11. Chris Cummins. "Synthesizing Benchmarks for Predictive Modeling", 6th Febuary, 2017. International Symposium on Code Generationand Optimization (CGO), Austin, Texas, USA. [files]. [slides].
  12. Chris Cummins. "Machine Learning & Compilers", 9th September, 2016. Codeplay, Edinburgh, Scotland. [files]. [slides].
  13. Chris Cummins. "Building an AI that Codes", 22nd July, 2016. Ocado Technology, Hatfield, England. [files]. [pdf].
  14. Chris Cummins. "All the OpenCL on GitHub: Teaching an AI to code, one character at a time", 19th May, 2016. Amazon Development Centre, Edinburgh, Scotland. [files]. [pdf].
  15. Chris Cummins. "Autotuning and Algorithmic Skeletons", Wed 10th Feb, 2016. The University of Edinburgh, Scotland. [files]. [pdf].
  16. Chris Cummins. "Towards Collaborative Performance Tuning of Algorithmic Skeletons", Tues 19th Jan, 2016. HLPGPU, HiPEAC, Prague. [files]. [pdf].
  17. Chris Cummins. "Autotuning OpenCL Workgroup Size for Stencil Patterns", Mon 18th Jan, 2016. ADAPT, HiPEAC, Prague. [files]. [pdf].
  18. Chris Cummins. "Towards Collaborative Performance Tuning of Algorithmic Skeletons", Thurs 14th Jan, 2016. The University of Edinburgh, Scotland. [files]. [pdf].

Misc

  1. Curriculum Vitae. [source code]. [pdf]. [html]. Build command: $ bazel build //docs/cv.
  2. Chris Cummins, Pavlos Petoumenos, Michel Steuwer, Hugh Leather. "Collaborative Autotuning of Algorithmic Skeletons for GPUs and CPUs". Incomplete journal version of ADAPT and HLPGPU papers. [source code]. Build command: $ bazel build //docs/2016_12_wip_taco.
  3. Chris Cummins. "Deep Learning for Compilers". PhD First Year Review Document, 2016. [source code]. Build command: $ bazel build //docs/2016_11_first_year_review.
  4. Chris Cummins, Hugh Leather. "Autotuning OpenCL Workgroup Sizes". Rejected submission for PACT'16 Student Research Competition. [source code]. Build command: $ bazel build //docs/2016_07_pact.
  5. Chris Cummins, Pavlos Petoumenos, Michel Steuwer, Hugh Leather. "Autotuning OpenCL Workgroup Sizes". Submission for PLDI'16 Student Poster Session. [source code]. Build command: $ bazel build //docs/2016_06_pldi.
  6. Chris Cummins. "Autotuning and Skeleton-aware Compilation". PhD Progression Review, 2015. [source code]. Build command: $ bazel build //docs/2015_09_progression_review.

Building the code

I use Bazel as my build system of choice, with a preliminary configure script to setup the build. I'm gradually working towards a completely hermetic build, but for now there remains a couple of dependencies on the host C++ toolchain and Python runtime.

This project can only be built on a modern version of Ubuntu Linux or macOS. This is a requirement I inherit from my dependencies, which eschew Windows and other Linux distros. Fortunately, you can use a Docker image and follow the Ubuntu instructions:

$ docker run -it ubuntu:18.04 /bin/bash

If you have success building this project on other platforms, I'd love to hear about it and accept patches.

Ubuntu/MacOS instructions

Configure the build and answer the yes/no questions. The default answers should be fine:

$ ./configure

Note that CUDA support requires CUDA to have been installed separately, see the TensorFlow build docs for instructions. CUDA support has only been tested for Linux builds, not macOS or Docker containers.

The configure process generates a bootstrap.sh script which will install the required dependent packages. Since installing these packages will affect the global state of your system, and may requires root access, inspect this script carefully. Once you're happy to proceed, run it using:

$ bash ./bootstrap.sh

Finally, we must set up the shell environment for running bazel. The file .env is created by the configure process and must be sourced for every shell we want to use bazel with:

$ source $PWD/.env

Now build or test whatever bazel targets you'd like. Use bazel query //... to list the available targets. E.g. to run the entire test suite, run:

$ bazel test //...

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 49.0%
  • Python 32.0%
  • C++ 8.9%
  • C 5.8%
  • Shell 1.8%
  • Perl 1.5%
  • Other 1.0%