Double prefetch on Windows
authorMarco Costalba <mcostalba@gmail.com>
Mon, 10 Aug 2009 13:23:19 +0000 (14:23 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Mon, 10 Aug 2009 21:35:08 +0000 (22:35 +0100)
commit8d369600eca3fe3d059cfa8ba68d74ccdd883e33
treec8d3cb1c8fa3b312350e577844940f01b6171402
parentf4140ecc0c78d3d89f4e2459105e3ce3a1ab3ce1
Double prefetch on Windows

After fixing the cpu frequency with RightMark tool I was
able to test speed all the different prefetch combinations.

Here the results:

OS Windows Vista 32bit, MSVC compile
CPU Intecl Core 2 Duo T5220 1.55 GHz
bench on depth 12, 1 thread, 26552844 nodes searched
results in nodes/sec

no-prefetch
402486, 402005, 402767, 401439, 403060

single prefetch (aligned 64)
410145, 409159, 408078, 410443, 409652

double prefetch (aligned 64) 0+32
414739, 411238, 413937, 414641, 413834

double prefetch (aligned 64) 0+64
413537, 414337, 413537, 414842, 414240

And now also some crazy stuff:

single prefetch (aligned 128)
410145, 407395, 406230, 410050, 409949

double prefetch (aligned 64) 0+0
409753, 410044, 409456

single prefetch (aligned 64) +32
408379, 408272, 406809

single prefetch (aligned 64) +64
408279, 409059, 407395

So it seems the best is a double prefetch at the addres + 32 or +64,
I will choose the second one because it seems more natural to me.

It is still a mystery why it doesn't work under Linux :-(

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/tt.cpp