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

/Qipo- preferred?

TimP
Honored Contributor III
1,183 Views

I have been making a practice of setting -debug:inline-debug-info when building for Advisor.  Today I noticed a case where Advisor 17 update 2 misses a vectorized loop in a C function called from Fortran (with all the events linked to the C prolog).  This appears to be cured by building with /Qipo-.  I don't expect any benefit from ipo (as opposed to ip), so this is a satisfactory method, if only it can be remembered.  Qipo- appears to help with analysis of pure Fortran as well.

There are still some odd reports in Advisor summary, such as one which claims under-utilization of FMA but will not show me the assembly code so that I can see whether there is in fact a hot loop version without FMA.  It is source code set up so as to keep FMA off the critical reduction path for the benefit of gfortran.  The .asm file generated by ifort shows the expected pattern vmulpd vfmadd231pd vaddpd (for 2 steps of vectorized dot product), with riffling by 4, so it does accomplish my intent of reconciling some difference between ifort (typical riffle by 8) and gfortran (no riffle).

 

0 Kudos
3 Replies
James_T_Intel
Moderator
1,183 Views

Interesting.  I put together a simple program with Fortran calling C, and even with IPO disabled I can't get information from the C function.  I'll report this to engineering.

0 Kudos
James_T_Intel
Moderator
1,183 Views

How long does your code run?  Is it possible that the loop is being missed due to very little time in the loop?

0 Kudos
TimP
Honored Contributor III
1,183 Views

As mentioned above, the sampling interval has to be reduced on account of short run time.  Insufficient samples due to long sampling interval relative to run time are certainly likely to cause a function to be overlooked, possibly not repeatably.

The effect of attributing all events to the function preamble or caller has appeared in the past to be associated with interprocedural, including /Qip -debug without the :inline-debug-info  qualifier.  If you think it may appear also on account of insufficient samples,  I'll take notice of that opinion.

0 Kudos
Reply