Announcement

Collapse
No announcement yet.

Memory speed per access step size

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Memory speed per access step size

    Hello -

    I understand how the step size works in the advanced memory testing, but am unsure as to how to interpret the results. On our test platform, I see a precipitous dropoff in both reads and writes when the step size reaches a certain point, but then I see the performance pick back up again later on.

    For example, on a server with 8GB of RAM, I have results of roughly 25 for step sizes from 1 to 64. At step size 128, my results drop suddenly down to around 8, and stay there up to step size 1,048,576. Then, they go back up; results around 17 for step sizes from 2,097,152 to 16,777,216, and results around 24 for step sizes from 33,554,432 to 134,217,728.

    What could account for this behavior? Why would the results have "worst-performance" values in the middle, with better performance both at the beginning and the end of the test?

    Thanks,

    -Greg

    Step Size | result
    1 | 25.2
    2 | 25.16
    4 | 24.87
    8 | 24.96
    16 | 24.5
    32 | 23.63
    64 | 21.9
    128 | 8.11
    256 | 8.09
    512 | 8.01
    1,024 | 7.89
    2,048 | 7.66
    4,096 | 7.25
    8,192 | 7.22
    16,384 | 7.15
    32,768 | 7.01
    65,536 | 6.97
    131,072 | 6.82
    262,144 | 6.52
    524,288 | 6.96
    1,048,576 | 6.77
    2,097,152 | 15.8
    4,194,304 | 17.67
    8,388,608 | 17.67
    16,777,216 | 17.68
    33,554,432 | 24.37
    67,108,864 | 24.37
    134,217,728 | 24.37

  • #2
    CPU's, cache and RAM are designed with the assumption that more often than not you are going to access memory close to the current memory in use and access it sequentially. Also known as localized access.

    So hardware designers make hardware that is fast for localized, sequential access. If however you have an application that doesn't use memory that way, there can be a huge performance penalty.

    For example reading a byte from RAM might be 7 CPU cycles for a cache hit and 250 cycles for a cache miss.

    How big a penalty depends on the hardware, cache and RAM. This is what the graph demonstrates.




    Why it steps back up so much at the end of your results I don't know. Might be something do to with the cache design. My PC doesn't do this.

    Comment

    Working...
    X