Changes between Initial Version and Version 1 of LibCSSE


Ignore:
Timestamp:
May 6, 2014, 5:20:45 PM (12 years ago)
Author:
john
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LibCSSE

    v1 v1  
     1The first routine I worked on was memcpy().
     2
     3Comparison of stock memcpy() of a single page on FreeBSD vs Linux on a Westmere (values are TSC deltas):
     4
     5{{{
     6x fbsd/westmere/builtin
     7+ linux/builtin
     8    N           Min           Max        Median           Avg        Stddev
     9x 1000           336         18444           340       361.628     573.11483
     10+ 1000           276          9996           280       288.924     307.34136
     11Difference at 95.0% confidence
     12        -72.704 +/- 40.3074
     13        -20.1046% +/- 11.1461%
     14        (Student's t, pooled s = 459.847)
     15}}}
     16
     17||= Idea                       =||= Westmere      =||= Sandy Bridge  =||= Ivy Bridge    =||
     18|| Replace `dec` with `sub`     || none            || none            || none            ||
     19|| Use movsd instead of movsq   || slightly slower || slightly slower || 6% faster       ||
     20|| Simple `movdqa` loop         || 138% slower     || 58% slower      || 46% slower      ||
     21|| `movdqa` 32 at a time (old)  || 27% slower      || 14% faster      || 17% faster      ||
     22|| `movdqa` 32 at a time (new)  || 27% slower      || 15% faster      || 18% faster      ||
     23|| `movdqa` 64 at a time        || 224% slower     || 131% slower     || 116% slower     ||