Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

CK repository: Converting CLsmith tool (PLDI'15 artifact) to CK format

compatibility automation workflow

DOI License


This is a relatively stable repository demonstrating how to share artifacts (tools and datasets) via CK. We converted CLsmith tool for fuzz testing of OpenCL compilers into the CK format.



CLsmith is a tool designed to address the compiler correctness problem for many-core systems through novel applications of fuzz testing to OpenCL compilers. It was shared as artifact along with the following PLDI'15 paper:

"Many-Core Compiler Fuzzing" Christopher Lidbury, Andrei Lascu, Nathan Chong, Alastair F. Donaldson

We converted this artifact to CK format (finer-grain and reusable components), shared it as standard CK repository on GitHub and validated it via experiment crowdsourcing on several machines.

CLsmith converted to CK can also serve as a template to describe and share other artifacts in CK format along with publications:

This repository also serves as an SDK to let you implement high-level scenarios to detect and classify bugs, and to enable further research opportunities by analyzing collected knowledge.

Quick installation

First install CK:

$ sudo pip install ck


$ git clone ck-master
$ export PATH=$PWD/ck-master/bin:$PATH
$ export PYTHONPATH=$PWD/ck-master:$PYTHONPATH

Then pull ck-clsmith repository:

$ ck pull repo:ck-clsmith


We provided a very basic usage scenario to compile multiple OpenCL kernels, run them, detect if there is a bug, and record raw info in the public CK repos. This scenario is described in the CK documentation here.

You can see raw local results via CK dashboard:

 $ ck dashboard opencl-bug


You can see failed OpenCL kernels in the live CK repository. Simply select "crowd-test OpenCL compilers" scenario!


Testimonials and awards