gDEBugger CL Tutorial

Additional Information

  1. Execution Modes comparison
  2. Glossary
    1. OpenCL Error
    2. Detected Error
    3. Compute Memory Allocated Object
    4. Compute Memory Leak
    5. Function Types
    6. Computation Frame
    7. Frame Terminator
  3. Keyboard Shortcuts

    Execution Modes comparison

    The following table shows a list of features available in each of gDEBugger's execution modes. gDEBugger's features not mentioned here will work in all execution modes. Features marked "IRR" under one of the modes will work in this mode, but the information they display or commands they contain will be irrelevant in this mode. See also "Execution Modes".

    Execution Mode
    Feature
    Debug Mode Profile Mode Analyze Mode
    Execution Speed Medium Fast Slow
    Break on Detected Errors YES NO YES
    Break on OpenCL Errors YES NO YES
    Break on Memory Leaks YES NO YES
    OpenCL Function Breakpoints YES NO YES
    Performance Counters YES YES IRR
    Step Commands YES NO YES
      Toolbars
    OpenCL Calls Logging (History Toolbar) YES NO YES
      Viewers
    Graphic and Compute Memory Analysis Viewer YES NO YES
    Source Code Viewer YES YES YES
    Kernels Source Code Editor YES YES YES
    Buffers and Images Viewer YES IRR YES
    Views
    Calls Stack YES YES YES
    OpenCL Calls History YES NO YES
    Performance Dashboard YES YES IRR
    Performance Graph YES YES IRR
    Command Queue Realtime Statistics YES YES IRR
    Process Events YES YES YES
      Statistics Viewer
    Calls History YES NO YES
    Calls Statistics YES NO YES
    Function Types Statistics YES NO YES

    Glossary

    OpenCL Error: An OpenCL error is an error returned by the OpenCL platform when executing an OpenCL function. These errors can be caused by using wrong enumerators, referring OpenCL objects that were deleted and so on. Note that to avoid problems, OpenCL implementations usually ignore erroneous function calls, so those calls that cause OpenCL errors should be either fixed or removed.

    Detected Error: A detected error is an error detected by the gDEBugger OpenCL server.

    Compute Memory Allocated Object: A compute memory allocated object is an OpenCL object created by a computer program, which consumes compute memory, that is to say an OpenCL device's memory. An allocated object can reside in the computer's main memory (as part of the driver's used virtual memory), in the device's internal memory, or in both. The following allocated object types are currently supported by gDEBugger:

    * - These objects memory consumption is insignificant, but their creation and deletion is still monitored by gDEBugger.

    Compute Memory Leak: A compute memory allocated object which is not released by the program that created it is considered a compute memory leak. Unused compute memory allocated objects should be released (deleted) as soon as they are no longer needed, to reduce memory consumption and improve overall performance.

    Function Types: OpenCL functions can be divided into a few groups by their effect on the OpenCL implementation or their result. Note that an OpenCL function can belong to more than one of these groups or to none at all:

    To find out what groups does a given function belongs to, look for its entry in the Function Calls Statistics View (In the Statistics Viewer Statistics Viewer), and the information is displayed under the "Function Type" column. The Statistics Viewer's Function Types Statistics view displays a breakdown of your OpenCL usage by these groups as well as more detailed information about each type.

    Computation Frame: A computation frame is a set of OpenCL API calls, typically the largest set of calls an OpenCL compute context performs which can be considered a single logical operation.
    A computation frame is comparable to a render frame in a graphics engine. It is recommended for applications rendering graphics to define the computation frame as the set of commands used to calculate the data for a single render frame. Having a notion and boundary of what comprises a frame allows for measurements such as frame times and frame rates as well as API call statistics, which are useful in debugging and profiling. 

    Frame Terminator: Frame terminators are the functions that delimit your application computation frames. gDEBugger uses frame terminators for frame per second, statistics analysis and other measurements, as well as for determining when to stop the execution when you press the Frame Step Frame Step button. When choosing frame terminators for your project, make sure at least one of the functions you choose is called each computation frame. The cl_gremedy_computation_frame extension allows defining computation frames in a non-continuous manner - if your application performs some OpenCL operations and then switches to other operations (which are outside the OpenCL frames). All other Computation frame terminators assume the OpenCL command stream is continuous.
    If your application renders graphics, it is a good idea to have the functions defined as frame terminators match the graphic render frame cycle.

    Keyboard shortcuts

    Main Window
    New Project Ctrl+N
    Open Project Ctrl+O
    Save Project Ctrl+S
    Debug Settings Ctrl+D
    Go to Next String Marker Ctrl+Shift+N
    Go to Previous String Marker Ctrl+Shift+P
    Show/Hide Statistics Viewer Ctrl+Shift+S
    Show/Hide Memory Analysis Viewer Ctrl+M
    Show/Hide State Variables
    Comparison Viewer
    Ctrl+Shift+V
    Show/Hide Textures, Buffers
    and Images Viewer
    Ctrl+T
    Go F5
    Stop Shift+F5
    Break F6
    Step F11
    Draw Step Shift+F11
    Frame Step Ctrl+F11
    Add/Remove Breakpoints Ctrl+B
    Enable/Disable All Breakpoints Ctrl+Shift+B
    In the Shaders' and Kernels Source Code Editor
    Save Ctrl+S
    Save as Ctrl+Shift+S
    Properties Ctrl+I
    Close Ctrl+Q
    Toggle Current Fold Ctrl+T
    Wrap Ctrl+U
    Build Program F7
    In the Textures, Buffers and Images Viewer
    Save image Ctrl+S
    Zoom In +
    Zoom Out -
    Original Size Alt+0
    Toggle Red Channel Alt+R
    Toggle Green Channel Alt+G
    Toggle Blue Channel Alt+B
    Toggle Alpha Channel Alt+A
    Rotate Left Ctrl+L
    Rotate Right Ctrl+R

    * Best viewed with Internet Explorer.