<?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 Digged a bit into this in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951409#M19690</link>
    <description>&lt;P&gt;Digged a bit into this problem and found the code within an official tutorial&amp;nbsp;&lt;A href="http://software.intel.com/en-us/articles/how-to-achieve-peak-transfer-rate"&gt;http://software.intel.com/en-us/articles/how-to-achieve-peak-transfer-rate&lt;/A&gt;, the same problem exists, 2 results:&lt;/P&gt;
&lt;P&gt;1.&lt;/P&gt;
&lt;P&gt;Bandwidth test. Buffer alignment: 4096. DeviceID: 0. Number of iterations: 20.&lt;/P&gt;
&lt;P&gt;Size(KB) Send(GB/sec) Receive(GB/sec)&lt;BR /&gt; 4 0.654 0.714&lt;BR /&gt; 8 0.758 0.763&lt;BR /&gt; 16 1.268 1.407&lt;BR /&gt; 32 2.097 2.274&lt;BR /&gt; 64 3.369 3.610&lt;BR /&gt; 128 4.379 4.745&lt;BR /&gt; 256 5.256 5.580&lt;BR /&gt; 512 5.967 6.103&lt;BR /&gt; 1024 6.300 5.687&lt;BR /&gt; 2048 6.258 4.218&lt;BR /&gt; 4096 6.501 3.128&lt;BR /&gt; 8192 6.197 2.643&lt;BR /&gt; 16384 6.495 3.396&lt;BR /&gt; 32768 6.603 3.406&lt;BR /&gt; 65536 6.661 3.380&lt;BR /&gt; 131072 6.689 3.342&lt;BR /&gt; 262144 6.704 3.330&lt;BR /&gt; 524288 6.631 3.121&lt;/P&gt;
&lt;P&gt;2.&lt;/P&gt;
&lt;P&gt;Bandwidth test. Buffer alignment: 4096. DeviceID: 0. Number of iterations: 20.&lt;/P&gt;
&lt;P&gt;Size(KB) Send(GB/sec) Receive(GB/sec)&lt;BR /&gt; 4 0.776 0.936&lt;BR /&gt; 8 0.967 1.027&lt;BR /&gt; 16 1.562 1.785&lt;BR /&gt; 32 2.533 2.716&lt;BR /&gt; 64 3.491 3.872&lt;BR /&gt; 128 4.671 5.053&lt;BR /&gt; 256 5.758 6.058&lt;BR /&gt; 512 6.194 6.405&lt;BR /&gt; 1024 6.436 6.708&lt;BR /&gt; 2048 6.313 6.548&lt;BR /&gt; 4096 6.519 6.739&lt;BR /&gt; 8192 6.304 6.466&lt;BR /&gt; 16384 6.426 6.550&lt;BR /&gt; 32768 6.572 6.692&lt;BR /&gt; 65536 6.660 6.781&lt;BR /&gt; 131072 6.692 6.794&lt;BR /&gt; 262144 6.722 6.845&lt;BR /&gt; 524288 6.628 6.794&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Could anyone help?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Kevin&lt;/P&gt;</description>
    <pubDate>Fri, 19 Jul 2013 13:19:39 GMT</pubDate>
    <dc:creator>Kevin_S_3</dc:creator>
    <dc:date>2013-07-19T13:19:39Z</dc:date>
    <item>
      <title>Measuring data transferring bandwidth</title>
      <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951408#M19689</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;recently I modified a piece of code from the new Xeon Phi book to measure the data transferring bandwidth from MIC to host via PCIe, sometimes the program measured bandwidth as ~7 GB/sec, and sometimes the result dropped down to ~3GB/sec, very unstable and unreliable. I would assume there must be some errors in my understandings and my code. I did search the forum but did not find any similar problems, I would really appreciate with any help and attached my code here. Thanks in advance.&lt;/P&gt;
&lt;P&gt;Kevin&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jul 2013 15:28:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951408#M19689</guid>
      <dc:creator>Kevin_S_3</dc:creator>
      <dc:date>2013-07-16T15:28:31Z</dc:date>
    </item>
    <item>
      <title>Digged a bit into this</title>
      <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951409#M19690</link>
      <description>&lt;P&gt;Digged a bit into this problem and found the code within an official tutorial&amp;nbsp;&lt;A href="http://software.intel.com/en-us/articles/how-to-achieve-peak-transfer-rate"&gt;http://software.intel.com/en-us/articles/how-to-achieve-peak-transfer-rate&lt;/A&gt;, the same problem exists, 2 results:&lt;/P&gt;
&lt;P&gt;1.&lt;/P&gt;
&lt;P&gt;Bandwidth test. Buffer alignment: 4096. DeviceID: 0. Number of iterations: 20.&lt;/P&gt;
&lt;P&gt;Size(KB) Send(GB/sec) Receive(GB/sec)&lt;BR /&gt; 4 0.654 0.714&lt;BR /&gt; 8 0.758 0.763&lt;BR /&gt; 16 1.268 1.407&lt;BR /&gt; 32 2.097 2.274&lt;BR /&gt; 64 3.369 3.610&lt;BR /&gt; 128 4.379 4.745&lt;BR /&gt; 256 5.256 5.580&lt;BR /&gt; 512 5.967 6.103&lt;BR /&gt; 1024 6.300 5.687&lt;BR /&gt; 2048 6.258 4.218&lt;BR /&gt; 4096 6.501 3.128&lt;BR /&gt; 8192 6.197 2.643&lt;BR /&gt; 16384 6.495 3.396&lt;BR /&gt; 32768 6.603 3.406&lt;BR /&gt; 65536 6.661 3.380&lt;BR /&gt; 131072 6.689 3.342&lt;BR /&gt; 262144 6.704 3.330&lt;BR /&gt; 524288 6.631 3.121&lt;/P&gt;
&lt;P&gt;2.&lt;/P&gt;
&lt;P&gt;Bandwidth test. Buffer alignment: 4096. DeviceID: 0. Number of iterations: 20.&lt;/P&gt;
&lt;P&gt;Size(KB) Send(GB/sec) Receive(GB/sec)&lt;BR /&gt; 4 0.776 0.936&lt;BR /&gt; 8 0.967 1.027&lt;BR /&gt; 16 1.562 1.785&lt;BR /&gt; 32 2.533 2.716&lt;BR /&gt; 64 3.491 3.872&lt;BR /&gt; 128 4.671 5.053&lt;BR /&gt; 256 5.758 6.058&lt;BR /&gt; 512 6.194 6.405&lt;BR /&gt; 1024 6.436 6.708&lt;BR /&gt; 2048 6.313 6.548&lt;BR /&gt; 4096 6.519 6.739&lt;BR /&gt; 8192 6.304 6.466&lt;BR /&gt; 16384 6.426 6.550&lt;BR /&gt; 32768 6.572 6.692&lt;BR /&gt; 65536 6.660 6.781&lt;BR /&gt; 131072 6.692 6.794&lt;BR /&gt; 262144 6.722 6.845&lt;BR /&gt; 524288 6.628 6.794&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Could anyone help?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Kevin&lt;/P&gt;</description>
      <pubDate>Fri, 19 Jul 2013 13:19:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951409#M19690</guid>
      <dc:creator>Kevin_S_3</dc:creator>
      <dc:date>2013-07-19T13:19:39Z</dc:date>
    </item>
    <item>
      <title>If your host system has</title>
      <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951410#M19691</link>
      <description>&lt;P&gt;If your host system has multiple sockets and on-chip PCIe, then I would expect to see a difference between accesses to memory on the same chip that the Xeon Phi is attached to and accesses to memory on the other chip.&amp;nbsp; Under Linux, numactl can control both memory and thread binding to see the impact of this factor.&lt;/P&gt;</description>
      <pubDate>Fri, 19 Jul 2013 20:27:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951410#M19691</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2013-07-19T20:27:38Z</dc:date>
    </item>
    <item>
      <title>Quote:John D. McCalpin wrote:</title>
      <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951411#M19692</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;John D. McCalpin wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;If your host system has multiple sockets and on-chip PCIe, then I would expect to see a difference between accesses to memory on the same chip that the Xeon Phi is attached to and accesses to memory on the other chip.&amp;nbsp; Under Linux, numactl can control both memory and thread binding to see the impact of this factor.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Hi Dr. Bandwidth,&lt;/P&gt;
&lt;P&gt;thanks for your reply, I only have one socket Xeon Phi which is installed inside the host system, so every execution is running on the exactly same card. I am really confused with this, do you have any idea how this could be happened?&lt;/P&gt;
&lt;P&gt;Best,&lt;/P&gt;
&lt;P&gt;Kevin&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jul 2013 07:19:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951411#M19692</guid>
      <dc:creator>Kevin_S_3</dc:creator>
      <dc:date>2013-07-22T07:19:23Z</dc:date>
    </item>
    <item>
      <title>We had a system with an Intel</title>
      <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951412#M19693</link>
      <description>&lt;P&gt;We had a system with an Intel motherboard with similarly fluctuating bandwidth. Our solution was to go into BIOS and change the Extended ACR setting from 0x03 to 0x01.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jul 2013 14:23:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951412#M19693</guid>
      <dc:creator>Andrey_Vladimirov</dc:creator>
      <dc:date>2013-07-22T14:23:55Z</dc:date>
    </item>
    <item>
      <title>Quote:Andrey Vladimirov wrote</title>
      <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951413#M19694</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Andrey Vladimirov wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;We had a system with an Intel motherboard with similarly fluctuating bandwidth. Our solution was to go into BIOS and change the Extended ACR setting from 0x03 to 0x01.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Hi Andrey,&lt;/P&gt;
&lt;P&gt;Thanks for your answer and solution, I checked the BIOS settings thoroughly but did not get exactly the same setting like yours, could you please explain about the setting "Extended ACR" a bit so that I could maybe find a similar one? I did search the internet but I only know maybe ACR is short for Advanced Communications Riser. :(&lt;/P&gt;
&lt;P&gt;I have also toggled and tested some PCIe settings in BIOS, but none of them really did the trick.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Kevin&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jul 2013 10:18:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951413#M19694</guid>
      <dc:creator>Kevin_S_3</dc:creator>
      <dc:date>2013-07-23T10:18:36Z</dc:date>
    </item>
    <item>
      <title>My apologies, Kevin, the</title>
      <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951414#M19695</link>
      <description>&lt;P&gt;My apologies, Kevin, the correct name is "Extended ATR". It stands for "Aging Timer Rollover" (page 93 in&amp;nbsp;http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e5-family-spec-update.pdf&amp;nbsp;). I believe it is a timeout before some power saving function is triggered. The setting is in the "Advanced" tab in the BIOS.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jul 2013 15:25:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951414#M19695</guid>
      <dc:creator>Andrey_Vladimirov</dc:creator>
      <dc:date>2013-07-23T15:25:24Z</dc:date>
    </item>
    <item>
      <title>Andrey Vladimirov's note</title>
      <link>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951415#M19696</link>
      <description>&lt;P&gt;Andrey Vladimirov's note brings up another possible issue.&amp;nbsp; If the Xeon Phi is using interrupts to signal the host before or after DMA transfers, a host processor in a deep C-state might respond slowly and result in an overall performance degradation.&amp;nbsp; This could vary from run to run depending on which host processor was interrupted and how long it had been idle.&lt;/P&gt;
&lt;P&gt;On the Xeon Phi systems at TACC, the loadable kernel module that provides the driver for the Xeon Phi coprocessors sets the maximum C-state allowed on the host to C1.&amp;nbsp; On the Xeon E5-2670 host processors, the C1 state has an interrupt response time of 3 microseconds, while the C3 state that we disabled has an interrupt response time of 93 microseconds.&lt;/P&gt;
&lt;P&gt;In our Linux distribution, the information about allowed C-states is available by the command:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cat /proc/sys/acpi/CPU0/power&lt;BR /&gt;which returns:&lt;BR /&gt;------------------------&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; active state:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; max_cstate:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C8&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; maximum allowed latency: 75 usec&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; states:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C1:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type[C1] promotion[--] demotion[--] latency[003] usage[14731621] duration[00000000000000000000]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type[C2] promotion[--] demotion[--] latency[093] usage[00000000] duration[00000000000000000000]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C3:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type[C2] promotion[--] demotion[--] latency[093] usage[00013230] duration[00000000000058440301]&lt;BR /&gt;-------------------------&lt;/P&gt;
&lt;P&gt;The key parameter is the "maximum allowed latency" of 75 microseconds, which is shorter than the 93 microsecond latency listed for the C2 and C3 states, so the only states allowed are C0 (operational) and C1 (very light sleep).&lt;/P&gt;
&lt;P&gt;C-state control is often available via BIOS options, but we had to add the boot option "intel_idle.max_cstate=0" to disable the "intel_idle" driver and restore the "acpi_idle" driver.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jul 2013 19:49:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Measuring-data-transferring-bandwidth/m-p/951415#M19696</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2013-07-25T19:49:22Z</dc:date>
    </item>
  </channel>
</rss>

