<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic The post-processing formulas in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153664#M78722</link>
    <description>&lt;P&gt;The post-processing formulas appear to be correct for cache mode (with the caveat about streaming stores).&amp;nbsp;&amp;nbsp; I don't have any machines running in Hybrid mode, so I have not looked at that configuration.&lt;/P&gt;

&lt;P&gt;I don't think I have tried "perf" for memory traffic on KNL -- the command lines get ridiculously long since you have to specify each event for each of the 6 DDR4 channels, and then you have to manually combine the results.&lt;/P&gt;</description>
    <pubDate>Wed, 14 Mar 2018 18:38:48 GMT</pubDate>
    <dc:creator>McCalpinJohn</dc:creator>
    <dc:date>2018-03-14T18:38:48Z</dc:date>
    <item>
      <title>Xeon Phi - Memory Bandwidth - Intel Caffe</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153661#M78719</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;

&lt;P&gt;I have been able to measure Xeon Phi memory bandwidth using STREAM.&lt;BR /&gt;
	&lt;BR /&gt;
	I wish to do same but using Intel Caffe. I can see following counters in "perf". Is it advisable to trust these? I am not sure why "ScaleUnit" is used.&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;    1 [
    2     {
    3         "BriefDescription": "ddr bandwidth read (CPU traffic only) (MB/sec). ",
    4         "Counter": "0,1,2,3",
    5         "EventCode": "0x03",
    6         "EventName": "UNC_M_CAS_COUNT.RD",
    7         "PerPkg": "1",
    8         "ScaleUnit": "6.4e-05MiB",
    9         "UMask": "0x01",
   10         "Unit": "imc"
   11     },
   12     {
   13         "BriefDescription": "ddr bandwidth write (CPU traffic only) (MB/sec). ",
   14         "Counter": "0,1,2,3",
   15         "EventCode": "0x03",
   16         "EventName": "UNC_M_CAS_COUNT.WR",
   17         "PerPkg": "1",
   18         "ScaleUnit": "6.4e-05MiB",
   19         "UMask": "0x02",
   20         "Unit": "imc"
   21     },
   22     {
   23         "BriefDescription": "mcdram bandwidth read (CPU traffic only) (MB/sec). ",
   24         "Counter": "0,1,2,3",
   25         "EventCode": "0x01",
   26         "EventName": "UNC_E_RPQ_INSERTS",
   27         "PerPkg": "1",
   28         "ScaleUnit": "6.4e-05MiB",
   29         "UMask": "0x01",
   30         "Unit": "edc_eclk"
   31     },
   32     {
   33         "BriefDescription": "mcdram bandwidth write (CPU traffic only) (MB/sec). ",
   34         "Counter": "0,1,2,3",
   35         "EventCode": "0x02",
   36         "EventName": "UNC_E_WPQ_INSERTS",
   37         "PerPkg": "1",
   38         "ScaleUnit": "6.4e-05MiB",
   39         "UMask": "0x01",
   40         "Unit": "edc_eclk"
   41     }
   42 ]
&lt;/PRE&gt;

&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 13 Mar 2018 18:56:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153661#M78719</guid>
      <dc:creator>CPati2</dc:creator>
      <dc:date>2018-03-13T18:56:19Z</dc:date>
    </item>
    <item>
      <title>The "ScaleUnit" value simply</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153662#M78720</link>
      <description>&lt;P&gt;The "ScaleUnit" value simply indicates that each increment of the counter corresponds to 64 Bytes.&amp;nbsp;&amp;nbsp; The units are incorrect in the example above-- 64 Bytes is 6.4e-05 MB, which is not the same as 6.4e-05 MiB -- but I don't know whether the actual usage matches this incorrect definition.&lt;/P&gt;

&lt;P&gt;The four events above appear to count correctly, but to make sense of the numbers requires some post-processing (and some additional events) if you are running in Cached mode.&amp;nbsp; This is described in Section 3.1 of Volume 2 the Xeon Phi Performance Monitoring Reference Manual (document 334480).&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Mar 2018 19:31:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153662#M78720</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2018-03-13T19:31:28Z</dc:date>
    </item>
    <item>
      <title>Hi John,</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153663#M78721</link>
      <description>&lt;P&gt;Hi John,&lt;/P&gt;

&lt;P&gt;The values I get from perf and from STREAM differ 5-10x (in GB/s), so I am trying to understand how to ensure what I get from "perf" is correct including any post processing.&lt;/P&gt;

&lt;P&gt;The post processing is only applicable to Cache mode and not Flat and Hybrid, if I am correct?&lt;/P&gt;

&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 13 Mar 2018 19:49:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153663#M78721</guid>
      <dc:creator>CPati2</dc:creator>
      <dc:date>2018-03-13T19:49:00Z</dc:date>
    </item>
    <item>
      <title>The post-processing formulas</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153664#M78722</link>
      <description>&lt;P&gt;The post-processing formulas appear to be correct for cache mode (with the caveat about streaming stores).&amp;nbsp;&amp;nbsp; I don't have any machines running in Hybrid mode, so I have not looked at that configuration.&lt;/P&gt;

&lt;P&gt;I don't think I have tried "perf" for memory traffic on KNL -- the command lines get ridiculously long since you have to specify each event for each of the 6 DDR4 channels, and then you have to manually combine the results.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Mar 2018 18:38:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153664#M78722</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2018-03-14T18:38:48Z</dc:date>
    </item>
    <item>
      <title>Hi John,</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153665#M78723</link>
      <description>&lt;P&gt;Hi John,&lt;/P&gt;

&lt;P&gt;I do have such data. Following is the total request across EDC and DDR. Will you be able to suggest how to get final bandwidth out of these?&lt;/P&gt;

&lt;P&gt;EDC (8):&amp;nbsp;51111276532&lt;BR /&gt;
	MC (6):&amp;nbsp;2175389216&lt;/P&gt;

&lt;P&gt;Above is for AlexNet running on Intel Caffe with 64 threads in A2A Flat Mode.&lt;/P&gt;

&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Mar 2018 21:19:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153665#M78723</guid>
      <dc:creator>CPati2</dc:creator>
      <dc:date>2018-03-14T21:19:52Z</dc:date>
    </item>
    <item>
      <title>The traffic is simply 64</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153666#M78724</link>
      <description>&lt;P&gt;The traffic is simply 64 Bytes times the corresponding counts.&amp;nbsp; To compute a bandwidth, you simply divide by elapsed time.&lt;/P&gt;</description>
      <pubDate>Thu, 15 Mar 2018 01:13:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153666#M78724</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2018-03-15T01:13:48Z</dc:date>
    </item>
    <item>
      <title>Hi John,</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153667#M78725</link>
      <description>&lt;P&gt;Hi John,&lt;/P&gt;

&lt;P&gt;Have you done Xeon Phi's memory bandwidth analysis for &lt;EM&gt;&lt;U&gt;&lt;STRONG&gt;non-STREAM&lt;/STRONG&gt;&lt;/U&gt;&lt;/EM&gt; benchmarks?&lt;/P&gt;

&lt;P&gt;My calculation for other benchmarks show 1/8th bandwidth utilization.&amp;nbsp;&lt;SPAN style="font-size: 1em;"&gt;Is this true for your analysis too?&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 20 Mar 2018 19:50:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153667#M78725</guid>
      <dc:creator>CPati2</dc:creator>
      <dc:date>2018-03-20T19:50:17Z</dc:date>
    </item>
    <item>
      <title>I don't use "perf" very often</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153668#M78726</link>
      <description>&lt;P&gt;I don't use "perf" very often because the implementation is undocumented and even the location of the source code that defines various events moves around from one kernel revision to the next.&amp;nbsp;&amp;nbsp; In some revisions of the kernel, "perf" does not understand that uncore counters have socket-level scope, so it reports the sum of the counts measured on all cores.&amp;nbsp; In newer revisions of the kernel, this particular problem is fixed, but it is certainly possible that other problems could have been introduced -- particularly on a processor like KNL that does not have an extremely wide user base (by Linux kernel writer standards).&lt;/P&gt;

&lt;P&gt;I have certainly tested the DDR and EDC counters on KNL with a variety of codes for which I can compute the expected memory traffic.&amp;nbsp; In "flat" mode, the counters look quite accurate, including reasonable levels of overcounting of streaming stores due to eviction of incompletely filled write-combining buffers.&amp;nbsp; In "cache" mode, I have done fewer tests, but the values look reasonable, and the formulae in Volume 2 of the KNL Performance Monitoring Reference Manual give reasonable matches to expected values for benchmarks that have a mix of MCDRAM hits and misses (provided that streaming stores are not used).&lt;/P&gt;</description>
      <pubDate>Wed, 21 Mar 2018 15:07:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153668#M78726</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2018-03-21T15:07:00Z</dc:date>
    </item>
    <item>
      <title>Hi John,</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153669#M78727</link>
      <description>&lt;P style="font-size: 13.008px;"&gt;Hi John,&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;For Hybrid bandwidth calculation doesn't change in terms of performance counters and is same as Flat mode (using EDC and MC for MCDRAM and DDR4 respectively? I don't think it should be that way, given 50% (or 25%) of MCDRAM changes to L3 in Hybrid mode.&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;For Cache mode (as you suggested above) the&lt;A href="https://community.intel.com/legacyfs/online/drupal_files/managed/6e/3d/Intel%C2%AE%20Xeon%20Phi%E2%84%A2%20Processor%20Performance%20Monitoring%20Reference%20Manual_Vol2_Mar2017.pdf"&gt;&amp;nbsp;Xeon Phi PMU document&lt;/A&gt;&amp;nbsp;emphasizes the need to log different counters for bandwidth calculation, not for Hybrid mode.&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;Can you please confirm if following "umask" conversion are correct for counters required for Cache mode bandwidth. I am getting very large values (&amp;gt; 1000 GB/sec) or negative values. Wondering if following masking is correct or not?&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;EDC0_MISS_CLEAN="-e uncore_edc_uclk_0/event=0x2,umask=0x4/"
EDC1_MISS_CLEAN="-e uncore_edc_uclk_1/event=0x2,umask=0x4/"
EDC2_MISS_CLEAN="-e uncore_edc_uclk_2/event=0x2,umask=0x4/"
EDC3_MISS_CLEAN="-e uncore_edc_uclk_3/event=0x2,umask=0x4/"
EDC4_MISS_CLEAN="-e uncore_edc_uclk_4/event=0x2,umask=0x4/"
EDC5_MISS_CLEAN="-e uncore_edc_uclk_5/event=0x2,umask=0x4/"
EDC6_MISS_CLEAN="-e uncore_edc_uclk_6/event=0x2,umask=0x4/"
EDC7_MISS_CLEAN="-e uncore_edc_uclk_7/event=0x2,umask=0x4/"

EDC0_MISS_DIRTY="-e uncore_edc_uclk_0/event=0x2,umask=0x8/"
EDC1_MISS_DIRTY="-e uncore_edc_uclk_1/event=0x2,umask=0x8/"
EDC2_MISS_DIRTY="-e uncore_edc_uclk_2/event=0x2,umask=0x8/"
EDC3_MISS_DIRTY="-e uncore_edc_uclk_3/event=0x2,umask=0x8/"
EDC4_MISS_DIRTY="-e uncore_edc_uclk_4/event=0x2,umask=0x8/"
EDC5_MISS_DIRTY="-e uncore_edc_uclk_5/event=0x2,umask=0x8/"
EDC6_MISS_DIRTY="-e uncore_edc_uclk_6/event=0x2,umask=0x8/"
EDC7_MISS_DIRTY="-e uncore_edc_uclk_7/event=0x2,umask=0x8/"&lt;/PRE&gt;

&lt;P style="font-size: 13.008px;"&gt;Following is the snapshot from PMU documentation:&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitled.png"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/9865i3CF64EA632E7CB12/image-size/large?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;

&lt;P style="font-size: 13.008px;"&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Sat, 24 Mar 2018 03:41:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153669#M78727</guid>
      <dc:creator>CPati2</dc:creator>
      <dc:date>2018-03-24T03:41:31Z</dc:date>
    </item>
    <item>
      <title>Section 3.1 of Volume 2 of</title>
      <link>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153670#M78728</link>
      <description>&lt;P&gt;Section 3.1 of Volume 2 of the KNL Performance Monitoring Guide uses some very confusing syntax, and adds to the confusion by listing seven events, but only using five of them....&lt;/P&gt;

&lt;P&gt;It has been a while since I looked at this, but I think the formulas in the guide are correct.&amp;nbsp; For reads, MCDRAM is accessed on all L2 misses, but you only want to count the accesses that are hits.&amp;nbsp; Intel's recommended formula is all accesses (RPQ.INSERTS) less the clean misses and the dirty misses.&amp;nbsp; The Event and Umask values defined above look correct. (Event 0x02, Umask 0x04 and Event 0x02, Umask 0x08).&lt;/P&gt;

&lt;P&gt;It is not clear to me that it is possible to make sense of the results in Hybrid mode, since you don't know which of the RPQ.INSERTS are related to accessing MCDRAM as cache and which are related to accessing MCDRAM as memory.&lt;/P&gt;</description>
      <pubDate>Mon, 26 Mar 2018 13:03:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Xeon-Phi-Memory-Bandwidth-Intel-Caffe/m-p/1153670#M78728</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2018-03-26T13:03:32Z</dc:date>
    </item>
  </channel>
</rss>

