Universal, customizable and multi-objective software and hardware autotuning
This project is hosted by the cTuning foundation.
This is a CK repository for the universal, customizable, multi-dimensional and multi-objective SW/HW benchmarking, autotuning and co-design with a unified JSON API across Linux, Android, MacOS and Windows-based machines.
This repository included CK modules, actions and components for unified
- program compilation and execution (with multiple data sets)
- statistical analysis of empirical results
- plugin-based autotuning
- automatic performance modeling
- static and dynamic features extraction
- learning to predict optimizations and run-time adaptation
- reproducibility of experimental results
- Shared portable CK program workflows
- Open CK platform to publish and download stable CK components
- MLPerf crowd-benchmarking demo
- Documentation about portable CK workflows
- Related CK publications
- See the list of contributors
Shared CK modules with actions
First install the CK framework as described here.
Then install this CK repository as follows:
$ ck pull repo:ck-autotuning
You can now browse and reuse program workflows shared at the CK portal.
- Issues with GLIBCXX_3.4.20/3.4.21 when using LLVM installed via CK: These sometimes occur on earlier Ubuntu versions (14.04) on ARM/x86. This can be fixed by upgrading to later versions of Ubuntu, or can sometimes be fixed by:
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get dist-upgrade
- Issues with libncursesw.so.6 (not found) on some older machines: It can be fixed by compiling and installing lib-ncurses with the support for wide characters. This can be done automatically via CK:
$ ck install package:lib-ncurses-6.0-root
Questions and comments
Please feel free to get in touch with the CK community if you have any questions, suggestions and comments!