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

Can vTune show function names for IPP functions?

Niki_E_
Beginner
769 Views

My application is using many IPP (Intel Performance Primitives) functions. When I profile it with vTune, I can see how much time IPP functions use, but I can't see the names of the IPP functions. Instead, I see function names like func@0x18107b040:

Function / Call Stack    Effective Time by Utilization    Spin Time    Overhead Time    Module    Function (Full)    Source File    Start Address
func@0x18107b040    2.1%    0s    0s    ippie9-8.2.dll    func@0x18107b040        0x18107b040
func@0x180c81da6    2.0%    0s    0s    ippie9-8.2.dll    func@0x180c81da6        0x180c81da6

It would be very useful to know the name of the IPP function, e.g. ippiSet_8u_C1R instead. Is this possible?

I'm using IPP 8.2, vTune 2015, in a 64bit mixed managed/native application

0 Kudos
11 Replies
Peter_W_Intel
Employee
769 Views

You need to check linked IPP libraris or called DLLs, if they provide debugging information. I suppose that most of release products have no debugging information:-(

You can raise your questions to this forum

0 Kudos
TimP
Honored Contributor III
769 Views

Did you try adding the directories containing the libraries you linked to the VTune binary search path?  You needn't repeat data collection after such changes, only re-resolve.

0 Kudos
Peter_W_Intel
Employee
769 Views

What Tim meant - use "amplxe-cl -finalize -search-dir=Lib-Dir -r result-dir". But PDBs in Lib-Dir still are required, so VTune Amplifier can relocate performance data on associated functions. 

0 Kudos
Dmitry_P_Intel1
Employee
769 Views

Hello Niki,

VTune can resolve export functions of a .dll. But internal fucntions of a library, that are not exported, require .pdb files that we hardly can have for ipp.

If you do a collection with stacks you will be able to see performance statistics aggregated to an export ipp functon that is called from user's code and have resolved name and probably it will be more valuable. 

Thanks & Regards, Dmitry

0 Kudos
Niki_E_
Beginner
769 Views

Hello Dimitry,

I'm not sure I understood your response: You're saying that in a basic hotspot collection (with stacks) I should see an ipp function name somewhere in the call stack, right?
Then it's not working. I see call stacks like this:

ippie9-8.2.dll!func@0x181153a20 - [Unknown]
ippie9-8.2.dll!func@0x180f38e60+0x2f3 - [Unknown]:[Unknown]
ippie9-8.2.dll!func@0x180158180+0x17d5 - [Unknown]:[Unknown]
ippie9-8.2.dll!func@0x180158160+0x19 - [Unknown]:[Unknown]
Inspections.dll!GradientReconstructionFilter::Filter+0x74a - gradientreconstructionfilter.cpp:86

The last line is a function in my module. The locations above are all in ipp dlls, none of them have a name. It's the same for every function.

(Small rant: Intel sells IPP and vTune in the same package. You should really include IPP PDB files if vTune needs PDB files, then...)

0 Kudos
Dmitry_P_Intel1
Employee
769 Views

Hello Niki,

I see your point.

Could you please let know what function call you have in your source - gradientreconstructionfilter.cpp line 86? Probably it will give us a clue why it was not resolved through export functions.

Thank & Regards, Dmitry

0 Kudos
Niki_E_
Beginner
769 Views

Hi Dimitry,

Sure, here's GradientReconstructionFilter.cpp line 86:

   CHECK_IPP_CALL(ippiFFTInv_PackToR_32f_C1IR(picFft32f.GetPixels(), picFft32f.GetStep(), m_FFT32f, buffer));

(CHECK_IPP_CALL is a macro to check the returned IppStatus.)

Could this be because I'm profiling a mixed managed/native application?

0 Kudos
Peter_W_Intel
Employee
769 Views

CHECK_IPP_CALL is a macro to check the returned IppStatus.

A macro function cannot be displayed in call stack. If you don't have pdb files for symbol info, as Dmitry said, exported dlls still can be viewed in call stack, but you need to check if your interest of functions are exported.

Use: dumpbin /exports dll-file

0 Kudos
Bernard
Valued Contributor I
769 Views

I think that you can see in posted screeshot substituted macro with call to ippiFFTInv_PackToR_32f_C1IR() and subsequent called functions.

 

 

0 Kudos
Niki_E_
Beginner
769 Views

iliyapolak wrote:

I think that you can see in posted screeshot substituted macro with call to ippiFFTInv_PackToR_32f_C1IR() and subsequent called functions.

I'm not sure - what screenshot are you talking about? I can see the function name in the code, obviously, but I'd like to see it in the call stack in vTune.

0 Kudos
Bernard
Valued Contributor I
769 Views

I was talking about post #6 screenshot.

0 Kudos
Reply