Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)

Use of task groups with ITT

Towie__Ewan
New Contributor I
1,698 Views

Hi there,

I have been adding some tasks to my code and I was trying to create sub-tasks that are within a parent task. I did a bit of searching on the web and I noticed that within the Intel Graphics Performance Analyzers the ITT APIs appear to offer such functionality. (https://software.intel.com/content/www/us/en/develop/documentation/gpa-user-guide-for-windows-host/top/instrumentation-and-tracing-technology-apis/itt-api-description/task-api.html).

I started looking through the header file for ITT I have in VTune (ittnotify.h), and I found references to 'overlapped' tasks, as well as '__itt_id_make' and '__itt_id_create' functions. I had a quick attempt at trying to make use of these, but as there is little documentation I struggled to make any head way.

Is it possible to create sub-tasks and assign them to parent task_ids, and is there any documentation or examples anywhere I can use to crib usage from?

Thanks,

Ewan

0 Kudos
7 Replies
Adweidh_Intel
Moderator
1,698 Views

Hi Towie,

Did you get a chance to look in to below documentation on ITT provided by vtune ? Also provide us what additional information is required. We are also checking with vtune team if any other documentation is available.

https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/api-support/instrumentation-and-tracing-technology-apis.html

0 Kudos
Towie__Ewan
New Contributor I
1,697 Views

Hi,

Yes, I've been using the VTune ITT documentation, and in particular the page on the Task API.

https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/api-support/instrumentation-and-tracing-technology-apis/instrumentation-and-tracing-technology-api-reference/task-api.html

On this Task API page we can see that '__itt_task_begin' takes parameters for 'taskid' and 'parentid', where 'parentid' is described as 'The parent instance to which this task belongs, or __itt_null'.

There is slightly more/different information on the GPA Task API page for ITT that also mentions methods for overlapped tasks, however it provides no example of ho to use them, or what to use them for.

Looking at 'ittnotify.h' provided in the VTune includes, there appears to be methods available to create '__itt_id' types, along with the overlapped methods discussed in the GPA manual. From my user perspective, it looks as though there is only a single generic ITT library shared amongst the Intel tools.

What I would like to be able to do is to define a parent task at a higher-level in my code, and then define child tasks for the blocks of code that are called underneath. The aim is to make visualisation of the profiling results in VTune much clearer by being able to group blocks of code with specific tasks.

I hope this description is clear!  If you have more questions then just ask.

Thanks

0 Kudos
Adweidh_Intel
Moderator
1,697 Views

Hi Towie,

Thanks for the detailed description. We will check with our experts and get back to you soon. We appreciate for your patience !!

0 Kudos
Adweidh_Intel
Moderator
1,697 Views

Hi Towie,

We are forwarding this case to our experts, will get back to you soon.

0 Kudos
Towie__Ewan
New Contributor I
1,689 Views
0 Kudos
DrAmarpal_K_Intel
1,250 Views

Hi Towie__Ewan,


Apologies for the long silence on this thread.


Intel Graphics Performance Analyzers have built-in mechanisms that support the functionality you are looking for. Since ITT doesn't natively support creation of sub-tasks in a parent task, you are unable to achieve the same through VTune.


Is there anything else I can help you with?


Best regards,

Amar



0 Kudos
DrAmarpal_K_Intel
1,221 Views

“This issue is considered to be resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only”.


0 Kudos
Reply