Attack table musings
Posted: 11 Feb 2005, 20:49
Hi
I have been reading Ed Schr?ders page regarding calculating attack tables. I have coded up a version quite similar to that described by Ed. To test it and get it working I have currently just called the white & black table generation in my Eval function just after the lazy eval decision.
This allowed me to use it for a hopefully improved king safety calculation.
It wasnt a total surprise to find that it is very expensive on my nodes per second to generate this information. To make proper use of the time spent calculating the tables I really need to use it for more than just king safety. This is where I get a bit hazy and could use some advice please
Attack tables could be further used for
1) More Eval functions, eg Center control etc. The table generation can be left where it currently is for this addition
2) Fast in check and and checking move calculations. To make this work however I need to move the table generation earlier to maybe after the makemove function. This would cause more of a slowdown in nps
3) Further work could make the tables give a SEE feature, used for move ordering. The big snag with this is that table generation would have to be done for all moves at move generation. This means that we move the generation before any beta cutoffs and would cause a crushing slowdown in nps. If I moved this code into the move gen function I think I would need to measure speed in seconds per node
I wonder if Rebel does the attack table gen at move generation time, I am assuming it must do ?
I would be interested to hear if I am understanding these points correctly or any general advice and tips regarding attack tables ?
Thanks for your time
Geoff
I have been reading Ed Schr?ders page regarding calculating attack tables. I have coded up a version quite similar to that described by Ed. To test it and get it working I have currently just called the white & black table generation in my Eval function just after the lazy eval decision.
This allowed me to use it for a hopefully improved king safety calculation.
It wasnt a total surprise to find that it is very expensive on my nodes per second to generate this information. To make proper use of the time spent calculating the tables I really need to use it for more than just king safety. This is where I get a bit hazy and could use some advice please
Attack tables could be further used for
1) More Eval functions, eg Center control etc. The table generation can be left where it currently is for this addition
2) Fast in check and and checking move calculations. To make this work however I need to move the table generation earlier to maybe after the makemove function. This would cause more of a slowdown in nps
3) Further work could make the tables give a SEE feature, used for move ordering. The big snag with this is that table generation would have to be done for all moves at move generation. This means that we move the generation before any beta cutoffs and would cause a crushing slowdown in nps. If I moved this code into the move gen function I think I would need to measure speed in seconds per node
I wonder if Rebel does the attack table gen at move generation time, I am assuming it must do ?
I would be interested to hear if I am understanding these points correctly or any general advice and tips regarding attack tables ?
Thanks for your time
Geoff