Re: [PATCH RFC] [X86] performance improvement for memcpy_64.S by fast string.

Cyrill Gorcunov
2009-11-12T04:28:00Z

On Thu, Nov 12, 2009 at 1:39 AM, H. Peter Anvin <hpa@zytor.com> wrote:
> On 11/11/2009 12:34 PM, Cyrill Gorcunov wrote:
>>                                               memcpy_orig     memcpy_new
>> TPT: Len 1024, alignment  8/ 0:               490             570
>> TPT: Len 2048, alignment  8/ 0:               826             329
>> TPT: Len 3072, alignment  8/ 0:               441             464
>> TPT: Len 4096, alignment  8/ 0:               579             596
>> TPT: Len 5120, alignment  8/ 0:               723             729
>> TPT: Len 6144, alignment  8/ 0:               859             861
>> TPT: Len 7168, alignment  8/ 0:               996             994
>> TPT: Len 8192, alignment  8/ 0:               1165            1127
>> TPT: Len 9216, alignment  8/ 0:               1273            1260
>> TPT: Len 10240, alignment  8/ 0:      1402            1395
>> TPT: Len 11264, alignment  8/ 0:      1543            1525
>> TPT: Len 12288, alignment  8/ 0:      1682            1659
>> TPT: Len 13312, alignment  8/ 0:      1869            1815
>> TPT: Len 14336, alignment  8/ 0:      1982            1951
>> TPT: Len 15360, alignment  8/ 0:      2185            2110
>>
>> I've run this test a few times and results almost the same,
>> with alignment 1024, 3072, 4096, 5120, 6144, new version a bit slowly.
>>
>
> Was the result for 2048 consistent (it seems odd in the extreme)... the
> discrepancy between this result and Ling's results bothers me; perhaps
> the right answer is to leave the current code for Core2 and use new code
> (with a lower than 1024 threshold?) for NHM and K8?
>
>        -hpa
>

Hi Peter,

no, results for 2048 is not repeatable (that is why I didn't mention this number
in a former report).

Test1:
TPT: Len 2048, alignment 8/ 0: 826 329
Test2:
TPT: Len 2048, alignment 8/ 0: 359 329
Test3:
TPT: Len 2048, alignment 8/ 0: 306 331
Test4:
TPT: Len 2048, alignment 8/ 0: 415 329

I guess this was due to cpu frequency change from 800 to 2.1Ghz since
I did tests manually
not using any kind of bash cycle to run the test program.