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

ITT API and User Tasks

Ulrich_W_
Beginner
591 Views

Hello,

while writing a simple test to figure out how to add user tasks and such I stumbled upon the following questions:

1. Which ITT functions are actually supported by VTune? Things I have found to work are tasks, domains, ids, string handles. Things that do not work for me are e.g. __itt_task_group, __itt_marker, __itt_metadata_add, __itt_relation_add . I digged a bit through the .trace files generated by VTune and all the calls I make to functions like _itt_task_group actually end up in the collected data, but they do not appear anywhere in the GUI. Also stuff like feeding the parent id to a task does not seem to make any difference. Relevant links that I found: 

  - Task Groups: https://software.intel.com/sites/products/documentation/gpa/13.4/win/Task_Groups_Overview.htm

  - Markers: http://gpa.helpmax.net/en/intel-graphics-performance-analyzers-help/intel-itt-api-programmers-guide/api-reference/named-entities-and-instances/markers/markers-overview/  

  - Tracks and track groups: http://gpa.helpmax.net/en/intel-graphics-performance-analyzers-help/intel-itt-api-programmers-guide/api-reference/custom-tracks-and-track-groups/custom_tracks-and-track-groups-overview/

2. Is there really no way to add any data to a task besides putting all the information into the task name? Is there a way to group tasks just like task groups promise to do?

3. What's the difference between events (e.g. see https://software.intel.com/zh-cn/blogs/2011/03/24/400006948 ) and tasks (e.g. https://software.intel.com/en-us/articles/a-simplest-example-to-use-task-apis-in-your-code )? They seem to be pretty much the same.

4. Is there a way to export the custom data collected with VTune so that I can analyze it with some script later on? Of course I can just export myself, but it would be nice to have a coherent system.

Thank you,

-Matthias

0 Kudos
2 Replies
Peter_W_Intel
Employee
591 Views

Hello Matthias,

Event API helps you to observe the event occurring/finishing in your application, and know when and where. The developer can select the region then use "Zoom-in and Filter by selection" to focus new area with performance data. User Task API  is more powerful to establish a logic group to mark any executing in your program, AND mark any region if you pay attention in sub-tasks.

I wrote two articles (you mentioned) about using Event API & Task API, several years ago. Now, I write a new example (attachment, for VS2013 .sln) for using these APIs, you can compare them in VTune Amplifier's result.

Region is marked in timeline panel of bottom-up report

task-event1.png

Platform view display all customized info of Event/Task (your annotation code)

task-event2.png

Regards, Peter

0 Kudos
Peter_W_Intel
Employee
591 Views

Matthias, you are welcome! Thanks for your using ITT Task API in your project.
 

0 Kudos
Reply