NVTX C API Reference v3
NVIDIA Tools Extension Library
Loading...
Searching...
No Matches
nvToolsExtOpenCL.h
1/*
2 * SPDX-FileCopyrightText: Copyright (c) 2009-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 * Licensed under the Apache License v2.0 with LLVM Exceptions.
18 * See https://nvidia.github.io/NVTX/LICENSE.txt for license information.
19 */
20
21#if defined(NVTX_AS_SYSTEM_HEADER)
22#if defined(__clang__)
23#pragma clang system_header
24#elif defined(__GNUC__) || defined(__NVCOMPILER)
25#pragma GCC system_header
26#elif defined(_MSC_VER)
27#pragma system_header
28#endif
29#endif
30
31#include "nvToolsExt.h"
32
33#include <CL/cl.h>
34
35#ifndef NVTOOLSEXT_OPENCL_V3
36#define NVTOOLSEXT_OPENCL_V3
37
38#ifdef __cplusplus
39extern "C" {
40#endif /* __cplusplus */
41
42/* ========================================================================= */
54/* ------------------------------------------------------------------------- */
55/* \cond SHOW_HIDDEN
56* \brief Used to build a non-colliding value for resource types separated class
57* \version NVTX_VERSION_2
58*/
59#define NVTX_RESOURCE_CLASS_OPENCL 6
62/* ------------------------------------------------------------------------- */
66{
67 NVTX_RESOURCE_TYPE_OPENCL_DEVICE = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 1),
68 NVTX_RESOURCE_TYPE_OPENCL_CONTEXT = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 2),
69 NVTX_RESOURCE_TYPE_OPENCL_COMMANDQUEUE = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 3),
70 NVTX_RESOURCE_TYPE_OPENCL_MEMOBJECT = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 4),
71 NVTX_RESOURCE_TYPE_OPENCL_SAMPLER = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 5),
72 NVTX_RESOURCE_TYPE_OPENCL_PROGRAM = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 6),
73 NVTX_RESOURCE_TYPE_OPENCL_EVENT = NVTX_RESOURCE_MAKE_TYPE(OPENCL, 7)
75
76
77/* ------------------------------------------------------------------------- */
87NVTX_DECLSPEC void NVTX_API nvtxNameClDeviceA(cl_device_id device, const char* name);
88NVTX_DECLSPEC void NVTX_API nvtxNameClDeviceW(cl_device_id device, const wchar_t* name);
91/* ------------------------------------------------------------------------- */
101NVTX_DECLSPEC void NVTX_API nvtxNameClContextA(cl_context context, const char* name);
102NVTX_DECLSPEC void NVTX_API nvtxNameClContextW(cl_context context, const wchar_t* name);
105/* ------------------------------------------------------------------------- */
115NVTX_DECLSPEC void NVTX_API nvtxNameClCommandQueueA(cl_command_queue command_queue, const char* name);
116NVTX_DECLSPEC void NVTX_API nvtxNameClCommandQueueW(cl_command_queue command_queue, const wchar_t* name);
119/* ------------------------------------------------------------------------- */
129NVTX_DECLSPEC void NVTX_API nvtxNameClMemObjectA(cl_mem memobj, const char* name);
130NVTX_DECLSPEC void NVTX_API nvtxNameClMemObjectW(cl_mem memobj, const wchar_t* name);
133/* ------------------------------------------------------------------------- */
143NVTX_DECLSPEC void NVTX_API nvtxNameClSamplerA(cl_sampler sampler, const char* name);
144NVTX_DECLSPEC void NVTX_API nvtxNameClSamplerW(cl_sampler sampler, const wchar_t* name);
147/* ------------------------------------------------------------------------- */
164NVTX_DECLSPEC void NVTX_API nvtxNameClProgramA(cl_program program, const char* name);
165NVTX_DECLSPEC void NVTX_API nvtxNameClProgramW(cl_program program, const wchar_t* name);
168/* ------------------------------------------------------------------------- */
178NVTX_DECLSPEC void NVTX_API nvtxNameClEventA(cl_event evnt, const char* name);
179NVTX_DECLSPEC void NVTX_API nvtxNameClEventW(cl_event evnt, const wchar_t* name);
/* END RESOURCE_NAMING */
183
184/* ========================================================================= */
185#ifdef UNICODE
186 #define nvtxNameClDevice nvtxNameClDeviceW
187 #define nvtxNameClContext nvtxNameClContextW
188 #define nvtxNameClCommandQueue nvtxNameClCommandQueueW
189 #define nvtxNameClMemObject nvtxNameClMemObjectW
190 #define nvtxNameClSampler nvtxNameClSamplerW
191 #define nvtxNameClProgram nvtxNameClProgramW
192 #define nvtxNameClEvent nvtxNameClEventW
193#else
194 #define nvtxNameClDevice nvtxNameClDeviceA
195 #define nvtxNameClContext nvtxNameClContextA
196 #define nvtxNameClCommandQueue nvtxNameClCommandQueueA
197 #define nvtxNameClMemObject nvtxNameClMemObjectA
198 #define nvtxNameClSampler nvtxNameClSamplerA
199 #define nvtxNameClProgram nvtxNameClProgramA
200 #define nvtxNameClEvent nvtxNameClEventA
201#endif
202
203#ifdef __cplusplus
204}
205#endif /* __cplusplus */
206
207#ifndef NVTX_NO_IMPL
208#define NVTX_IMPL_GUARD_OPENCL /* Ensure other headers cannot be included directly */
209#include "nvtxDetail/nvtxImplOpenCL_v3.h"
210#undef NVTX_IMPL_GUARD_OPENCL
211#endif /*NVTX_NO_IMPL*/
212
213#endif /* NVTOOLSEXT_OPENCL_V3 */
NVTX_DECLSPEC void NVTX_API nvtxNameClEventA(cl_event evnt, const char *name)
Annotates an OpenCL event.
NVTX_DECLSPEC void NVTX_API nvtxNameClSamplerA(cl_sampler sampler, const char *name)
Annotates an OpenCL sampler.
NVTX_DECLSPEC void NVTX_API nvtxNameClDeviceA(cl_device_id device, const char *name)
Annotates an OpenCL device.
NVTX_DECLSPEC void NVTX_API nvtxNameClMemObjectA(cl_mem memobj, const char *name)
Annotates an OpenCL memory object.
NVTX_DECLSPEC void NVTX_API nvtxNameClProgramA(cl_program program, const char *name)
Annotates an OpenCL program.
nvtxResourceOpenCLType_t
Resource types for OpenCL.
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.