/ctuning-programs

Collective Knowledge extension with unified and customizable benchmarks (with extensible JSON meta information) to be easily integrated with customizable and portable Collective Knowledge workflows. You can easily compile and run these benchmarks using different compilers, environments, hardware and OS (Linux, MacOS, Windows, Android). More info:

Primary LanguageC

Shared programs, benchmarks and kernels for autotuning/crowd-tuning

All CK components can be found at cKnowledge.io and in one GitHub repository!

compatibility

These are various public programs, benchmarks and kernels used in our research on universal and multi-objective autotuning/crowd-tuning in the open Collective Knowledge format:

We envision that community will join us in sharing their programs and data sets to enable systematic, collaborative and reproducible computer engineering.

Benchmarks are considerably simplified to be run on Linux, Windows, MacOs and even on Android based mobile phones and tables together with open CK data sets.

See some results from crowdsourcing iterative compilation (autotuning) on Android-based mobile phones and other computer systems:

Status

Stable reprository

Dependencies on other repositories

Authors

  • Grigori Fursin, cTuning foundation
  • Various authors of shared programs (see individual entries)

Prerequisites

Installation

ck pull repo:ctuning-programs

Get data sets

ck pull repo:ctuning-datasets-min

Basic Usage

ck list program

ck list dataset

ck compile program:cbench-automotive-susan --speed

ck run program:cbench-automotive-susan

Add extra data sets per program (at least 20):

Download ckr-ctuning-datasets.zip from https://drive.google.com/folderview?id=0B-wXENVfIO82dzYwaUNIVElxaGc&usp=sharing (or other and much larger datasets ckr-usb-ctuning-dataset-* from our PLDI paper).

Register it with CK simply via:

ck add repo:ctuning-datasets --zip=ckr-ctuning-datasets.zip --quiet

Now, when you run a given program as above, you will have an extended choice of data sets.

If you want to compile and run our benchmarks on Android-based mobile phones, you need to download and register with CK Android NDK as described here:

Publications

@inproceedings{ck-date16,
    title = {{Collective Knowledge}: towards {R\&D} sustainability},
    author = {Fursin, Grigori and Lokhmotov, Anton and Plowman, Ed},
    booktitle = {Proceedings of the Conference on Design, Automation and Test in Europe (DATE'16)},
    year = {2016},
    month = {March},
    url = {https://www.researchgate.net/publication/304010295_Collective_Knowledge_Towards_RD_Sustainability}
}

@inproceedings{Fur2009,
  author =    {Grigori Fursin},
  title =     {{Collective Tuning Initiative}: automating and accelerating development and optimization of computing systems},
  booktitle = {Proceedings of the GCC Developers' Summit},
  year =      {2009},
  month =     {June},
  location =  {Montreal, Canada},
  keys =      {http://www.gccsummit.org/2009}
  url  =      {https://scholar.google.com/citations?view_op=view_citation&hl=en&user=IwcnpkwAAAAJ&cstart=20&citation_for_view=IwcnpkwAAAAJ:8k81kl-MbHgC}
}

Feedback

If you have problems, questions or suggestions, do not hesitate to get in touch via the following mailing lists:

logo