• 2022.2
  • 04/11/2022
  • Public Content

Debug an Application on a GPU

Tutorial: Debugging with Intel® Distribution for GDB*
This section describes a basic scenario of debugging a program with the kernel offloaded to the GPU.
Before you proceed, make sure you have completed all necessary setup steps described in the Get Started Guide.
If you are more comfortable with video format, refer to the getting started video describing how to set up Intel distribution for GDB to debug a SYCL* app with kernels offloaded to the GPU device.
  1. For a sample application, set a breakpoint inside the kernel to the line marked as
    in the
    file. For OpenCL application, open the kernel file (.CL) in Microsoft Visual Studio and set a breakpoint at the desired line.
  2. To run the application, on the
    toolbar, click image0
    Remote Windows Debugger
    Microsoft Visual Studio* starts the instance of Intel® Distribution for GDB* that is responsible for debugging kernels offloaded to GPU.
    Once you start Intel® Distribution for GDB*, you may see several pop-ups.
    • You may be prompted to log in to Intel® Distribution for GDB on the target system. Be sure that credentials are set for the target system.
    • If you see the error message “Target is not available. GDB Server cannot be run automatically” for the first time, run the server on the target manually. Then, you can ignore the message and click
    • Do not click
      when you see the “Attaching to the GPU process” message.
    The program stops at the breakpoint. The expected output is the following:
    Do not expect the output you receive will match exactly the one provided in the picture. The output may vary due to the nature of parallelism and different machine properties.
  3. Now you can investigate local variables, registers, and disassembly by opening the corresponding windows from the
    • To investigate local variables, go to
      Debug > Windows > Locals.
      You can see the values of
      variables during the current state of the program execution.
    • To look into disassembly, go to
      Debug > Windows > Disassembly.
    • To investigate registers, go to
      Debug > Windows > Registers.
      You can see general purpose registers.
      To see ARF registers in the register window, right-click inside the window and check 
      Other registers
  4. You can step through the program using the image6
  5. If you click
    , another thread will hit the same breakpoint, so that you can investigate what is happening inside this thread in detail.
  6. Remove the breakpoints and click
    to continue until the end of the program.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.