Helium 0

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

2 years after MIT

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.

Related Repositories

helium-css

helium-css

Helium - javascript tool to scan your site and show unused CSS ...

helium-css

helium-css

Helium - javascript tool to scan your site and show unused CSS ...

helium-arduino-msgpack

helium-arduino-msgpack

Arduino Library For Connectivity To The Helium Platform ...

helium-arduino

helium-arduino

Arduino Library For Connectivity To The Helium Platform ...

helium-dashboard

helium-dashboard

Prototype to display temperature from helium sensors https://www.helium.com/ ...


Top Contributors

Sierangho