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.