2 Replies Latest reply on Apr 8, 2015 1:20 PM by sshele

    Slow L1 cache

    sshele

      I have an Intel i5-2450M processor. I benchmarked my 2KB memory read speed (reading the same continuous block over and over) with an assembly loop (AVX aligned load vmovaps, unrolled the loop) and got 25 GB/s (single thread). My friend told me that is really slow. Then I downloaded some software like pmbw benchmark and it confirmed the result (25 GB/s for single thread, up to 50 GB/s for multiple threads). I went searching for an estimate of the L1 bandwidth of my processor, and after some searching found these results:

       

      Details for Result ID Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz (2C 4T 3.09GHz, 3.1GHz IMC, 2x 256kB L2, 3MB L3); Intel C…

       

      Which gives around 200 GB/s for the L1 cache bandwidth. So my question - is 25 GB/s indeed very slow for this processor and what could be causing it? How can I fix it?

       

      I have a Dell N5110 and I checked that my BIOS version is the latest (A11).

        • 1. Re: Slow L1 cache

          Depending on the Benchmark test you will get the result. Not all the benchmark programs test the same and will show the same so this is something we cannot base on.

          My recommendation is to run the Intel® Processor Diagnostic Tool and verify the processor status. Here you can get it:

          https://downloadcenter.intel.com/download/19792/Intel-Processor-Diagnostic-Tool-64-bit-

           

          If you think the processor is failing, you can contact Dell and let them know about this to have warranty.

           

          Kevin m

          • 2. Re: Slow L1 cache
            sshele

            I tried changing my power settings in Windows 7, which I changed from Balanced to High Performance. Then I did a restart and benchmarked using my own loop, I got 100 GB/s read and 50 GB/s write. So I figured that was it and ran the other pmbw tool to confirm the results. Here is the graph the benchmark tool outputs (first page shows data rates):

             

            http://www.docdroid.net/wutw/plots-andres-pc-high-perf.pdf.html

             

            It did the write test before (lasts a couple of minutes), then the read tests. As you can see, the write speed was near 45 GB/s, but the read speed was only 24 GB/s. After that I ran my own program and got roughly 25/12 GB/s read/write, and after that the pmbw agreed with it. So for a short time, my L1 cache speed seemed OK, but for the most time it seems to be 4 times slower than expected.

             

            I have similarly noticed that sometimes a memory intensive program runs several times faster than usual, for a few runs in a row and then goes back to usual.

             

            Here is a usual graph of my cache speed, as tested by pmbw benchmark:

             

            http://www.docdroid.net/wuyx/plots-andres-pc.pdf.html

             

            I also ran the SiSoftware Sandra free version Cache Bandwidth test, which oddly gives the same results for multi-thread and single-thread tests, so it probably always uses several threads. This should be similar to the test in the link in the first post and to the test on this site http://techreport.com/review/25293/intel-core-i7-4960x-processor-reviewed/3. In the L1 region for me it gives around 40 GB/s (probably multithreaded):

             

            http://www.docdroid.net/wuwp/cache.pdf.html

             

            Ideas what else to try are welcome, maybe some other cache benchmarks or diagnostic tools? I ran the Intel Processor Diagnostic Tool which did some general tests and didn't find problems. Unfortunately my laptop is older than 2 years and my warranty is over.