Author: Dezhi Zhao
Date: 08:45:32 09/03/03
Go up one level in this thread
On September 03, 2003 at 10:34:52, Anthony Cozzie wrote: >On September 03, 2003 at 09:47:07, Dezhi Zhao wrote: > >>On September 03, 2003 at 09:07:13, Anthony Cozzie wrote: >> >>>On September 02, 2003 at 16:52:24, Dezhi Zhao wrote: >>> >>>>Hi! >>>> >>>>I know that some programmers here have played with MMX/SSE/SSE2 quite a lot. I >>>>am wondering if the new SSE registers and xor op can beat the regular registers >>>>in calculating the hash key that are 64 bit operations. Have anybody tried this? >>>> >>>>Regards, >>>>dzhao >>> >>> Generally speaking the 64 bit mmx/mmx2 operations don't help chess programs >>>because mmx is on the floating point pipe; to transfer data between the integer >>>& floating point pipes is something like 5-10 cycles each way; or if you go >>>through memory you have store-load stalls of a similar amount. Plus, the >>>regular integer pipe is actually pretty fast at bitboard computations because 2 >>>32bit ANDs can go down the pipeline together. >>> >> >>Please note that the new 128 bit xmm registers are in a seperate file, and you >>do not need the emms instruction for SSE stuff. > >none of which impacts anything that i said. OK. But with SSE you have less overhead than MMX. And using one or two xmm registers will help reduce register pressure. I know the regular xor operations are fast. However you need at least two 32-bit registeres to handle a 64 bit integer. When the hash calculation code is embeded into probe code, you may end up with register spill over. > >>> It only makes sense if a significant amount of work is being done, like in >>>Gerd/Steffan's floodfill routines for example. Computing the hash key is a >>>*very* cheap operation: two (maybe 3) times per make_move, lookup a 64 bit table >>>value and XOR. >>> >>>anthony
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.