Analyzers
Support for Analyzers (Intel VTune™ Profiler, Intel Advisor, Intel Inspector)
4580 Discussions

VTune: How is port utilization metric calculated

HarshVardhanKumar
New Contributor I
587 Views

For one of my applications, I'm looking at the assembly view for a function. There, the port utilization metric is shown critical - around 24.4%. However, when I expand the port utilization, it shows me five other metrics - Cycles of 0 ports utilized, Cycles of 1 ports utilized, Cycles of 2 ports utilized, Cycles of 3+ ports utilized and Vector Capacity Usage (FPU). The respective values of these metrics are 2.2%, 15.2%, 10.9%, 1.1% and 9.2%.

Even if I add these values, I'm getting more than 24.4%. Also, none of these metric values are flagged critical.

So what's happening here? How come the aggregate metric is critical, but the detailed metrics are not? Also, what sort of modifications can I do here? (I know the vector utilization is low, but the instruction is a cmp operation between rsi and rax)

Thanks,

Harsh

Labels (1)
0 Kudos
1 Solution
Dmitry_R_Intel1
Employee
559 Views

The port utilization metric basically shows fraction of cycles stalled due to core bound outside of divider. As I understand you don't have divisions in this code so all your core bound stalls are related to inefficient ports utilization. You should concentrate on metrics showing low ports usage - i.e. Cycles of 0 ports utilized, Cycles of 1 ports utilized and maybe Cycles of 2 ports.  The Cycles of 1 ports utilized is the biggest one in your case followed by Cycles of 2 ports utilized so most likely the problem is in dependencies between instructions causing low ILP. 

View solution in original post

5 Replies
Dmitry_R_Intel1
Employee
560 Views

The port utilization metric basically shows fraction of cycles stalled due to core bound outside of divider. As I understand you don't have divisions in this code so all your core bound stalls are related to inefficient ports utilization. You should concentrate on metrics showing low ports usage - i.e. Cycles of 0 ports utilized, Cycles of 1 ports utilized and maybe Cycles of 2 ports.  The Cycles of 1 ports utilized is the biggest one in your case followed by Cycles of 2 ports utilized so most likely the problem is in dependencies between instructions causing low ILP. 

AthiraM_Intel
Moderator
541 Views

Hi,


Thanks for accepting the solution provided by Dmitry. If you need any additional information, please submit a new question as this thread will no longer be monitored.


Thanks.


Bernard
Black Belt
525 Views

@HarshVardhanKumar 

 

If you would like to know the various metrics formulae, then you can find that information in the VTune installation directory.

The folder is usually named: YourVTuneInstallationFolder/config/metrics

 

P.s.

       The metrics alone can be useful and helpful for creation of various custom analysis.

Hope it helps

 

Bernard

HarshVardhanKumar
New Contributor I
509 Views

Thank Bernard for the comments. This helped.

Harsh

Bernard
Black Belt
503 Views
Reply