Do frames actually work?

Do frames actually work?

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:

// one time

__itt_domain *example_domain = __itt_domain_create("Example domain");

example_domain->flags = 1;
// 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);
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?

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I have put updated example code in this thread 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 -versionIntel VTune Amplifier XE 2011 Update 8 (build 221625) Command Line ToolCopyright (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

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+.

Yes. The tool only does statistical sampling, no instrumenting on binary or source.

Leave a Comment

Please sign in to add a comment. Not a member? Join today