CUDA Driver API (PDF) - v7.0 (older) - Last updated March 5, 2015 - Send Feedback -

## 3.25. Profiler Control

This section describes the profiler control functions of the low-level CUDA driver application programming interface.

### Functions

CUresult cuProfilerInitialize ( const char* configFile, const char* outputFile, CUoutput_mode outputMode )
  Initialize the profiling.
CUresult cuProfilerStart ( void )
  Enable profiling.
CUresult cuProfilerStop ( void )
  Disable profiling.

### Functions

CUresult cuProfilerInitialize ( const char* configFile, const char* outputFile, CUoutput_mode outputMode )
  Initialize the profiling.

  ###### Parameters

  `configFile`
    - Name of the config file that lists the counters/options for profiling.
  `outputFile`
    - Name of the outputFile where the profiling results will be stored.
  `outputMode`
    - outputMode, can be CU_OUT_KEY_VALUE_PAIR or CU_OUT_CSV.

  ###### Returns

  CUDA_SUCCESS, CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE, CUDA_ERROR_PROFILER_DISABLED

  ###### Description

  Using this API user can initialize the CUDA profiler by specifying the configuration file, output file and output file format. This API is generally used to profile different set of counters by looping the kernel launch. The `configFile` parameter can be used to select profiling options including profiler counters. Refer to the "Compute Command Line Profiler User Guide" for supported profiler options and counters.

  Limitation: The CUDA profiler cannot be initialized with this API if another profiling tool is already active, as indicated by the CUDA_ERROR_PROFILER_DISABLED return code.

  Typical usage of the profiling APIs is as follows:

  for each set of counters/options { cuProfilerInitialize(); //Initialize profiling, set the counters or options in the config file ... cuProfilerStart(); // code to be profiled cuProfilerStop(); ... cuProfilerStart(); // code to be profiled cuProfilerStop(); ... }

  Note:

  Note that this function may also return error codes from previous, asynchronous launches.

  See also:

  cuProfilerStart, cuProfilerStop

CUresult cuProfilerStart ( void )
  Enable profiling.

  ###### Returns

  CUDA_SUCCESS, CUDA_ERROR_INVALID_CONTEXT

  ###### Description

  Enables profile collection by the active profiling tool for the current context. If profiling is already enabled, then cuProfilerStart() has no effect.

  cuProfilerStart and cuProfilerStop APIs are used to programmatically control the profiling granularity by allowing profiling to be done only on selective pieces of code.

  Note:

  Note that this function may also return error codes from previous, asynchronous launches.

  See also:

  cuProfilerInitialize, cuProfilerStop

CUresult cuProfilerStop ( void )
  Disable profiling.

  ###### Returns

  CUDA_SUCCESS, CUDA_ERROR_INVALID_CONTEXT

  ###### Description

  Disables profile collection by the active profiling tool for the current context. If profiling is already disabled, then cuProfilerStop() has no effect.

  cuProfilerStart and cuProfilerStop APIs are used to programmatically control the profiling granularity by allowing profiling to be done only on selective pieces of code.

  Note:

  Note that this function may also return error codes from previous, asynchronous launches.

  See also:

  cuProfilerInitialize, cuProfilerStart