Code Monkey home page Code Monkey logo

chriscummins / paper-end2end-dl Goto Github PK

View Code? Open in Web Editor NEW
72.0 8.0 21.0 180.87 MB

๐Ÿ“ "End-to-end Deep Learning of Optimization Heuristics" (๐Ÿฅ‡ PACT'17 Best Paper)

Home Page: https://chriscummins.cc/pub/2017-pact.pdf

License: GNU General Public License v3.0

Shell 0.17% Jupyter Notebook 42.81% Makefile 0.31% TeX 56.68% Starlark 0.04%
deep-learning compiler-optimizations neural-network tensorflow keras publication paper autotuning machine-learning academic-publication

paper-end2end-dl's Introduction

End-to-end Deep Learning of Optimization Heuristics

Chris Cummins, Pavlos Petoumenos, Zheng Wang, Hugh Leather.

Winner of Best Paper Award PACT'17

Abstract:

Accurate automatic optimization heuristics are necessary for dealing with the complexity and diversity of modern hardware and software. Machine learning is a proven technique for learning such heuristics, but its success is bound by the quality of the features used. These features must be hand crafted by developers through a combination of expert domain knowledge and trial and error. This makes the quality of the final model directly dependent on the skill and available time of the system architect.

Our work introduces a better way for building heuristics. We develop a deep neural network that learns heuristics over raw code, entirely without using code features. The neural network simultaneously constructs appropriate representations of the code and learns how best to optimize, removing the need for manual feature creation. Further, we show that our neural nets can transfer learning from one optimization problem to another, improving the accuracy of new models, without the help of human experts.

We compare the effectiveness of our automatically generated heuristics against ones with features hand-picked by experts. We examine two challenging tasks: predicting optimal mapping for heterogeneous parallelism and GPU thread coarsening factors. In 89% of the cases, the quality of our fully automatic heuristics matches or surpasses that of state-of-the-art predictive models using hand-crafted features, providing on average 14% and 12% more performance with no human effort expended on designing features.

@inproceedings{cummins2017b,
  title={End-to-end Deep Learning of Optimization Heuristics},
  author={Cummins, Chris and Petoumenos, Pavlos and Wang, Zheng and Leather, Hugh},
  booktitle={PACT},
  year={2017},
  organization={ACM}
}

See code/README.md for instructions on re-producing the experiments.

DeepTune

License

The code for this paper (everything in the directory code) is released under the terms of the GPLv3 license. See LICENSE for details. Everything else (i.e. the LaTeX sources and data sets) are unlicensed, please contact Chris Cummins [email protected] before using.

Acknowledgements

paper-end2end-dl's People

Contributors

chriscummins avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

paper-end2end-dl's Issues

Replicating experiments with CUDA version > 8.0

Hello Chris!

I am trying to replicate your first case study regarding OpenCL heterogeneous mapping and I am trying to use CUDA. When I import tensorflow from the Python 3 CLI on my machine, everything works as expected, loading my version of the CUDA library (libcudart.so.11.2.72), but when I import tensorflow from inside of one of your Jupyter notebooks (which are launched from inside the virtualenv you create using make run) I get an ImportError that the file libcudart.so.8.0 could not be found.

To my understanding, the tensorflow version used in your virtualenv needs CUDA version 8.0 explicitly ( ? ). Is there any workaround for this to work with my CUDA version? Tried a workaround with symlinks, but it seems that there are deeper dependencies and it still does not work.

Thanks a lot in advance!

[Building from source unsuccesfull]

Hi @ChrisCummins,

Thank you so much for your work on deep learning heuristics on compiler optimizations.
The paper looks promising and i read it couple of days back and though of checking out your implementations. But it looks many build files are not updated and hence leading to failure of reproducing your code.
Is there any other way, where we can easily setup and start using the repo?

Thanks,
Vinayak

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.