Giter Club home page Giter Club logo

ctuning / ctuning-programs Goto Github PK

View Code? Open in Web Editor NEW
51.0 6.0 12.0 11.16 MB

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:

Home Page: http://cKnowledge.org

C 94.35% Makefile 0.31% C++ 0.16% Python 0.09% XSLT 0.26% Shell 0.18% CSS 0.04% Perl 0.04% HTML 2.66% Java 0.02% Cuda 1.41% Fortran 0.02% Julia 0.01% Roff 0.48%
open-benchmarks common-benchmarks customizable-benchmarking collaborative-benchmarking collaborative-optimization json-metadata json-api collective-knowledge reproducible-research reproducible-workflows

ctuning-programs's Introduction

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

ctuning-programs's People

Contributors

ctuning-admin avatar gfursin avatar psyhtest avatar taskset 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ctuning-programs's Issues

cbench-consumer-mad compile error with milepost

ck compile program:cbench-consumer-mad --compiler_tags=milepost

cbench-consumer-mad (f258a1b1479593a5)

Current directory: /home/clappis/CK/ctuning-programs/program/cbench-consumer-mad/tmp

Resolving software dependencies ...

Dependency 1 = compiler (C compiler):

Resolved. CK environment UID = 9ba414baaedb8ca4 (version 4.4.4)

Dependency 2 = xopenme (xOpenME library):

Resolved. CK environment UID = aa0e190307675c9b (version 0.3)

Detected compiler version: 4.4.4

Compiler vars:
CK_HOST_OS_NAME2_LINUX=1
CK_HOST_OS_NAME_LINUX=1
CK_TARGET_OS_NAME2_LINUX=1
CK_TARGET_OS_NAME_LINUX=1
FPM_DEFAULT=
HAVE_CONFIG_H=
XOPENME=

Executing prepared batch file tmp-uRRbd2.sh ...

gcc -c -I../ -DCK_HOST_OS_NAME2_LINUX=1 -DCK_HOST_OS_NAME_LINUX=1 -DCK_TARGET_OS_NAME2_LINUX=1 -DCK_TARGET_OS_NAME_LINUX=1 -DFPM_DEFAULT -DHAVE_CONFIG_H -DXOPENME -I/home/clappis/CK-TOOLS/lib-rtl-xopenme-0.3-gcc-4.4.4-linux-64/include ../audio.c -o audio.o
gcc -c -I../ -DCK_HOST_OS_NAME2_LINUX=1 -DCK_HOST_OS_NAME_LINUX=1 -DCK_TARGET_OS_NAME2_LINUX=1 -DCK_TARGET_OS_NAME_LINUX=1 -DFPM_DEFAULT -DHAVE_CONFIG_H -DXOPENME -I/home/clappis/CK-TOOLS/lib-rtl-xopenme-0.3-gcc-4.4.4-linux-64/include ../audio_aiff.c -o audio_aiff.o
gcc -c -I../ -DCK_HOST_OS_NAME2_LINUX=1 -DCK_HOST_OS_NAME_LINUX=1 -DCK_TARGET_OS_NAME2_LINUX=1 -DCK_TARGET_OS_NAME_LINUX=1 -DFPM_DEFAULT -DHAVE_CONFIG_H -DXOPENME -I/home/clappis/CK-TOOLS/lib-rtl-xopenme-0.3-gcc-4.4.4-linux-64/include ../audio_cdda.c -o audio_cdda.o
gcc -c -I../ -DCK_HOST_OS_NAME2_LINUX=1 -DCK_HOST_OS_NAME_LINUX=1 -DCK_TARGET_OS_NAME2_LINUX=1 -DCK_TARGET_OS_NAME_LINUX=1 -DFPM_DEFAULT -DHAVE_CONFIG_H -DXOPENME -I/home/clappis/CK-TOOLS/lib-rtl-xopenme-0.3-gcc-4.4.4-linux-64/include ../audio_esd.c -o audio_esd.o
In file included from ../audio_esd.c:26:0:
/usr/include/unistd.h:782:12: error: expected identifier or ‘(’ before ‘int’
extern int isatty (int __fd) __THROW;
^
../global.h:51:26: error: expected ‘)’ before ‘==’ token
define isatty(x) ((x) == STDIN_FILENO)
^


Compilation time: 0.130 sec.; Object size: 0; Total binary size: 0; MD5:
Warning: compilation failed!

Maybe is missing some lib in my machine?

Program execution likely failed (can't find fine grain timers)!

When trying to run some examples, I encountered the following error:

Program execution likely failed (can't find fine grain timers)!

What does it mean? Could anyone help me with this? I am running in Mac.

The full log is

* shared-matmul-c (aeff074737844179)


OS CK UOA:            macos-64 (fb7d7f63b44b9ea3)

OS name:              Mac OS X 10.14.5
Short OS name:        Darwin 18.6.0
Long OS name:         Darwin-18.6.0-x86_64-i386-64bit
OS bits:              64

Platform init UOA:    80499caf4f3ef06c
***************************************************************************************
Current directory: /Users/username/CK/ctuning-programs/program/shared-matmul-c/tmp
***************************************************************************************

  -----------------------------------
  Resolving software dependencies ...

*** Dependency 1 = compiler (C compiler):

    Resolved. CK environment UID = c1a66e835b647128 (detected version 10.0.1_Apple_native)
  -----------------------------------

  -----------------------------------
  Resolving software dependencies ...
  -----------------------------------
  Cleaning output files and directories:
    tmp-output1.tmp
    tmp-output2.tmp
    tmp-output.tmp

***************************************************************************************
### Calibration 1 out of 10 ; Kernel repeat number = 1
***************************************************************************************
***************************************************************************************
Prepared script:

#! /bin/bash


export PATH=/Users/username/CK/ck-env/platform.init/generic-macos:$PATH


. /Users/username/CK/local/env/c1a66e835b647128/env.sh

export CT_MATRIX_DIMENSION=512
export CT_REPEAT_MAIN=1


echo    executing code ...
 ./a.out "/Users/username/CK/ctuning-programs/program/shared-matmul-c/data" > tmp-output1.tmp 2> tmp-output2.tmp

***************************************************************************************
  (bash -c "chmod 755 ./tmp-t_gayxbv.sh; . ./tmp-t_gayxbv.sh")

  (sleep 0.5 sec ...)

  (run ...)
executing code ...

Program execution likely failed (calibration problem)!


   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   CK detected a PROBLEM in the third-party CK program workflow:

   Failed(?) CK program: shared-matmul-c
   CK repo:              ctuning-programs
   CK repo URL:          https://github.com/ctuning/ctuning-programs
   CK program URL:       https://github.com/ctuning/ctuning-programs/tree/master/program/shared-matmul-c
   Issues URL:           https://github.com/ctuning/ctuning-programs/issues
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Please, submit the log to the authors of this external CK program workflow at "https://github.com/ctuning/ctuning-programs/issues" to collaboratively fix this problem!

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.