Package Average Bandwidth

Package Average Bandwidth

In VTune General Exploration what does "average bandwidth per package" means? Is it the average of data transferred from memory to the socket per second, right? Can I split how much was due instructions and how much was due "data"?

Furthermore, I could not find what these events means:

UNC_IMC_GT_REQUESTS                          

UNC_IMC_IA_REQUESTS                   

UNC_IMC_IO_REQUESTS                   

UNC_IMC_DATA_READS                   

UNC_IMC_DATA_WRITES                    

Apreciate any help!

8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

General Exploration with memory bandwidth monitors additional analysis of memory access. You can view Package Bandwidth in bottom of the report. It provides read/write data transaction from memory to the socket.

If you need to know more detail, please use bandwidth analysis, which provides more detail data such as Read or Write bandwidth data on eachj package in report, and you change "Grouping" to "Package /H/W Context /Function/ Call Stack" to know performance data on each core. Also, you can view data on "Core /Thread/ Function / Call Stack" by changing "Grouping" if you like.

There is bandwidth data categorized by Instruction and Data. You might evaluate the events such as I-Cache misses, ITLB overhead, front-end bandwidth - they are under "Front-end Bound" if you use General Exploration. You may estimate memory access for Instruction fetching...but I think that it impacts on memory bandwidth lightly.

BTW, UNC_* counting events are not supported in recent VTune, only limited uncore events are supported, for example OFFCORE_* events. 

 

>>>In VTune General Exploration what does "average bandwidth per package" means>>>

I think that this is average bandwidth per socket. Here package is collection of physical cores.

Hello Peter and Illyapolak, thanks for commenting!

Peter, as a matter of fact, I'm using VTune 2013 Update 16 on a Ivy Bridge machine and the General Exploration report shows several UNC_* events, like this:

Uncore Event summary
--------------------
Hardware Event Type  Hardware Event Count:Self
-------------------  -------------------------
UNC_IMC_GT_REQUESTS                          0
UNC_IMC_IA_REQUESTS                   47986891
UNC_IMC_IO_REQUESTS                 2547606759
UNC_IMC_DATA_READS                  2570678543
UNC_IMC_DATA_WRITES                   26949530

Divino C

It's so surprised to me! I am using latest U17 and tried on IvyBridge machine.

$ amplxe-cl -version
Intel(R) VTune(TM) Amplifier XE 2013 (build 350583) Command Line Tool
Copyright (C) 2009-2014 Intel Corporation. All rights reserved.

 

$ amplxe-runss -event-list | grep UNC ; there is no UNC_* events supported (listed) on IvyBridge

Also, if try general-exploration with bandwidth on GUI, in bottom-up report - see "Hardware Event Count" items from combo-box at right-bottom in report. Only OFFCORE_* events are used.

 

 

 

>>>Furthermore, I could not find what these events means:

UNC_IMC_GT_REQUESTS                          

 

UNC_IMC_IA_REQUESTS                   

 

UNC_IMC_IO_REQUESTS                   

 

UNC_IMC_DATA_READS                   

 

UNC_IMC_DATA_WRITES                    

Apreciate any help!>>>

I think that "UNC" stands for "UnCore" and "IMC" stands for "Internal Memory Controller".

@ iliyapolak

Thanks for your verification.

UNC means uncore and IMC means internal memory controller. They are hard to be captured from the core, but OFFCORE_* events can be used in VTune from one core to get RESPONSE from other cores.

@Peter

You are welcome.

Leave a Comment

Please sign in to add a comment. Not a member? Join today