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

H. Peter Anvin
2009-11-11T22:42:00Z

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