- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to profile particular segments of my code to analyze latency on one code path. I have seen this article which describes the use of User APIs to do something like this.
I am linking against libittnotify.a and using #include "ittnotify.h" and have no problems compiling and linking code very much like the sample code in that article:
[cpp]// one time
__itt_domain *example_domain = __itt_domain_create("Example domain");
example_domain->flags = 1;[/cpp]
[cpp]// in event handler, each time it is called:
__itt_frame_begin_v3(example_domain, NULL);
// code whose latency problems I want to analyze
__itt_frame_end_v3(example_domain, NULL);[/cpp]
I then run my executable using amplxe-cl -collect hotspots, exercising this code path many times. However, when I launch the VTune Amplifier XE 2011 GUI (build 206420)to look at the results, if I try to change the Grouping to one of the Frame ones, it only shows "No data to show. No date is available." which is not what I would expect based on that article.
Do frames not work on Linux? Is there something wrong with the way I setup my code? Should I be using a different version to get this to work?
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have put updated example code in this thread http://software.intel.com/en-us/forums/showthread.php?t=86353for latest tool's update, but I only tested it on Windows.
It seems that example code can work on Linux, also. No code change is required, use -
#icc -g matrix.c -I/opt/intel/vtune_amplifier_xe_2011/include /opt/intel/vtune_amplifier_xe_2011/lib64/libittnotify.a -lpthread -o matrix
# amplxe-cl -version
Intel VTune Amplifier XE 2011 Update 8 (build 221625) Command Line Tool
Copyright (C) 2009-2012 Intel Corporation. All rights reserved.
# amplxe-cl -collect hotspots -- ./matrix
You can use amplxe-gui to check report, and select Grouping "Frame Domain / Frame / Call Stack" to see expected result.

Regards, Peter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, I'm not sure what exactly was going wrong but I retried from the ground up and it works now. However, one problem I have is that my typical frame time is substantially smaller than the sampling interval, which will remain true even if I reduce the sampling interval within reasonable bounds. I am trying to analyze scenarios where instead of my processing time being, e.g., 20us it jumps to 300us.
Is there a way to do instrumenting/tracing profiling in VTune, or does it only do statistical/sampling profiling?Does Intel have an instrumenting/tracing profiler that works on recent versions of Linux? The PTU tools don't seem to support Linux 3.0+.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes. The tool only does statistical sampling, no instrumenting on binary or source.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page