- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am very new to VTune.
I am trying to find hotspots of my application as guided by "getting started" tutorial. When I navigate to "Bottom-up" tab, I find only <my application>.exe is listed under Thread/Function/Call Stack and no list of subroutines/procedures taking the most CPU Time. When I double click on <my application>.exe, it says "Source/assembly code is not available". Am I missing something to configure my application for VTune? Appreciate your suggestions.
Thank you in advance.
Krishna
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The quick answer is that you have to build application with debug info. Add compiler options "/Zi", "/DEBUG" for windows, and add compiler option "-g" for Linux. Function name was .exe - it meant missing debug/symbol info your exe/pdb. Ensure that your symbol file / source files are locate the directory (or sub-directory) of executable, otherwise specify directories of your symbol file/source files in VTune's Project Properties on GUI.
In command line, use: (for example)
amplxe-cl -collect hotspots --search-dir all:rp=dir1,dir2,dir3 -result /tmp/myhotspots -- application
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you Peter Wang for your quick and useful suggestions. Actually I had previously added the compiler option as Fortran > General > Debug Information Format as Full(/debug:full), but was missing to change the Generate Debug Info to Yes(/DEBUG) at Linker > Debugging. Now, VTune is running fine for my application.
I have one more question. This is for the Fortran VTune sample example (nqueens_fortran). I am getting the longest Wait Time by Utilization (red: poor) for "Manual Reset Event 0xe8dbcd9e". What does this mean? Is there a way to resolve this issue?
Thank you.
Krishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you, Krishna. I am glad that the issue has been solved.
I think that you works on Locksandwait analysis. longest WaitTime (with red:poor) for event - it meant before that event has been reset, there is no work running in threads (cores), your program wait this event reset and nothing to do. Usually you can adjust algorithm to assign some works in other threads - it doesn't depend on this event. Or you can optimize your program in other ways, for example - scope of this event, etc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you very much for your explanation. I think this is the part where I need some time to think about optimization.
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