
Oclgrind is an extensible OpenCL device simulator that provides a plugin interface to facilitate the creation of tools to aid analysis and development of OpenCL programs. Among the tools that Oclgrind provides are various debugging aids, such as out-of-bounds memory access checking, data-race detection, and an interactive debugger.
Oclgrind implements the OpenCL 1.2 runtime API, which makes simulating an existing OpenCL program very straightforward - simply prefix your usual application command-line with 'oclgrind'. There is also a simple interface for simulating individual kernels in isolation via the 'oclgrind-kernel' command.