ITT profiling utilities

Overview

Configurable macro wrappers for ITT profiling. More…

// namespaces

namespace openvino;
    namespace openvino::cc;
        namespace openvino::cc::internal;
    namespace openvino::itt;

// typedefs

typedef struct openvino::itt::domain_ \* openvino::itt::domain_t;
typedef struct openvino::itt::handle_ \* openvino::itt::handle_t;

// classes

template <domain_t(\*)() domain>
class openvino::itt::ScopedTask;
template <domain_t(\*)() domain>
class openvino::itt::TaskChain;

// global functions

void openvino::itt::threadName(const char \* name);
handle_t openvino::itt::handle(char const \* name);

// macros

#define OV_ITT_DOMAIN(...)
#define OV_ITT_SCOPE(group, ...)
#define OV_ITT_SCOPED_TASK(...)
#define OV_ITT_SCOPE_NEXT(group, ...)
#define OV_ITT_SCOPE_SKIP(group, chainId)
#define OV_ITT_TASK_CHAIN(...)
#define OV_ITT_TASK_NEXT(...)
#define OV_ITT_TASK_SKIP(chainId)

Detailed Documentation

Configurable macro wrappers for ITT profiling.

Typedefs

typedef struct openvino::itt::domain_ \* openvino::itt::domain_t

A domain type which enables tagging trace data for different modules or libraries in a program.

typedef struct openvino::itt::handle_ \* openvino::itt::handle_t

Annotation handle for section of code which would be named at runtime.

Global Functions

void openvino::itt::threadName(const char \* name)

Set thread name using a char string.

Parameters:

name

[in] The thread name

handle_t openvino::itt::handle(char const \* name)

Create annotation handle with a given name.

If template function is instantiated with a tag, the handle is created as a singleton.

Parameters:

name

[in] The annotation name

Macros

#define OV_ITT_DOMAIN(...)

Declare domain with a given name.

Parameters:

domainName

[in] Known at compile time name of module or library (the domain name).

domainDisplayName

[in] Domain name used as the ITT counter name and displayed in Intel VTune. Parameter is optional.

#define OV_ITT_SCOPE(group, ...)

Annotate section of code till scope exit to be profiled using known handle or taskName as section id.

In case if handle or taskName absent, the current function name is used.

Parameters:

group

[in] ITT counter group name used for enabling/disabling at compile time.

domainName

[in] Known at compile time name of module or library (the domain name).

handleOrTaskName

[in] The annotation name or handle for section of code. Parameter is optional.

#define OV_ITT_SCOPED_TASK(...)

Annotate section of code till scope exit to be profiled using known handle or taskName as section id.

In case if handle or taskName absent, the current function name is used.

Parameters:

domainName

[in] Known at compile time name of module or library (the domain name).

handleOrTaskName

[in] The annotation name or handle for section of code. Parameter is optional.

#define OV_ITT_SCOPE_NEXT(group, ...)

Inserts new annotated section of code to tasks chain using taskName as section id.

If taskName is missing, the current chain index is used.

Parameters:

group

[in] ITT counter group name used for enabling/disabling at compile time.

chainId

[in] The tasks chain identifier.

taskOrTaskName

[in] The annotation name or handle for section of code. Parameter is optional.

#define OV_ITT_SCOPE_SKIP(group, chainId)

Skips the remaining task scope.

Parameters:

group

[in] ITT counter group name used for enabling/disabling at compile time.

chainId

[in] The tasks chain identifier.

#define OV_ITT_TASK_CHAIN(...)

Begins the sequrence of an annotated sections of code using prefix and taskName as section id.

In case if prefix absent, the current function name is used, if taskName absent, the first chain index is used, i.e 1. In case if prefix absent, the current function name is used, if taskName absent, the first chain index is used, i.e 1.

Parameters:

group

[in] ITT counter group name used for enabling/disabling at compile time.

chainId

[in] The tasks chain identifier.

domainName

[in] Known at compile time name of module or library (the domain name).

prefix

[in] The task chain name prefix. The task name starts with this prefix. Parameter is optional.

taskName

[in] The annotation name for section of code. Parameter is optional.

chainId

[in] The tasks chain identifier.

domainName

[in] Known at compile time name of module or library (the domain name).

prefix

[in] The task chain name prefix. The task name starts with this prefix. Parameter is optional.

taskName

[in] The annotation name for section of code. Parameter is optional.

#define OV_ITT_TASK_NEXT(...)

Inserts new annotated section of code to tasks chain using taskName as section id.

If taskName is missing, the current chain index is used.

Parameters:

chainId

[in] The tasks chain identifier.

taskOrTaskName

[in] The annotation name or handle for section of code. Parameter is optional.

#define OV_ITT_TASK_SKIP(chainId)

Skips the remaining task scope.

Parameters:

chainId

[in] The tasks chain identifier.