Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Crowdsourcing optimization motivation
[ Home ]
See our new ACM ReQuEST'18 report.
We have been struggling with a lack of computational resources, diverse workloads (benchmarks and data sets) and diverse platforms for our own research to enable faster, smaller, more power efficient reliable self-tuning software and hardware via machine learning based auto-tuning and run-time adaptation for more than a decade (1, 2)!
Indeed, co-designing, testing and optimizing software and hardware has become intolerably complex, ad-hoc, time consuming and error prone due to enormous number of available design and optimization choices, complex interactions between all software and hardware components, multiple strict requirements placed on performance, power consumption, size, reliability and cost, and lack of universal knowledge exchange.
It is not uncommon to get 10x speedups, 2x size reduction and 40% energy reductions for popular algorithms (DNN, BLAS, SLAM) after manual or automatic multi-objective optimization on newest hardware (see CK-based interactive report, DATE'16, ICLR'15, CPC'15)!
Eventually, we decided to develop collaborative methodology, repository and tools to let the community share various workloads via GitHub (realistic programs, benchmarks, kernels, codelets, data sets), gradually expose all design and optimization choices, crowdsource optimization and testing (compilers, OpenCL, CUDA, etc) across numerous and diverse computer systems, process results using machine learning, and use continuously growing collective knowledge to predict optimal program optimizations and hardware designs.
Unified JSON API and web services of the 4th version of the cTuning infrastructure aka Collective Knowledge helped us to considerably simplify this task. It is now possible to crowdsource various experimentation (compiler/OpenCL multi-objective autotuning, bug detection, benchmarking) across spare mobile phones, tablets, PCs, HPC servers, data centers, cloud services and supercomputers aka SETI@home.
We would like to sincerely thank all participants for helping our community collaboratively optimize computer systems to accelerate knowledge discovery, boost innovation in science and technology, and eventually make our planet greener!