CLsmith makes use of two existing testing techniques, Random Differential Testing and Equivalence Modulo Inputs (EMI), applying them in a many-core environment, OpenCL. Its primary feature is the generation of random OpenCL kernels, exercising many features of the language. It also brings a novel idea of applying EMI, via dead-code injection.
The CLsmith tool managed to find over 50 bugs in numerous OpenCL implementation from vendors such as Intel, AMD and Nvidia. It is available for download here.
- Webpage: http://multicore.doc.ic.ac.uk/projects/clsmith/
- Project page: https://github.com/ChrisLidbury/CLSmith/
(Edit this webpage on Github)