https://github.com/ctuning/ck-clsmith
Collective Knowledge extension to crowdsource bug detection in OpenCL compilers using CLSmith tool from Imperial College London
https://github.com/ctuning/ck-clsmith
artifact-evaluation ck-format clsmith collaborative-bug-detection collaborative-compiler-fuzzing collective-knowledge crowd crowd-debugging crowdsource-bug-detection opencl opencl-bugs opencl-compilers pldi pldi-artifact
Last synced: 22 days ago
JSON representation
Collective Knowledge extension to crowdsource bug detection in OpenCL compilers using CLSmith tool from Imperial College London
- Host: GitHub
- URL: https://github.com/ctuning/ck-clsmith
- Owner: ctuning
- Created: 2015-08-31T14:48:04.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-01-16T13:26:34.000Z (about 7 years ago)
- Last Synced: 2024-11-09T23:02:27.954Z (over 1 year ago)
- Topics: artifact-evaluation, ck-format, clsmith, collaborative-bug-detection, collaborative-compiler-fuzzing, collective-knowledge, crowd, crowd-debugging, crowdsource-bug-detection, opencl, opencl-bugs, opencl-compilers, pldi, pldi-artifact
- Language: C
- Homepage: http://cKnowledge.org
- Size: 11 MB
- Stars: 26
- Watchers: 7
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES
Awesome Lists containing this project
- AwesomeCompiler - ck-clsmith
README
CK repository: Converting CLsmith tool (PLDI'15 artifact) to CK format
======================================================================
[](https://github.com/ctuning/ck)
[](http://cTuning.org/ae)
[](http://cKnowledge.org)
[](https://zenodo.org/badge/latestdoi/41681152)
[](https://opensource.org/licenses/BSD-3-Clause)
Status
======
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.
Prerequisites
=============
* Collective Knowledge Framework: http://github.com/ctuning/ck
Description
===========
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:
http://multicore.doc.ic.ac.uk/publications/clsmith-pldi-15.html
"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:
* Artifact Evaluation for PPoPP/CGO/PACT conferences: http://cTuning.org/ae
* ADAPT 2016: http://adapt-workshop.org
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
or
$ git clone http://github.com/ctuning/ck 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
```
Usage
=====
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](http://cknowledge.org/repo).
This scenario is described in the CK documentation [here](https://github.com/ctuning/ck/wiki/Autotuning-example-clsmith).
You can see raw local results via CK dashboard:
```
$ ck dashboard opencl-bug
```
Crowd-results
=============
You can see failed OpenCL kernels in the [live CK repository](http://cknowledge.org/repo/web.php?template=cknowledge&wcid=bc0409fb61f0aa82:1b437e72c74fe782&table_sort=2).
Simply select "crowd-test OpenCL compilers" scenario!
Publications
============
* http://multicore.doc.ic.ac.uk/publications/clsmith-pldi-15.html
* https://arxiv.org/abs/1506.06256
Testimonials and awards
=======================
* 2016: HiPEAC technology transfer award for CK-powered CLsmith: [HiPEAC TT winners](https://www.hipeac.net/research/technology-transfer-awards/2016)