Use PMU tools to interactively monitor memory bandwidth

I learned to use PMU tools here to monitor the memory bandwidth on each channel of each socket. It was a great way of monitoring the read and write memory bandwidth of your application in real time.

To begin with, I really like to use TMUX (pleas a previous short post on how to use TMUX’s basic functions) to split the session. So that you can run your application on one session and monitor tools on the other session. This is one of the many tricks my cool officemate/mentor Vladimir taught me.

https://github.com/andikleen/pmu-tools

Specifically, I used

/pmu-tools/ucevent/ucevent.py   (encore events), and the relevant events are

iMC.MEM_BW_READS
iMC.MEM_BW_TOTAL
iMC.MEM_BW_WRITES

To understand what the events are doing, please see a previous post on uncore events, which details what these counters correspond to in Intel’s manual.

you can use -scale GB/MB to switch between different scales.

An example command would be the following

python pathToPMU/pmu-tools/ucevent/ucevent.py iMC.MEM_BW_READS –scale GB

I have previously wrote a post on how to use perf to measure memory bandwidth

https://yunmingzhang.wordpress.com/2015/07/22/measure-memory-bandwidth-using-uncore-counters/

Hope this helps!

Advertisements
This entry was posted in Tools and tagged . Bookmark the permalink.

One Response to Use PMU tools to interactively monitor memory bandwidth

  1. Pingback: Notes on Perf | Yunming Zhang's Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s