GPUVerify is a static analysis tool which offers the ability to detect specific compute errors, such as data races and divergent barrier executions. OpenCL developers will find GPUVerify useful as these types of errors are quite common in compute application development. GPUVerify has been developed by Alastair Donaldson and Nathan Y. S. Chong from Imperial College, London.

Download GPUVerify

Image Gallery Below

  • including kernel interceptorKernel Interception

    including kernel interceptor

    Kernel Interception

    To enable kernel interception, an extra header file, cl_interceptor.h, is included after the OpenCL headers.

  • interception infoRunning GPUVerify at the Command Line

    interception info

    Running GPUVerify at the Command Line

    GPUVerify is run at the command line to see information about the intercepted kernels.

  • first verification outputChecking the Intercepted Kernel

    first verification output

    Checking the Intercepted Kernel

    GPUVerify checks the intercepted kernel via the command: gpuverify –check-intercepted=0

  • third kernelRectified Kernel

    third kernel

    Rectified Kernel Example

    Example of a rectified kernel where GPUVerify is able to verify that it is free from data races or barrier divergence.

The basic procedure for using GPUVerify is as follows:

1. Use kernel interception to figure out the details of the kernel, e.g., kernel source code, number of work items, and configuration of work groups used
2. Invoke GPUVerify on the intercepted kernel by running GPUVerify at the command line and checking the intercepted kernel

For more information about GPUVerify, please follow the link to the website below.