Grigori Fursin edited this page Jun 25, 2018 · 33 revisions

[ Home ]

This pages requires an update.

Here we list possible CK extension ideas for student internships, Google Summer of Code, collaborative grants, industrial projects, etc. You are welcome to add your own CK-powered projects or ideas here!

Table of Contents

Current projects

  • Improve framework for collaborative and reproducible co-design of efficient SW/HW stack for emerging workloads such as deep learning: http://cKnowledge.org/request
  • Use CK as a personal knowledge manager to organize, interconnect and preserve all personal coda and data via simple JSON meta with UIDs and semantic tags (see CK-powered CV).

Assorted ideas

We list many extension ideas as issues in various CK GitHub repositories:

Improve existing collaborative experiment scenarios

  • Improve/implement OpenCL/CUDA/GCC/LLVM crowd-tuning (see CK crowdtuning repo and crowdtuning results) - add finer-grain tuning; automatic kernel extraction from realistic workloads such as DNN; online clustering of optimizations and optimization prediction using collaborative machine learning (find correct software/hardware/data set features - see CPC'15 paper).
  • Add wrappers around GCC/LLVM to predict optimizations on the fly similar to our original MILEPOST GCC (see IJPP'11).
  • Add various machine-learning based autotuning exploration scenarios (cover optimization/data set/hardware choices) - see our publications
  • Improve CK-based CAFFE crowd-tuning

Add more collaborative experiment scenarios

  • Add automatic statistical compiler bug detection (see CK CLSmith repo).
  • Add automatic program behavior modeling (performance/energy/scalability) (see paper, GitHub issue #6).
  • Add LLVM LNT and GCC benchmarks to CK (see GitHub issue #1).
  • Add support for automatic pass selection and reordering in LLVM (see GitHub issue #5).
  • Add OpenCL benchmarks to collaborative optimization using mobile phones (see GitHub issue #2).
  • Add numerical stability test crowdsourced across many different machines (see CK-based GEMM bench).

Improve statistical analysis of experimental results

  • Improve Pareto frontier detection with a fixed minimal set of equally distributed points (see GitHub issue #4).
  • Improve statistical analysis of experimental results and speedups (improvements) in math.variation module (see GitHub issue #1).

Enable self-tuning computer systems using collective knowledge

  • Add interactive compilation interface to LLVM to be able to tune/predict fine-grain optimization decisions (see IJPP'11, GitHub issue #6)
  • Add function cloning to LLVM (see paper)
  • Add run-time adaptation with function cloning based on collected optimization statistics and decision trees (see HiPEAC'05 and CPC'15)

Improve CK usability

  • Add universal graph visualization via web similar to Collective Mind but with Ajax and JavaScript (see GitHub issue #6).
  • Improve experiment table visualization and customization via web using Ajax and JavaScript (see GitHub issue #5).
  • Enable reproducibility of experimental workflows for Artifact Evaluation by pulling all dependent Git repos with a revision number (see GitHub issue #11).
  • Add support for MediaWiki/Drupal for interactive articles (see GitHub issue #1)
  • /done/ Re-design package manager and add automatic detection of installed tools and libs with their versions (see GitHub issue #1)

Adding new realistic workloads and tools

  • Add various implementations of popular algorithms implemented using OpenCL, CUDA, OpenMP, MPI, etc together with realistic data sets in CK-format while exposing tuning parameters and measured characteristics. We plan to add and crowd-tune various implementations of Deep Neural Network algorithms, vision applications (such as SLAM and HOG), BLAS, etc. See following shared algorithms in CK format: CK-based GEMM, SLAM, HOG, misc kernels, misc data sets.

Misc

  • Add DOI support to index all research artifacts shared in CK format (see GitHub issue #47).
  • /mostly done/ Add/improve CK internal testing (see GitHub issue #4).
  • /mostly done/ Add CK to Debian (see GitHub issue #20).

Questions and comments

You are welcome to get in touch with the CK community if you have questions or comments!

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.