Lost in technological chaos?

  • Tired of keeping up with the ever changing software and hardware stack?
  • Lost in the ever growing number of design choices?
  • Spend more time on ad-hoc and time-consuming experiments than on innovation?
  • Tortured by ad-hoc experimental workflows when evaluating artifacts at systems conferences (CGO, PPoPP, PACT, RTSS, PLDI, SC)?
  • Struggle to keep your research workflows alive and momentum going when your team members leave (e.g. when your students graduate)?

accelerate knowledge discovery via collaborative and reproducible R&D!

We have developed Collective Knowledge aka CK as a cross-platform customizable Python framework and repository to help researchers share artifacts as reusable components with JSON API, quickly prototype their research ideas, crowdsource experiments, unify predictive analytics and reproduce results (see our CK vision paper).

CK enables collaborative and reproducible research, and helps computer systems researchers from leading universities and companies to:

  • share realistic workloads, data sets and models in a common format with JSON API and meta information (see shared CK repos);
  • assemble customizable and reusable experimental workflows from shared components as LEGO® and considerably simplify Artifact Evaluation at conferences, workshops and journals (see CGO'17 distinguished artifact in the CK format , portable CK workflows , CK intro , AE vision paper);
  • crowdsource your experiments and quickly validate your ideas across diverse hardware provided by volunteers (example: CK-powered Android app to crowd-benchmark deep learning , online crowd results);
  • automate and crowdsource performance analysis, benchmarking and autotuning of realistic workloads (see CK-powered projects at ARM);
  • unify multi-objective compile-time and run-time workload optimizations (e.g. cost vs. performance vs. energy vs. accuracy) achieving 10x speedups and 50% energy reductions with the same accuracy for real OpenCL/CUDA applications on latest heterogeneous platforms (see dividiti's projects);
  • unify statistical, machine learning and deep learning techniques to continuously learn and optimize behavior of complex computer systems (e.g. automatically build performance/energy models, quickly identify performance bottlenecks, accelerate optimization, enable run-time adaptation) (more details);
  • simplify optimization knowledge sharing across communities of hardware vendors and software developers (see demo of a live CK repo);
  • stress-test compilers and crowd-tune their optimization heuristics on representative workloads (see CK-CLsmith);
  • enable interactive graphs and papers (see a demo).

See Wikipedia article about CK for notable use cases. Find more details about CK at this wiki. Check our live CK demo and examples of collaborative R&D at cKnowledge.org/repo.

Demo of a community-driven and CK-powered performance analysis and optimization of AI across diverse ARM-based devices at Embedded Vision Summit'17 (Santa Clara, California):

Use Collective Knowledge SDK


Get the latest version from GitHub
Participate in experiment crowdsouring using this Android app and see crowd contributions
Participate in DNN crowd-benchmarking and crowd-tuning using this Android app (beta)
Check out CK-powered collaborative AI benchmarking and optimization
Check out a live CK-powered interactive article demo
Check out CK documentation including the Getting Started Guide
Reuse already shared repositories and modules
Reuse CK-powered artifacts and workflows shared during Artifact Evaluation at the leading computer systems conferences including CGO, PPoPP, PACT, RTSS and SC

Created with love

Created with love

We are passionate about collaborative, reproducible and systematic R&D. We have open-sourced Collective Knowledge to help the community collaboratively tackle grand challenges in computer systems.

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 use a permissive license, no strings attached!

Community-driven

Community-driven

By partnering with leading companies, universities and conferences, we are growing a passionate community of users and developers to create a public repository of customizable and reusable artifacts!

Simple

Simple

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

Extensible

Extensible

Minimal software dependencies, plugin-based architecture and simple JSON API makes CK easily extensible and customizable. CK components can be assembled together just like LEGO® bricks to focus on 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 artifact sharing, universal autotuning and predictive analytics.

Contribute to Collective Knowledge!