Go to the source code of this file.
|
| #define | CL_FINISH(queue) |
| |
| #define | CL_DISPATCH_PROFILED(name, queue, kernel, ...) |
| |
| #define | CL_READ_PROFILED(name, queue, buffer, ...) |
| |
| #define | CL_COUNTER_GET(name, queue, counter, value) |
| |
| #define | CL_COUNTER_SET(name, queue, counter, value) |
| |
| #define | CL_PROFILE_BEGIN(name, queue) |
| |
| #define | CL_PROFILE_END() |
| |
◆ CL_COUNTER_GET
| #define CL_COUNTER_GET |
( |
| name, |
|
|
| queue, |
|
|
| counter, |
|
|
| value ) |
Value: do { \
CL_FINISH(queue); \
{ \
TIME_PROFILE_SUBSCOPE(name); \
cl::Event __cl_event; \
(value) = (counter).get(queue, &__cl_event); \
__cl_event.wait(); \
cl_ulong __queued = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_QUEUED>(); \
cl_ulong __start = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_START>(); \
cl_ulong __end = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_END>(); \
CL_FINISH(queue); \
} \
} while (false)
#define TIME_PROFILE_SUBLABEL
Definition time_profiler.hpp:86
◆ CL_COUNTER_SET
| #define CL_COUNTER_SET |
( |
| name, |
|
|
| queue, |
|
|
| counter, |
|
|
| value ) |
Value: do { \
CL_FINISH(queue); \
{ \
TIME_PROFILE_SUBSCOPE(name); \
cl::Event __cl_event; \
(counter).set(queue, (value), &__cl_event); \
__cl_event.wait(); \
cl_ulong __queued = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_QUEUED>(); \
cl_ulong __start = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_START>(); \
cl_ulong __end = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_END>(); \
CL_FINISH(queue); \
} \
} while (false)
◆ CL_DISPATCH_PROFILED
| #define CL_DISPATCH_PROFILED |
( |
| name, |
|
|
| queue, |
|
|
| kernel, |
|
|
| ... ) |
Value: do { \
CL_FINISH(queue); \
{ \
TIME_PROFILE_SUBSCOPE(name); \
cl::Event __cl_event; \
queue.enqueueNDRangeKernel(kernel, __VA_ARGS__, nullptr, &__cl_event); \
__cl_event.wait(); \
cl_ulong __queued = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_QUEUED>(); \
cl_ulong __start = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_START>(); \
cl_ulong __end = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_END>(); \
CL_FINISH(queue); \
} \
} while (false)
◆ CL_FINISH
| #define CL_FINISH |
( |
| queue | ) |
|
◆ CL_PROFILE_BEGIN
| #define CL_PROFILE_BEGIN |
( |
| name, |
|
|
| queue ) |
Value: do { \
auto& __prfq = queue; \
CL_FINISH(__prfq); \
{ \
TIME_PROFILE_SUBSCOPE(name);
◆ CL_PROFILE_END
| #define CL_PROFILE_END |
( |
| ) |
|
Value: } \
CL_FINISH(__prfq); \
} \
while (false)
◆ CL_READ_PROFILED
| #define CL_READ_PROFILED |
( |
| name, |
|
|
| queue, |
|
|
| buffer, |
|
|
| ... ) |
Value: do { \
CL_FINISH(queue); \
{ \
TIME_PROFILE_SUBSCOPE(name); \
cl::Event __cl_event; \
queue.enqueueReadBuffer(buffer, __VA_ARGS__, nullptr, &__cl_event); \
__cl_event.wait(); \
cl_ulong __queued = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_QUEUED>(); \
cl_ulong __start = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_START>(); \
cl_ulong __end = __cl_event.getProfilingInfo<CL_PROFILING_COMMAND_END>(); \
CL_FINISH(queue); \
} \
} while (false)