1 Reply Latest reply on Feb 19, 2015 6:08 AM by urishomroni

    Ocl debuggers


      In the User's Guide there is a whole section on CodeXL, with very interesting points. There is another debugger, opencl-emu, for which I know very little. Is it any good? How does it compare to CodeXL? Which one would be best to use?

      BTW CodeXL 1.5 & 1.6 expect libGL under /usr/lib/fglr/dri, else they err. Easily fixed, by creating the directory and linking libGL, but it would be best to be fixed in the executable.

        • Re: Ocl debuggers

          Hi nibal,


          opencl-emu is an emulator-debugger, and it differs from CodeXL's GPU debugger in several ways:

          1. It does not run on the actual hardware, instead it compiles the OpenCL code to CPU source, and runs on the CPU with software emulation of the hardware behavior.

          2. It supports only Radeon HD 5xxx (Evergreen - referred to as "Cedar-class" by ocl-emu) and Radeon HD 6xxx (Northern Islands - referred to as "higher-class" by ocl-emu). GCN (Radeon HD 7xxx and newer) GPUs are not emulated.

          3. The debugging is performed by running the CPU code and setting breakpoints in it, like normal code. This does not consider the real device's registers, memory, and so forth.

          4. It only runs on Windows, and only in Visual Studio.

          5. It requires you to use its OpenCL harnass and change your code to fit it.

          6. It was last updated on October 2012


          For comparison, CodeXL:

          1. Runs the kernel on the actual hardware, using kernel replay debugging.

          2. Supports all OpenCL-capable AMD GPUs, including and up to the latest GCN GPUs.

          3. The debugging is performed by running the kernel on the GPU, stopping it at the required point, and gathering the data from it. This allows for capabilities that work across the entire work size, like CodeXL's Multi-Watch view.

          4. Runs on Windows and Linux as a stand-alone application + on Windows as a Visual Studio extension.

          5. Can be used to debug any OpenCL application - even if you don't have its host source code (though the source code is recommended for a full debugging experience).

          6. Is still being updated and improved with new features, getting a new release every few months and having active support and bug fixes.


          I hope this clarified the difference between the two tools.