<?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 Let's say sizes for L3 and L2 in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922771#M1356</link>
    <description>Let's say sizes for L3 and L2 cache lines are as follows:

...
Size of L3 Cache = 8MB   ( shared between all cores for data &amp;amp; instructions )
Size of L2 Cache = 1MB   ( 256KB per core / shared for data &amp;amp; instructions )
...

My understanding is that if an application loads a new 8M data set into memory then all old data in the L2 cache line will be evicted.</description>
    <pubDate>Mon, 17 Jun 2013 13:37:23 GMT</pubDate>
    <dc:creator>SergeyKostrov</dc:creator>
    <dc:date>2013-06-17T13:37:23Z</dc:date>
    <item>
      <title>cache eviction policy of Intel newer CPUs</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922770#M1355</link>
      <description>&lt;P&gt;Hi everybody,&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; From intel processor's optimiation manual, I know that in Sandy Bridge, L1 and L2 cache is shared within each core but L3 cache is shared by all the cores. But what's the evition policy: eg, can data remain in a L2 cache if it's evicted for L3 by another core? What about this policy in other architectures, eg, in core 2 like Q8200?&lt;/P&gt;</description>
      <pubDate>Sun, 16 Jun 2013 16:17:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922770#M1355</guid>
      <dc:creator>le_g_1</dc:creator>
      <dc:date>2013-06-16T16:17:12Z</dc:date>
    </item>
    <item>
      <title>Let's say sizes for L3 and L2</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922771#M1356</link>
      <description>Let's say sizes for L3 and L2 cache lines are as follows:

...
Size of L3 Cache = 8MB   ( shared between all cores for data &amp;amp; instructions )
Size of L2 Cache = 1MB   ( 256KB per core / shared for data &amp;amp; instructions )
...

My understanding is that if an application loads a new 8M data set into memory then all old data in the L2 cache line will be evicted.</description>
      <pubDate>Mon, 17 Jun 2013 13:37:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922771#M1356</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-06-17T13:37:23Z</dc:date>
    </item>
    <item>
      <title> IIRC for higher caches in</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922772#M1357</link>
      <description>&lt;P&gt;&amp;nbsp;IIRC for higher caches in cache hierarchy eviction policy is based on least frequently or least recently &amp;nbsp;used algorithm.It seems logical that L3 cache eviction policy will dictate full cache reload when new set of data is load into memory.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2013 05:28:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922772#M1357</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-06-18T05:28:38Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...can data remain in a L2</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922773#M1358</link>
      <description>&amp;gt;&amp;gt;...can data remain in a L2 cache if it's evicted for L3 by another core?..

If a software prefetch is used with &lt;STRONG&gt;_mm_prefetch&lt;/STRONG&gt; intrinsic function than different hints need to be taken into account:

&lt;STRONG&gt;[ xmmintrin.h ]&lt;/STRONG&gt;
...
/* constants for use with _mm_prefetch */
#define _MM_HINT_T0 1
#define _MM_HINT_T1 2
#define _MM_HINT_T2 3
#define _MM_HINT_NTA    0
...

Take a look at &lt;STRONG&gt;Intel Software Developer Manual&lt;/STRONG&gt; for a complete description. Thanks.</description>
      <pubDate>Tue, 18 Jun 2013 05:49:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922773#M1358</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-06-18T05:49:53Z</dc:date>
    </item>
    <item>
      <title>The general approach used by</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922774#M1359</link>
      <description>&lt;P&gt;The general approach used by the Intel processors is for the L3 cache to be inclusive of all of the L1 and L2 caches on the chip. If a line is selected to be evicted from the L3, then any copies of that line in the L1 or L2 caches of on that chip must also be evicted.&lt;/P&gt;
&lt;P&gt;Notes:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The inclusive L3 approach makes cache coherence much easier to implement -- you only need to check the L3 cache tags to know if data is on a chip.&amp;nbsp; If it is on a chip, then the L3 tags will tell precisely which L1 and/or L2 caches hold the data.&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;The inclusive L3 approach also makes data sharing between cores on the same chip much more efficient, since the L3 keeps track of which core (on the same chip) might have a modified copy of the cache line.&amp;nbsp; This allows it to be retrieved more quickly, since you do not need to query the other chip(s) and wait for their responses.&lt;/LI&gt;
&lt;LI&gt;The downside of an inclusive L3 is that lines that are in active use in the L1 caches can be evicted because from the L3's perspective they have not recently been loaded.&amp;nbsp; Intel has some "magic" to reduce this occurrence of this undesirable cache line eviction, but as far as I can tell it is not well documented.&amp;nbsp; For the Westmere-based processors, this feature was controlled by the BIOS "data reuse optimization" option.&lt;/LI&gt;
&lt;/OL&gt;</description>
      <pubDate>Mon, 24 Jun 2013 19:24:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922774#M1359</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2013-06-24T19:24:06Z</dc:date>
    </item>
    <item>
      <title>Thank you, Mrs. McCalpin.</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922775#M1360</link>
      <description>&lt;P&gt;Thank you, Mrs. McCalpin.&lt;/P&gt;
&lt;P&gt;I have a presumptuous request that I wonder if your can tell me where can I find more documents about Intel CPU's cache behaviour. I have in hand only Software Developer’s Manual and optimiation guidelines. Is there some documents that is&amp;nbsp; more specific for cache?&lt;/P&gt;</description>
      <pubDate>Thu, 27 Jun 2013 02:23:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922775#M1360</guid>
      <dc:creator>le_g_1</dc:creator>
      <dc:date>2013-06-27T02:23:22Z</dc:date>
    </item>
    <item>
      <title>The Intel Architecture</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922776#M1361</link>
      <description>&lt;P&gt;The Intel Architecture Software Optimization Guide probably has the most information, but it is often necessary cross-reference between the SW Optimization guide and the descriptions of the performance monitoring events in Chapter 19 of Volume 3 of the Intel Architecture Software Developer's Manual.&amp;nbsp; I don't know how much of this I would have been able to understand if I had not worked in processor design at SGI, IBM, and AMD, along with getting good technical support from Intel (both at SGI while designing a system for the Itanium2 processor, and now as a customer).&lt;/P&gt;</description>
      <pubDate>Thu, 27 Jun 2013 17:02:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922776#M1361</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2013-06-27T17:02:05Z</dc:date>
    </item>
    <item>
      <title> You can check "The Intel</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922777#M1362</link>
      <description>&lt;P&gt;&amp;nbsp;You can check "The Intel Architecture Software Optimization Guide" chapter 7 for cache related information.I would also try to search web for various cache aware programming techniques.&lt;/P&gt;
&lt;P&gt;CHeck this link:http://stackoverflow.com/questions/1922249/c-cache-aware-programming&lt;/P&gt;</description>
      <pubDate>Fri, 28 Jun 2013 07:26:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922777#M1362</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2013-06-28T07:26:02Z</dc:date>
    </item>
    <item>
      <title>Quote:John McCalpin wrote:</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922778#M1363</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;John McCalpin wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;The downside of an inclusive L3 is that lines that are in active use in the L1 caches can be evicted because from the L3's perspective they have not recently been loaded.&amp;nbsp; Intel has some "magic" to reduce this occurrence of this undesirable cache line eviction, but as far as I can tell it is not well documented.&amp;nbsp; For the Westmere-based processors, this feature was controlled by the BIOS "data reuse optimization" option.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;This paper talks about options of how to reduce the undesirable cache back invalidate of hot blocks in upper level caches by conveying the "hottness" information to lower levels.&lt;/P&gt;

&lt;P&gt;&lt;A href="http://dl.acm.org/citation.cfm?id=1935019" target="_blank"&gt;http://dl.acm.org/citation.cfm?id=1935019&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 10 Jul 2016 17:23:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/cache-eviction-policy-of-Intel-newer-CPUs/m-p/922778#M1363</guid>
      <dc:creator>Ahmad_S_Intel</dc:creator>
      <dc:date>2016-07-10T17:23:39Z</dc:date>
    </item>
  </channel>
</rss>

