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

VTune: How is port utilization metric calculated

HarshVardhanKumar
New Contributor I
1,825 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
1,797 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

0 Kudos
5 Replies
Dmitry_R_Intel1
Employee
1,798 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. 

0 Kudos
AthiraM_Intel
Moderator
1,779 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.


0 Kudos
Bernard
Valued Contributor I
1,763 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
1,747 Views

Thank Bernard for the comments. This helped.

Harsh

0 Kudos
Bernard
Valued Contributor I
1,741 Views
0 Kudos
Reply