# CUPTI Result Codes

## Enumerations

enum

CUptiResult {
CUPTI_SUCCESS = 0,
CUPTI_ERROR_INVALID_PARAMETER = 1,
CUPTI_ERROR_INVALID_DEVICE = 2,
CUPTI_ERROR_INVALID_CONTEXT = 3,
CUPTI_ERROR_INVALID_EVENT_DOMAIN_ID = 4,
CUPTI_ERROR_INVALID_EVENT_ID = 5,
CUPTI_ERROR_INVALID_EVENT_NAME = 6,
CUPTI_ERROR_INVALID_OPERATION = 7,
CUPTI_ERROR_OUT_OF_MEMORY = 8,
CUPTI_ERROR_HARDWARE = 9,
CUPTI_ERROR_PARAMETER_SIZE_NOT_SUFFICIENT = 10,
CUPTI_ERROR_API_NOT_IMPLEMENTED = 11,
CUPTI_ERROR_MAX_LIMIT_REACHED = 12,
CUPTI_ERROR_NOT_READY = 13,
CUPTI_ERROR_NOT_COMPATIBLE = 14,
CUPTI_ERROR_NOT_INITIALIZED = 15,
CUPTI_ERROR_INVALID_METRIC_ID = 16,
CUPTI_ERROR_INVALID_METRIC_NAME = 17,
CUPTI_ERROR_QUEUE_EMPTY = 18,
CUPTI_ERROR_INVALID_HANDLE = 19,
CUPTI_ERROR_INVALID_STREAM = 20,
CUPTI_ERROR_INVALID_KIND = 21,
CUPTI_ERROR_INVALID_EVENT_VALUE = 22,
CUPTI_ERROR_DISABLED = 23,
CUPTI_ERROR_INVALID_MODULE = 24,
CUPTI_ERROR_INVALID_METRIC_VALUE = 25,
CUPTI_ERROR_HARDWARE_BUSY = 26,
CUPTI_ERROR_NOT_SUPPORTED = 27,
CUPTI_ERROR_UM_PROFILING_NOT_SUPPORTED = 28,
CUPTI_ERROR_UM_PROFILING_NOT_SUPPORTED_ON_DEVICE = 29,
CUPTI_ERROR_UM_PROFILING_NOT_SUPPORTED_ON_NON_P2P_DEVICES = 30,
CUPTI_ERROR_UM_PROFILING_NOT_SUPPORTED_WITH_MPS = 31,
CUPTI_ERROR_CDP_TRACING_NOT_SUPPORTED = 32,
CUPTI_ERROR_VIRTUALIZED_DEVICE_NOT_SUPPORTED = 33,
CUPTI_ERROR_CUDA_COMPILER_NOT_COMPATIBLE = 34,
CUPTI_ERROR_INSUFFICIENT_PRIVILEGES = 35,
CUPTI_ERROR_OLD_PROFILER_API_INITIALIZED = 36,
CUPTI_ERROR_UNKNOWN = 999
}

| CUPTI result codes. More...

## Functions

CUptiResult | cuptiGetResultString (CUptiResult result, const char **str)
| Get the descriptive string for a CUptiResult.

## Detailed Description

Error and result codes returned by CUPTI functions.

## Enumeration Type Documentation

enum CUptiResult

Error and result codes returned by CUPTI functions.

Enumerator:

  CUPTI_SUCCESS | No error.
  CUPTI_ERROR_INVALID_PARAMETER | One or more of the parameters is invalid.
  CUPTI_ERROR_INVALID_DEVICE | The device does not correspond to a valid CUDA device.
  CUPTI_ERROR_INVALID_CONTEXT | The context is NULL or not valid.
  CUPTI_ERROR_INVALID_EVENT_DOMAIN_ID | The event domain id is invalid.
  CUPTI_ERROR_INVALID_EVENT_ID | The event id is invalid.
  CUPTI_ERROR_INVALID_EVENT_NAME | The event name is invalid.
  CUPTI_ERROR_INVALID_OPERATION | The current operation cannot be performed due to dependency on other factors.
  CUPTI_ERROR_OUT_OF_MEMORY | Unable to allocate enough memory to perform the requested operation.
  CUPTI_ERROR_HARDWARE | An error occurred on the performance monitoring hardware.
  CUPTI_ERROR_PARAMETER_SIZE_NOT_SUFFICIENT | The output buffer size is not sufficient to return all requested data.
  CUPTI_ERROR_API_NOT_IMPLEMENTED | API is not implemented.
  CUPTI_ERROR_MAX_LIMIT_REACHED | The maximum limit is reached.
  CUPTI_ERROR_NOT_READY | The object is not yet ready to perform the requested operation.
  CUPTI_ERROR_NOT_COMPATIBLE | The current operation is not compatible with the current state of the object
  CUPTI_ERROR_NOT_INITIALIZED | CUPTI is unable to initialize its connection to the CUDA driver.
  CUPTI_ERROR_INVALID_METRIC_ID | The metric id is invalid.
  CUPTI_ERROR_INVALID_METRIC_NAME | The metric name is invalid.
  CUPTI_ERROR_QUEUE_EMPTY | The queue is empty.
  CUPTI_ERROR_INVALID_HANDLE | Invalid handle (internal?).
  CUPTI_ERROR_INVALID_STREAM | Invalid stream.
  CUPTI_ERROR_INVALID_KIND | Invalid kind.
  CUPTI_ERROR_INVALID_EVENT_VALUE | Invalid event value.
  CUPTI_ERROR_DISABLED | CUPTI is disabled due to conflicts with other enabled profilers
  CUPTI_ERROR_INVALID_MODULE | Invalid module.
  CUPTI_ERROR_INVALID_METRIC_VALUE | Invalid metric value.
  CUPTI_ERROR_HARDWARE_BUSY | The performance monitoring hardware is in use by other client.
  CUPTI_ERROR_NOT_SUPPORTED | The attempted operation is not supported on the current system or device.
  CUPTI_ERROR_UM_PROFILING_NOT_SUPPORTED | Unified memory profiling is not supported on the system. Potential reason could be unsupported OS or architecture.
  CUPTI_ERROR_UM_PROFILING_NOT_SUPPORTED_ON_DEVICE | Unified memory profiling is not supported on the device
  CUPTI_ERROR_UM_PROFILING_NOT_SUPPORTED_ON_NON_P2P_DEVICES | Unified memory profiling is not supported on a multi-GPU configuration without P2P support between any pair of devices
  CUPTI_ERROR_UM_PROFILING_NOT_SUPPORTED_WITH_MPS | Unified memory profiling is not supported under the Multi-Process Service (MPS) environment. CUDA 7.5 removes this restriction.
  CUPTI_ERROR_CDP_TRACING_NOT_SUPPORTED | In CUDA 9.0, devices with compute capability 7.0 don't support CDP tracing
  CUPTI_ERROR_VIRTUALIZED_DEVICE_NOT_SUPPORTED | Profiling on virtualized GPU is not supported.

  CUPTI_ERROR_CUDA_COMPILER_NOT_COMPATIBLE

  Profiling results might be incorrect for CUDA applications compiled with nvcc version older than 9.0 for devices with compute capability 6.0 and 6.1. Profiling session will continue and CUPTI will notify it using this error code. User is advised to recompile the application code with nvcc version 9.0 or later. Ignore this warning if code is already compiled with the recommended nvcc version.

  CUPTI_ERROR_INSUFFICIENT_PRIVILEGES | User doesn't have sufficient priviledges which are required to start the profiling session.
  CUPTI_ERROR_OLD_PROFILER_API_INITIALIZED | Old profiling api's are not supported with new profiling api's
  CUPTI_ERROR_UNKNOWN | An unknown internal error has occurred.

## Function Documentation

CUptiResult cuptiGetResultString | ( | CUptiResult | result,
|  | const char ** | str |
| ) |  |  |

Return the descriptive string for a CUptiResult in `*str`.

Note:
  Thread-safety: this function is thread safe.

Parameters:

  | result | The result to get the string for
  | str | Returns the string

Return values:

  | CUPTI_SUCCESS | on success
  | CUPTI_ERROR_INVALID_PARAMETER | if `str` is NULL or `result` is not a valid CUptiResult