NVTX  v3
NVIDIA Tools Extension Library
nvToolsExtOpenCL.h
1 /*
2 * Copyright 2009-2020 NVIDIA Corporation. All rights reserved.
3 *
4 * Licensed under the Apache License v2.0 with LLVM Exceptions.
5 * See https://llvm.org/LICENSE.txt for license information.
6 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 */
8 
9 #include "nvToolsExt.h"
10 
11 #include <CL/cl.h>
12 
13 #ifndef NVTOOLSEXT_OPENCL_V3
14 #define NVTOOLSEXT_OPENCL_V3
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif /* __cplusplus */
19 
20 /* ========================================================================= */
32 /* ------------------------------------------------------------------------- */
33 /* \cond SHOW_HIDDEN
34 * \brief Used to build a non-colliding value for resource types separated class
35 * \version \NVTX_VERSION_2
36 */
37 #define NVTX_RESOURCE_CLASS_OPENCL 6
38 
40 /* ------------------------------------------------------------------------- */
44 {
45  NVTX_RESOURCE_TYPE_OPENCL_DEVICE = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 1),
46  NVTX_RESOURCE_TYPE_OPENCL_CONTEXT = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 2),
47  NVTX_RESOURCE_TYPE_OPENCL_COMMANDQUEUE = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 3),
48  NVTX_RESOURCE_TYPE_OPENCL_MEMOBJECT = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 4),
49  NVTX_RESOURCE_TYPE_OPENCL_SAMPLER = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 5),
50  NVTX_RESOURCE_TYPE_OPENCL_PROGRAM = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 6),
51  NVTX_RESOURCE_TYPE_OPENCL_EVENT = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 7),
53 
54 
55 /* ------------------------------------------------------------------------- */
65 NVTX_DECLSPEC void NVTX_API nvtxNameClDeviceA(cl_device_id device, const char* name);
66 NVTX_DECLSPEC void NVTX_API nvtxNameClDeviceW(cl_device_id device, const wchar_t* name);
69 /* ------------------------------------------------------------------------- */
79 NVTX_DECLSPEC void NVTX_API nvtxNameClContextA(cl_context context, const char* name);
80 NVTX_DECLSPEC void NVTX_API nvtxNameClContextW(cl_context context, const wchar_t* name);
83 /* ------------------------------------------------------------------------- */
93 NVTX_DECLSPEC void NVTX_API nvtxNameClCommandQueueA(cl_command_queue command_queue, const char* name);
94 NVTX_DECLSPEC void NVTX_API nvtxNameClCommandQueueW(cl_command_queue command_queue, const wchar_t* name);
97 /* ------------------------------------------------------------------------- */
107 NVTX_DECLSPEC void NVTX_API nvtxNameClMemObjectA(cl_mem memobj, const char* name);
108 NVTX_DECLSPEC void NVTX_API nvtxNameClMemObjectW(cl_mem memobj, const wchar_t* name);
111 /* ------------------------------------------------------------------------- */
121 NVTX_DECLSPEC void NVTX_API nvtxNameClSamplerA(cl_sampler sampler, const char* name);
122 NVTX_DECLSPEC void NVTX_API nvtxNameClSamplerW(cl_sampler sampler, const wchar_t* name);
125 /* ------------------------------------------------------------------------- */
142 NVTX_DECLSPEC void NVTX_API nvtxNameClProgramA(cl_program program, const char* name);
143 NVTX_DECLSPEC void NVTX_API nvtxNameClProgramW(cl_program program, const wchar_t* name);
146 /* ------------------------------------------------------------------------- */
156 NVTX_DECLSPEC void NVTX_API nvtxNameClEventA(cl_event evnt, const char* name);
157 NVTX_DECLSPEC void NVTX_API nvtxNameClEventW(cl_event evnt, const wchar_t* name); /* END RESOURCE_NAMING */
161 
162 /* ========================================================================= */
163 #ifdef UNICODE
164  #define nvtxNameClDevice nvtxNameClDeviceW
165  #define nvtxNameClContext nvtxNameClContextW
166  #define nvtxNameClCommandQueue nvtxNameClCommandQueueW
167  #define nvtxNameClMemObject nvtxNameClMemObjectW
168  #define nvtxNameClSampler nvtxNameClSamplerW
169  #define nvtxNameClProgram nvtxNameClProgramW
170  #define nvtxNameClEvent nvtxNameClEventW
171 #else
172  #define nvtxNameClDevice nvtxNameClDeviceA
173  #define nvtxNameClContext nvtxNameClContextA
174  #define nvtxNameClCommandQueue nvtxNameClCommandQueueA
175  #define nvtxNameClMemObject nvtxNameClMemObjectA
176  #define nvtxNameClSampler nvtxNameClSamplerA
177  #define nvtxNameClProgram nvtxNameClProgramA
178  #define nvtxNameClEvent nvtxNameClEventA
179 #endif
180 
181 #ifdef __cplusplus
182 }
183 #endif /* __cplusplus */
184 
185 #ifndef NVTX_NO_IMPL
186 #define NVTX_IMPL_GUARD_OPENCL /* Ensure other headers cannot included directly */
187 #include "nvtxDetail/nvtxImplOpenCL_v3.h"
188 #undef NVTX_IMPL_GUARD_OPENCL
189 #endif /*NVTX_NO_IMPL*/
190 
191 #endif /* NVTOOLSEXT_OPENCL_V3 */
NVTX_DECLSPEC void NVTX_API nvtxNameClMemObjectA(cl_mem memobj, const char *name)
Annotates an OpenCL memory object.
NVTX_DECLSPEC void NVTX_API nvtxNameClEventA(cl_event evnt, const char *name)
Annotates an OpenCL event.
nvtxResourceOpenCLType_t
Resource types for OpenCL.
NVTX_DECLSPEC void NVTX_API nvtxNameClDeviceA(cl_device_id device, const char *name)
Annotates an OpenCL device.
NVTX_DECLSPEC void NVTX_API nvtxNameClSamplerA(cl_sampler sampler, const char *name)
Annotates an OpenCL sampler.
NVTX_DECLSPEC void NVTX_API nvtxNameClProgramA(cl_program program, const char *name)
Annotates an OpenCL program.
NVTX_DECLSPEC void NVTX_API nvtxNameClCommandQueueA(cl_command_queue command_queue, const char *name)
Annotates an OpenCL command queue.
NVTX_DECLSPEC void NVTX_API nvtxNameClContextA(cl_context context, const char *name)
Annotates an OpenCL context.