#ifndef PROTON_DRIVER_GPU_CUPTI_H_ #define PROTON_DRIVER_GPU_CUPTI_H_ #include "cupti.h" #include "cupti_pcsampling.h" #include namespace proton { namespace cupti { template CUptiResult getVersion(uint32_t *version); template CUptiResult getContextId(CUcontext context, uint32_t *pCtxId); template CUptiResult activityRegisterCallbacks( CUpti_BuffersCallbackRequestFunc funcBufferRequested, CUpti_BuffersCallbackCompleteFunc funcBufferCompleted); template CUptiResult subscribe(CUpti_SubscriberHandle *subscriber, CUpti_CallbackFunc callback, void *userdata); template CUptiResult enableDomain(uint32_t enable, CUpti_SubscriberHandle subscriber, CUpti_CallbackDomain domain); template CUptiResult enableCallback(uint32_t enable, CUpti_SubscriberHandle subscriber, CUpti_CallbackDomain domain, CUpti_CallbackId cbid); template CUptiResult activityEnableContext(CUcontext context, CUpti_ActivityKind kind); template CUptiResult activityDisableContext(CUcontext context, CUpti_ActivityKind kind); template CUptiResult activityEnable(CUpti_ActivityKind kind); template CUptiResult activityDisable(CUpti_ActivityKind kind); template CUptiResult activityFlushAll(uint32_t flag); template CUptiResult activityGetNextRecord(uint8_t *buffer, size_t validBufferSizeBytes, CUpti_Activity **record); template CUptiResult activityPushExternalCorrelationId(CUpti_ExternalCorrelationKind kind, uint64_t id); template CUptiResult activityPopExternalCorrelationId(CUpti_ExternalCorrelationKind kind, uint64_t *lastId); template CUptiResult activitySetAttribute(CUpti_ActivityAttribute attr, size_t *valueSize, void *value); template CUptiResult unsubscribe(CUpti_SubscriberHandle subscriber); template CUptiResult finalize(); template CUptiResult getGraphExecId(CUgraphExec graph, uint32_t *pId); template CUptiResult getGraphId(CUgraph graph, uint32_t *pId); template CUptiResult getCubinCrc(CUpti_GetCubinCrcParams *pParams); template CUptiResult getSassToSourceCorrelation(CUpti_GetSassToSourceCorrelationParams *pParams); template CUptiResult pcSamplingGetNumStallReasons(CUpti_PCSamplingGetNumStallReasonsParams *pParams); template CUptiResult pcSamplingGetStallReasons(CUpti_PCSamplingGetStallReasonsParams *pParams); template CUptiResult pcSamplingSetConfigurationAttribute( CUpti_PCSamplingConfigurationInfoParams *pParams); template CUptiResult pcSamplingEnable(CUpti_PCSamplingEnableParams *pParams); template CUptiResult pcSamplingDisable(CUpti_PCSamplingDisableParams *pParams); template CUptiResult pcSamplingGetData(CUpti_PCSamplingGetDataParams *pParams); template CUptiResult pcSamplingStart(CUpti_PCSamplingStartParams *pParams); template CUptiResult pcSamplingStop(CUpti_PCSamplingStopParams *pParams); void setLibPath(const std::string &path); } // namespace cupti } // namespace proton #endif // PROTON_EXTERN_DISPATCH_H_