accelerating knowledge discovery via collaborative and reproducible R&D

We developed Collective Knowledge framework and repository (CK) to help researchers quickly prototype their research ideas, crowdsource experiments and reproduce results using shared CK modules with unified JSON API, while simplifying predictive analytics and knowledge exchange. For example, CK already helped computer systems' researchers (and ourselves):

  • share realistic programs, benchmarks, and data sets (shared CK repos);
  • automate and crowdsource performance analysis, benchmarking and tuning (online crowd results);
  • perform automatic multi-objective compile-time and run-time optimizations (e.g. cost vs. performance vs. energy vs. accuracy) achieving 10x speedups and 50% energy reductions with the same accuracy for some real OpenCL/CUDA applications on the latest heterogeneous platforms;
  • apply statistical ("machine learning" and AI) techniques to continuously learn and optimize behavior of complex computer systems (e.g. automatically building performance/energy models, quickly identifying performance bottlenecks, accelerating autotuning, enabling run-time adaptation);
  • simplify optimization knowledge sharing across communities of hardware vendors and software developers;
  • stress-test compilers and crowd-tune their optimization heuristics on representative workloads;
  • enable interactive graphs and papers (demo).

See CK wiki for more details or check our live CK demo and examples of collaborative R&D at cknowledge.org/repo.

Collective Knowledge SDK


Grab latest version from GitHub
Participate in experiment crowdsouring using this Android app and see latest crowd results
Participate in DNN crowd-benchmarking and crowd-tuning using this Android app (beta)
Check out live CK-powered interactive article demo
Check CK documentation including Getting Started Guide
Reuse already shared repositories and modules

Created with love

Created with love

We are passionate about systematic, reproducible and collaborative R&D. Collective Knowledge is our gift to the community to help solve grand challenges including performance and energy optimization, and hardware/software co-design.

Open-source

Open-source

Our vision for Collective Knowledge is to follow the Linux and Wikipedia way for collaborative R&D. To fully embrace the open-source movement, we have released Collective Knowledge under a permissive license, no strings attached!

Community-driven

Community-driven

By partnering with leading companies and universities, we are growing a passionate community of users and developers to create a vibrant ecosystem of third-party services and solutions.

Simple

Simple

Collective Knowledge is a simple and elegant knowledge management system, taking advantage of the best modern techniques, including JSON, Git, Elasticsearch, SciPy, web services and agile R&D methodology.

Extensible

Extensible

The plugin-based architecture makes Collective Knowledge easily extensible and customizable. Components can be assembled together just like LEGO® bricks to create amazing expressions of creativity in problem-solving.

Thoroughly documented

Thoroughly documented

Collective Knowledge is thoroughly documented, with the community-maintained wiki covering everything from the basics to advanced use cases including autotuning and predictive analytics.