I've had some minor firmware trouble with the new machine. The Linux PCI handler was reporting a really big bunch of errors of apparent spurious interrupts on the PCI MSI subsystem. I fiddled with this for several hours and finally gave up by setting the boot option "pci=nomsi" to shut the damn thing up.
The problem appears to be specific to the X99 chipset.
A real fix requires a fix to Linux or a fix to the mainboard BIOS.
Just another reason to wait at least a year for a new chipset to mature.
Deep split perft()
Moderator: Ras
-
- Posts: 1641
- Joined: Thu Jul 16, 2009 10:47 am
- Location: Almere, The Netherlands
Re: Perft(11) again
I expect when you run Perft(7) on a single core with and without transposition table that the time difference will always be the same (within a small range though).sje wrote:There is no constant time ratio between running with and without transposition table assistance.
With 128 bit hash keys, memory corruption due to cosmic rays is more likely than a false positive match.
The multiprocessing part makes things unpredictable because the order in which the moves are executed varies and therefore the transposition table use also varies because it doesn't has infinite size.
-
- Posts: 1641
- Joined: Thu Jul 16, 2009 10:47 am
- Location: Almere, The Netherlands
Re: Firmware trouble
I never tried to put Linux on the 5960X, with Windows it is running fine.sje wrote:I've had some minor firmware trouble with the new machine. The Linux PCI handler was reporting a really big bunch of errors of apparent spurious interrupts on the PCI MSI subsystem. I fiddled with this for several hours and finally gave up by setting the boot option "pci=nomsi" to shut the damn thing up.
The problem appears to be specific to the X99 chipset.
A real fix requires a fix to Linux or a fix to the mainboard BIOS.
Just another reason to wait at least a year for a new chipset to mature.
My X99 mainboard is the older version with USB 3.0, it already had 10 BIOS updates, it probably is more mature than the one you have.
-
- Posts: 89
- Joined: Mon Jun 13, 2011 12:09 pm
Re: Perft(11) again
For me with gperft using one core in a phenom 1090T @ 3.6GHz, perft(7) with no hash table is 3.72 seconds, one core with 128 MB hash 1.00 seconds. (128 MB seems to be best here, at 4 MB it is taking 1.20 seconds, with 4 GB 1.07 seconds -- not including initialization time).Joost Buijs wrote:I expect when you run Perft(7) on a single core with and without transposition table that the time difference will always be the same (within a small range though).sje wrote:There is no constant time ratio between running with and without transposition table assistance.
With 128 bit hash keys, memory corruption due to cosmic rays is more likely than a false positive match.
The multiprocessing part makes things unpredictable because the order in which the moves are executed varies and therefore the transposition table use also varies because it doesn't has infinite size.
At perft(8), a single core and no hash table is about 99 seconds. A single core with a GB hash table is about 12 seconds.
Obviously the benefit of the hash table goes up as the computation gets longer.
-
- Posts: 1641
- Joined: Thu Jul 16, 2009 10:47 am
- Location: Almere, The Netherlands
Re: Perft(11) again
Thanks!ibid wrote:For me with gperft using one core in a phenom 1090T @ 3.6GHz, perft(7) with no hash table is 3.72 seconds, one core with 128 MB hash 1.00 seconds. (128 MB seems to be best here, at 4 MB it is taking 1.20 seconds, with 4 GB 1.07 seconds -- not including initialization time).Joost Buijs wrote:I expect when you run Perft(7) on a single core with and without transposition table that the time difference will always be the same (within a small range though).sje wrote:There is no constant time ratio between running with and without transposition table assistance.
With 128 bit hash keys, memory corruption due to cosmic rays is more likely than a false positive match.
The multiprocessing part makes things unpredictable because the order in which the moves are executed varies and therefore the transposition table use also varies because it doesn't has infinite size.
At perft(8), a single core and no hash table is about 99 seconds. A single core with a GB hash table is about 12 seconds.
Obviously the benefit of the hash table goes up as the computation gets longer.
This really makes me think about why my perft is so slow.
I don't know gperft, but it seems to be at least 10 times faster.
It is possible that it is the difference between bulk counting or not.
Something I have to look into.
-
- Posts: 89
- Joined: Mon Jun 13, 2011 12:09 pm
Re: Perft(11) again
Use caution comparing to gperft: while it is based on a reasonably standard chess engine, it has been heavily optimized for computing perfts. Bulk counting is a significant part of that. I have also removed any code not needed for perfts (50 move counter, material signatures, etc).Joost Buijs wrote:This really makes me think about why my perft is so slow.
I don't know gperft, but it seems to be at least 10 times faster.
It is possible that it is the difference between bulk counting or not.
Something I have to look into.
The latest (unreleased) development version whose times I gave above even does some basic null-move perfts (for lack of a better term). That is, when there are 2 ply to go, I make a null move and compute perft information about that position: how many moves does each knight have, what king moves are legal, etc. Then for each simple move (not capture, promotion, not checking, etc), I determine what information can be used from the null-move computation and what needs recomputing. (More accurately, I do quick checks to determine what information I can *guarantee* is correct and what information I am not sure about.)
-paul