Analyzers
Support for Analyzers (Intel VTune™ Profiler, Intel Advisor, Intel Inspector)
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
4658 Discussions

VTune: How is port utilization metric calculated

HarshVardhanKumar
New Contributor I
675 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
647 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
648 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
629 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
613 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
597 Views

Thank Bernard for the comments. This helped.

Harsh

Bernard
Black Belt
591 Views
Reply