File indexing completed on 2026-05-10 08:45:13
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef NVTX_IMPL_GUARD
0027 #error Never include this file directly -- it is automatically included by nvToolsExt.h.
0028 #endif
0029
0030 #if defined(NVTX_AS_SYSTEM_HEADER)
0031 #if defined(__clang__)
0032 #pragma clang system_header
0033 #elif defined(__GNUC__) || defined(__NVCOMPILER)
0034 #pragma GCC system_header
0035 #elif defined(_MSC_VER)
0036 #pragma system_header
0037 #endif
0038 #endif
0039
0040
0041
0042
0043
0044
0045
0046
0047 typedef int nvtx_CUdevice;
0048 typedef void* nvtx_CUcontext;
0049 typedef void* nvtx_CUstream;
0050 typedef void* nvtx_CUevent;
0051
0052 typedef void* nvtx_cudaStream_t;
0053 typedef void* nvtx_cudaEvent_t;
0054
0055 typedef void* nvtx_cl_platform_id;
0056 typedef void* nvtx_cl_device_id;
0057 typedef void* nvtx_cl_context;
0058 typedef void* nvtx_cl_command_queue;
0059 typedef void* nvtx_cl_mem;
0060 typedef void* nvtx_cl_program;
0061 typedef void* nvtx_cl_kernel;
0062 typedef void* nvtx_cl_event;
0063 typedef void* nvtx_cl_sampler;
0064
0065 typedef void* nvtx_nvtxSyncUser_t;
0066 typedef void nvtx_nvtxSyncUserAttributes_t;
0067
0068
0069
0070 typedef void (NVTX_API * nvtxMarkEx_impl_fntype)(const nvtxEventAttributes_t* eventAttrib);
0071 typedef void (NVTX_API * nvtxMarkA_impl_fntype)(const char* message);
0072 typedef void (NVTX_API * nvtxMarkW_impl_fntype)(const wchar_t* message);
0073 typedef nvtxRangeId_t (NVTX_API * nvtxRangeStartEx_impl_fntype)(const nvtxEventAttributes_t* eventAttrib);
0074 typedef nvtxRangeId_t (NVTX_API * nvtxRangeStartA_impl_fntype)(const char* message);
0075 typedef nvtxRangeId_t (NVTX_API * nvtxRangeStartW_impl_fntype)(const wchar_t* message);
0076 typedef void (NVTX_API * nvtxRangeEnd_impl_fntype)(nvtxRangeId_t id);
0077 typedef int (NVTX_API * nvtxRangePushEx_impl_fntype)(const nvtxEventAttributes_t* eventAttrib);
0078 typedef int (NVTX_API * nvtxRangePushA_impl_fntype)(const char* message);
0079 typedef int (NVTX_API * nvtxRangePushW_impl_fntype)(const wchar_t* message);
0080 typedef int (NVTX_API * nvtxRangePop_impl_fntype)(void);
0081 typedef void (NVTX_API * nvtxNameCategoryA_impl_fntype)(uint32_t category, const char* name);
0082 typedef void (NVTX_API * nvtxNameCategoryW_impl_fntype)(uint32_t category, const wchar_t* name);
0083 typedef void (NVTX_API * nvtxNameOsThreadA_impl_fntype)(uint32_t threadId, const char* name);
0084 typedef void (NVTX_API * nvtxNameOsThreadW_impl_fntype)(uint32_t threadId, const wchar_t* name);
0085
0086
0087 typedef void (NVTX_API * nvtxNameCuDeviceA_fakeimpl_fntype)(nvtx_CUdevice device, const char* name);
0088 typedef void (NVTX_API * nvtxNameCuDeviceW_fakeimpl_fntype)(nvtx_CUdevice device, const wchar_t* name);
0089 typedef void (NVTX_API * nvtxNameCuContextA_fakeimpl_fntype)(nvtx_CUcontext context, const char* name);
0090 typedef void (NVTX_API * nvtxNameCuContextW_fakeimpl_fntype)(nvtx_CUcontext context, const wchar_t* name);
0091 typedef void (NVTX_API * nvtxNameCuStreamA_fakeimpl_fntype)(nvtx_CUstream stream, const char* name);
0092 typedef void (NVTX_API * nvtxNameCuStreamW_fakeimpl_fntype)(nvtx_CUstream stream, const wchar_t* name);
0093 typedef void (NVTX_API * nvtxNameCuEventA_fakeimpl_fntype)(nvtx_CUevent event, const char* name);
0094 typedef void (NVTX_API * nvtxNameCuEventW_fakeimpl_fntype)(nvtx_CUevent event, const wchar_t* name);
0095
0096
0097 typedef void (NVTX_API * nvtxNameClDeviceA_fakeimpl_fntype)(nvtx_cl_device_id device, const char* name);
0098 typedef void (NVTX_API * nvtxNameClDeviceW_fakeimpl_fntype)(nvtx_cl_device_id device, const wchar_t* name);
0099 typedef void (NVTX_API * nvtxNameClContextA_fakeimpl_fntype)(nvtx_cl_context context, const char* name);
0100 typedef void (NVTX_API * nvtxNameClContextW_fakeimpl_fntype)(nvtx_cl_context context, const wchar_t* name);
0101 typedef void (NVTX_API * nvtxNameClCommandQueueA_fakeimpl_fntype)(nvtx_cl_command_queue command_queue, const char* name);
0102 typedef void (NVTX_API * nvtxNameClCommandQueueW_fakeimpl_fntype)(nvtx_cl_command_queue command_queue, const wchar_t* name);
0103 typedef void (NVTX_API * nvtxNameClMemObjectA_fakeimpl_fntype)(nvtx_cl_mem memobj, const char* name);
0104 typedef void (NVTX_API * nvtxNameClMemObjectW_fakeimpl_fntype)(nvtx_cl_mem memobj, const wchar_t* name);
0105 typedef void (NVTX_API * nvtxNameClSamplerA_fakeimpl_fntype)(nvtx_cl_sampler sampler, const char* name);
0106 typedef void (NVTX_API * nvtxNameClSamplerW_fakeimpl_fntype)(nvtx_cl_sampler sampler, const wchar_t* name);
0107 typedef void (NVTX_API * nvtxNameClProgramA_fakeimpl_fntype)(nvtx_cl_program program, const char* name);
0108 typedef void (NVTX_API * nvtxNameClProgramW_fakeimpl_fntype)(nvtx_cl_program program, const wchar_t* name);
0109 typedef void (NVTX_API * nvtxNameClEventA_fakeimpl_fntype)(nvtx_cl_event evnt, const char* name);
0110 typedef void (NVTX_API * nvtxNameClEventW_fakeimpl_fntype)(nvtx_cl_event evnt, const wchar_t* name);
0111
0112
0113 typedef void (NVTX_API * nvtxNameCudaDeviceA_fakeimpl_fntype)(int device, const char* name);
0114 typedef void (NVTX_API * nvtxNameCudaDeviceW_fakeimpl_fntype)(int device, const wchar_t* name);
0115 typedef void (NVTX_API * nvtxNameCudaStreamA_fakeimpl_fntype)(nvtx_cudaStream_t stream, const char* name);
0116 typedef void (NVTX_API * nvtxNameCudaStreamW_fakeimpl_fntype)(nvtx_cudaStream_t stream, const wchar_t* name);
0117 typedef void (NVTX_API * nvtxNameCudaEventA_fakeimpl_fntype)(nvtx_cudaEvent_t event, const char* name);
0118 typedef void (NVTX_API * nvtxNameCudaEventW_fakeimpl_fntype)(nvtx_cudaEvent_t event, const wchar_t* name);
0119
0120 typedef void (NVTX_API * nvtxDomainMarkEx_impl_fntype)(nvtxDomainHandle_t domain, const nvtxEventAttributes_t* eventAttrib);
0121 typedef nvtxRangeId_t (NVTX_API * nvtxDomainRangeStartEx_impl_fntype)(nvtxDomainHandle_t domain, const nvtxEventAttributes_t* eventAttrib);
0122 typedef void (NVTX_API * nvtxDomainRangeEnd_impl_fntype)(nvtxDomainHandle_t domain, nvtxRangeId_t id);
0123 typedef int (NVTX_API * nvtxDomainRangePushEx_impl_fntype)(nvtxDomainHandle_t domain, const nvtxEventAttributes_t* eventAttrib);
0124 typedef int (NVTX_API * nvtxDomainRangePop_impl_fntype)(nvtxDomainHandle_t domain);
0125 typedef nvtxResourceHandle_t (NVTX_API * nvtxDomainResourceCreate_impl_fntype)(nvtxDomainHandle_t domain, nvtxResourceAttributes_t* attribs);
0126 typedef void (NVTX_API * nvtxDomainResourceDestroy_impl_fntype)(nvtxResourceHandle_t resource);
0127 typedef void (NVTX_API * nvtxDomainNameCategoryA_impl_fntype)(nvtxDomainHandle_t domain, uint32_t category, const char* name);
0128 typedef void (NVTX_API * nvtxDomainNameCategoryW_impl_fntype)(nvtxDomainHandle_t domain, uint32_t category, const wchar_t* name);
0129 typedef nvtxStringHandle_t (NVTX_API * nvtxDomainRegisterStringA_impl_fntype)(nvtxDomainHandle_t domain, const char* string);
0130 typedef nvtxStringHandle_t (NVTX_API * nvtxDomainRegisterStringW_impl_fntype)(nvtxDomainHandle_t domain, const wchar_t* string);
0131 typedef nvtxDomainHandle_t (NVTX_API * nvtxDomainCreateA_impl_fntype)(const char* message);
0132 typedef nvtxDomainHandle_t (NVTX_API * nvtxDomainCreateW_impl_fntype)(const wchar_t* message);
0133 typedef void (NVTX_API * nvtxDomainDestroy_impl_fntype)(nvtxDomainHandle_t domain);
0134 typedef void (NVTX_API * nvtxInitialize_impl_fntype)(const void* reserved);
0135
0136 typedef nvtx_nvtxSyncUser_t (NVTX_API * nvtxDomainSyncUserCreate_fakeimpl_fntype)(nvtxDomainHandle_t domain, const nvtx_nvtxSyncUserAttributes_t* attribs);
0137 typedef void (NVTX_API * nvtxDomainSyncUserDestroy_fakeimpl_fntype)(nvtx_nvtxSyncUser_t handle);
0138 typedef void (NVTX_API * nvtxDomainSyncUserAcquireStart_fakeimpl_fntype)(nvtx_nvtxSyncUser_t handle);
0139 typedef void (NVTX_API * nvtxDomainSyncUserAcquireFailed_fakeimpl_fntype)(nvtx_nvtxSyncUser_t handle);
0140 typedef void (NVTX_API * nvtxDomainSyncUserAcquireSuccess_fakeimpl_fntype)(nvtx_nvtxSyncUser_t handle);
0141 typedef void (NVTX_API * nvtxDomainSyncUserReleasing_fakeimpl_fntype)(nvtx_nvtxSyncUser_t handle);
0142
0143
0144
0145 typedef const void *(NVTX_API * NvtxGetExportTableFunc_t)(uint32_t exportTableId);
0146 typedef int (NVTX_API * NvtxInitializeInjectionNvtxFunc_t)(NvtxGetExportTableFunc_t exportTable);
0147
0148 typedef enum NvtxCallbackModule
0149 {
0150 NVTX_CB_MODULE_INVALID = 0,
0151 NVTX_CB_MODULE_CORE = 1,
0152 NVTX_CB_MODULE_CUDA = 2,
0153 NVTX_CB_MODULE_OPENCL = 3,
0154 NVTX_CB_MODULE_CUDART = 4,
0155 NVTX_CB_MODULE_CORE2 = 5,
0156 NVTX_CB_MODULE_SYNC = 6,
0157
0158 NVTX_CB_MODULE_SIZE,
0159 NVTX_CB_MODULE_FORCE_INT = 0x7fffffff
0160 } NvtxCallbackModule;
0161
0162 typedef enum NvtxCallbackIdCore
0163 {
0164 NVTX_CBID_CORE_INVALID = 0,
0165 NVTX_CBID_CORE_MarkEx = 1,
0166 NVTX_CBID_CORE_MarkA = 2,
0167 NVTX_CBID_CORE_MarkW = 3,
0168 NVTX_CBID_CORE_RangeStartEx = 4,
0169 NVTX_CBID_CORE_RangeStartA = 5,
0170 NVTX_CBID_CORE_RangeStartW = 6,
0171 NVTX_CBID_CORE_RangeEnd = 7,
0172 NVTX_CBID_CORE_RangePushEx = 8,
0173 NVTX_CBID_CORE_RangePushA = 9,
0174 NVTX_CBID_CORE_RangePushW = 10,
0175 NVTX_CBID_CORE_RangePop = 11,
0176 NVTX_CBID_CORE_NameCategoryA = 12,
0177 NVTX_CBID_CORE_NameCategoryW = 13,
0178 NVTX_CBID_CORE_NameOsThreadA = 14,
0179 NVTX_CBID_CORE_NameOsThreadW = 15,
0180
0181 NVTX_CBID_CORE_SIZE,
0182 NVTX_CBID_CORE_FORCE_INT = 0x7fffffff
0183 } NvtxCallbackIdCore;
0184
0185 typedef enum NvtxCallbackIdCore2
0186 {
0187 NVTX_CBID_CORE2_INVALID = 0,
0188 NVTX_CBID_CORE2_DomainMarkEx = 1,
0189 NVTX_CBID_CORE2_DomainRangeStartEx = 2,
0190 NVTX_CBID_CORE2_DomainRangeEnd = 3,
0191 NVTX_CBID_CORE2_DomainRangePushEx = 4,
0192 NVTX_CBID_CORE2_DomainRangePop = 5,
0193 NVTX_CBID_CORE2_DomainResourceCreate = 6,
0194 NVTX_CBID_CORE2_DomainResourceDestroy = 7,
0195 NVTX_CBID_CORE2_DomainNameCategoryA = 8,
0196 NVTX_CBID_CORE2_DomainNameCategoryW = 9,
0197 NVTX_CBID_CORE2_DomainRegisterStringA = 10,
0198 NVTX_CBID_CORE2_DomainRegisterStringW = 11,
0199 NVTX_CBID_CORE2_DomainCreateA = 12,
0200 NVTX_CBID_CORE2_DomainCreateW = 13,
0201 NVTX_CBID_CORE2_DomainDestroy = 14,
0202 NVTX_CBID_CORE2_Initialize = 15,
0203
0204 NVTX_CBID_CORE2_SIZE,
0205 NVTX_CBID_CORE2_FORCE_INT = 0x7fffffff
0206 } NvtxCallbackIdCore2;
0207
0208 typedef enum NvtxCallbackIdCuda
0209 {
0210 NVTX_CBID_CUDA_INVALID = 0,
0211 NVTX_CBID_CUDA_NameCuDeviceA = 1,
0212 NVTX_CBID_CUDA_NameCuDeviceW = 2,
0213 NVTX_CBID_CUDA_NameCuContextA = 3,
0214 NVTX_CBID_CUDA_NameCuContextW = 4,
0215 NVTX_CBID_CUDA_NameCuStreamA = 5,
0216 NVTX_CBID_CUDA_NameCuStreamW = 6,
0217 NVTX_CBID_CUDA_NameCuEventA = 7,
0218 NVTX_CBID_CUDA_NameCuEventW = 8,
0219
0220 NVTX_CBID_CUDA_SIZE,
0221 NVTX_CBID_CUDA_FORCE_INT = 0x7fffffff
0222 } NvtxCallbackIdCuda;
0223
0224 typedef enum NvtxCallbackIdCudaRt
0225 {
0226 NVTX_CBID_CUDART_INVALID = 0,
0227 NVTX_CBID_CUDART_NameCudaDeviceA = 1,
0228 NVTX_CBID_CUDART_NameCudaDeviceW = 2,
0229 NVTX_CBID_CUDART_NameCudaStreamA = 3,
0230 NVTX_CBID_CUDART_NameCudaStreamW = 4,
0231 NVTX_CBID_CUDART_NameCudaEventA = 5,
0232 NVTX_CBID_CUDART_NameCudaEventW = 6,
0233
0234 NVTX_CBID_CUDART_SIZE,
0235 NVTX_CBID_CUDART_FORCE_INT = 0x7fffffff
0236 } NvtxCallbackIdCudaRt;
0237
0238 typedef enum NvtxCallbackIdOpenCL
0239 {
0240 NVTX_CBID_OPENCL_INVALID = 0,
0241 NVTX_CBID_OPENCL_NameClDeviceA = 1,
0242 NVTX_CBID_OPENCL_NameClDeviceW = 2,
0243 NVTX_CBID_OPENCL_NameClContextA = 3,
0244 NVTX_CBID_OPENCL_NameClContextW = 4,
0245 NVTX_CBID_OPENCL_NameClCommandQueueA = 5,
0246 NVTX_CBID_OPENCL_NameClCommandQueueW = 6,
0247 NVTX_CBID_OPENCL_NameClMemObjectA = 7,
0248 NVTX_CBID_OPENCL_NameClMemObjectW = 8,
0249 NVTX_CBID_OPENCL_NameClSamplerA = 9,
0250 NVTX_CBID_OPENCL_NameClSamplerW = 10,
0251 NVTX_CBID_OPENCL_NameClProgramA = 11,
0252 NVTX_CBID_OPENCL_NameClProgramW = 12,
0253 NVTX_CBID_OPENCL_NameClEventA = 13,
0254 NVTX_CBID_OPENCL_NameClEventW = 14,
0255
0256 NVTX_CBID_OPENCL_SIZE,
0257 NVTX_CBID_OPENCL_FORCE_INT = 0x7fffffff
0258 } NvtxCallbackIdOpenCL;
0259
0260 typedef enum NvtxCallbackIdSync
0261 {
0262 NVTX_CBID_SYNC_INVALID = 0,
0263 NVTX_CBID_SYNC_DomainSyncUserCreate = 1,
0264 NVTX_CBID_SYNC_DomainSyncUserDestroy = 2,
0265 NVTX_CBID_SYNC_DomainSyncUserAcquireStart = 3,
0266 NVTX_CBID_SYNC_DomainSyncUserAcquireFailed = 4,
0267 NVTX_CBID_SYNC_DomainSyncUserAcquireSuccess = 5,
0268 NVTX_CBID_SYNC_DomainSyncUserReleasing = 6,
0269
0270 NVTX_CBID_SYNC_SIZE,
0271 NVTX_CBID_SYNC_FORCE_INT = 0x7fffffff
0272 } NvtxCallbackIdSync;
0273
0274
0275 typedef enum NvtxExportTableID
0276 {
0277 NVTX_ETID_INVALID = 0,
0278 NVTX_ETID_CALLBACKS = 1,
0279 NVTX_ETID_RESERVED0 = 2,
0280 NVTX_ETID_VERSIONINFO = 3,
0281
0282 NVTX_ETID_SIZE,
0283 NVTX_ETID_FORCE_INT = 0x7fffffff
0284 } NvtxExportTableID;
0285
0286 typedef void (* NvtxFunctionPointer)(void);
0287 typedef NvtxFunctionPointer** NvtxFunctionTable;
0288
0289 typedef struct NvtxExportTableCallbacks
0290 {
0291 size_t struct_size;
0292
0293
0294 int (NVTX_API *GetModuleFunctionTable)(
0295 NvtxCallbackModule callback_module,
0296 NvtxFunctionTable* out_table,
0297 unsigned int* out_size);
0298 } NvtxExportTableCallbacks;
0299
0300 typedef struct NvtxExportTableVersionInfo
0301 {
0302
0303 size_t struct_size;
0304
0305
0306
0307 uint32_t version;
0308
0309
0310 uint32_t reserved0;
0311
0312
0313
0314
0315
0316 void (NVTX_API *SetInjectionNvtxVersion)(
0317 uint32_t version);
0318 } NvtxExportTableVersionInfo;