Giter Site home page Giter Site logo

krvperera / helium Goto Github PK

View Code? Open in Web Editor NEW

This project forked from helium-fyp/helium

0.0 3.0 0.0 64.37 MB

Helium: Lifting High-Performance Stencil Kernels from Stripped x86 Binaries to Halide DSL Code

License: MIT License

C++ 58.21% CMake 1.83% C 36.45% Batchfile 1.88% Makefile 0.04% Assembly 0.03% Python 1.15% PowerShell 0.41%

helium's Introduction

Helium: Lifting High-Performance Stencil Kernels from Stripped x86 Binaries to Halide DSL Code

Dependencies

All the paths mentioned here are relative to the project parent folder. Currently Helium supports only Windows OS.

  • Install VS2013 and have VC++ 2013 runtime. (MSDN allows free download and activation for @edu emails) Make sure you do a default installation with default paths.
  • SVN - download it here and put it on to the PATH
  • Install Cygwin64 from here and install Perl, but not its SVN!! Put Cygwin's bin into the path.
  • Install CMake's latest version from here
  • Download the github repository for the project
  • Installing Dynamorio โ€“ run the batch file utility/dr_build.bat (use 'dr_build.bat help' for command line arguments).
  • Installing Halide โ€“ just use the nightly builds of Halide from here (do not try to build it in Windows, but if you insist use the powershell scripts in utility/halide_[type]_build.ps -> but this is PAINFUL!!)

Folder Structure

  • dr_clients - contains all the DynamoRIO instrumentation clients
  • preprocess - contains all analysis for code localization
    • code_cov - code coverage instrumentation invocation script
    • code_diff - tool for diffing two code coverage files
    • filter_funcs - tool for localizing the filter function by analyzing the memory traces and profiling information extracted through DynamoRIO instrumentation
    • image_cons - constructing example images for analysis (the generated images are synthetic examples)
  • postprocess - contains all analysis for expression extraction
    • buildex - main analysis project which processes instruction traces and memory dumps to come up with halide version of the filter. This includes various other utilitties for debugging.

Building the project

All batch files should be run inside their folders.

In the utility folder,

  1. Run setup_folders.bat
  2. Run setup.bat
  3. Run build_all_exalgo.bat {arch} {debug/release} {halide_dir}

Running the tools

  • Run utility/automation_all.py - you can run the entire tool chain or parts of it. Please look at the help in the script to figure out command line arguments.
  • There are legacy batch scripts used to automate the tools.

Publications

The ideas of the project are published in the following paper.

helium's People

Contributors

charithymendis avatar sierangho avatar krvperera avatar mdslasantha avatar chathurawidanage avatar

Watchers

James Cloos avatar  avatar  avatar

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.